Resource type
Every resource carries anobject field whose value is the resource’s type name in singular lowerCamelCase. Nested resources, like company and address below, carry it too:
object to tell payloads apart, for example when one handler receives several resource types. New resource types appear as the API grows. Skip or pass through any object value you don’t recognize instead of treating it as an error.
Lists
Every list endpoint returns its items in the same{ "data", "total", "page", "limit" } envelope. A list with no matches still returns 200 OK, with an empty data array and total: 0. You never get 404 Not Found for an empty list. See Pagination for the parameters and how to page through results.
Identifiers
Anid is always a string, even when it looks like a number. Store and compare it as an opaque string. Don’t parse it, sort it numerically, or depend on its length or format, because these can change without notice.
Dates and times
The suffix on a field’s name tells you what kind of value it holds:
Parse
…At values with an ISO 8601 date-time parser instead of matching a fixed format. Fractional seconds aren’t guaranteed, so accept both 2025-01-15T10:30:00.000Z and 2025-01-15T10:30:00Z. Read …Date values as plain dates. If you convert one to a timestamp, a time-zone offset can move it to the previous or next day.
Null versus omitted
A missing field and anull field mean different things:
null: the field applies to this resource and your token can see it, but it has no value.- Omitted: the field doesn’t apply to this resource, or your token lacks the scope to see it.
order.participant.read scope and once to a token that has it:
Forward compatibility
Responses gain new content within a version, so build your client to accept changes like these:- New fields can appear on any resource. Ignore fields you don’t use.
- Properties can come in any order.
- Enum values in responses (such as an order’s
status) and error codes are open sets. New values can appear, and an error code can stop appearing. Base your logic on the stable signal each one provides:isFinalfor statuses (see Order lifecycle) andstatusCodeplussource.pointerfor errors (see Errors).