Skip to main content
Every platform API response is JSON wrapped in the same envelope. Lists add pagination details in meta.

The envelope

boolean
required
true for a successful request, false for an error.
string
required
A human-readable summary, such as Contacts retrieved successfully. Show it in logs, but don’t branch on its wording.
object | array
The resource, or the page of resources. Absent on acknowledgements, such as a delete.
object
Pagination details on list responses.
A single resource:
An acknowledgement:
Timestamps are ISO 8601 strings. Errors use the same envelope with success: false. See Errors.

Offset pagination

Most list endpoints take a page number and a page size.
integer
default:"1"
The page to return, starting at 1.
integer
Items per page, from 1 to 100.
The response carries these fields in meta:
Build the next request yourself by incrementing page, and stop when currentPage equals lastPage.

Cursor pagination

Endpoints that read large, time-ordered logs use a cursor instead of page numbers: the message log (/messages), webhook deliveries (/webhook-deliveries) and the campaign report endpoints (/campaigns/reports/overview, /campaigns/reports/performance and /campaigns/reports/trends).
string
The nextCursor value from the previous page. Leave it out for the first page.
integer
Items per page, from 1 to 100.
Keep requesting until nextCursor is null.

Filters

Filters are query parameters, and each endpoint documents its own in the API reference. Names you’ll see often: A filter that takes several values repeats the parameter: ?status=active&status=archived. An invalid filter value fails with 422 and a validation error.

The email send API’s envelope

The email send API uses status instead of success, and has no meta or code:
Its errors carry status: false and a message, plus an errors array on validation failures.

Errors

Error codes, validation errors and status codes.

API reference

Parameters and response schemas for every endpoint.

Message status

Cursor pagination in practice, on the message log.

Rate limits

What to do when a paging loop starts returning 429.