Skip to main content

Cursor pagination

Every list endpoint returns pages.
  • limit sets the page size, up to 100. Some endpoints use a smaller maximum, listed in the reference.
  • When has_more is true, send next_cursor back as cursor.
  • 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.
The change feed is the one exception: it returns a 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:10Z or 2026-10-23T11:05:10-06:00. A timestamp without an offset is rejected.
  • since is inclusive and until is 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 example 90675463-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, is null rather than missing or zero.