Cursor pagination
Every list endpoint returns pages.limitsets the page size, up to 100. Some endpoints use a smaller maximum, listed in the reference.- When
has_moreistrue, sendnext_cursorback ascursor. - Keep every other parameter the same while paging. A cursor is tied to the filters that produced it.
- Cursors are opaque. Do not build or edit them.
checkpoint instead of next_cursor, which you store and pass back as cursor later. See syncing calls daily.
Dates and time windows
- Timestamps are ISO 8601 with a time-zone offset, for example
2026-10-23T17:05:10Zor2026-10-23T11:05:10-06:00. A timestamp without an offset is rejected. sinceis inclusive anduntilis exclusive, so back-to-back windows never overlap or leave gaps.- On
GET /calls, the window applies to when the call was recorded. A call recorded yesterday but finished processing today falls in yesterday’s window. To pick up every new and changed call, use the change feed. - Analytics endpoints default to the last 30 days and accept windows up to 366 days. Daily and weekly buckets use UTC.
Ids
Parlay ids look like UUIDs, for example90675463-a4a2-80d4-70f8-e7095fd8dd76. Treat them as opaque 36-character strings. Many older Parlay ids do not follow the strict UUID version rules, so do not validate them with a strict UUID parser.
Nulls
Fields are always present. A value Parlay did not record, such as a score on a call that was never analyzed, isnull rather than missing or zero.
