Reference
Pagination
limit/cursor pagination on every list endpoint, and which cursor style each resource uses.
Every list endpoint pages the same way: ?limit= plus a ?cursor= you got
from the previous page. Stop when next_cursor is null.
Parameters
| Param | Default | Max | Notes |
|---|---|---|---|
limit | 25 | 100 | Page size |
cursor | — | — | Opaque to you — pass back exactly what you received |
curl "https://api.emitd.com/v1/messages?limit=100" \
-H "Authorization: Bearer $EMITD_API_KEY"{ "data": [ ... ], "next_cursor": 1783386190000 }Two cursor styles
The value is different per resource, but the loop is identical — never
construct a cursor yourself, always reuse next_cursor:
| Style | Resources |
|---|---|
Bare epoch-millisecond created_at (rows strictly older) | messages, suppressions, inbound, email/test-events |
Composite "{created_at}:{id}" keyset | contacts, audiences, segments, broadcasts, automations |
Not paginated
templates and webhooks return the tenant's full set in one response —
no limit/cursor accepted.
Ordering is stable
Lists are newest-first and the cursor is a position in that order, so
concurrent inserts don't shift pages the way OFFSET does.