> ## Documentation Index
> Fetch the complete documentation index at: https://developers.goparlay.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Pagination and dates

> Cursor pagination, date windows and ids.

## Cursor pagination

Every list endpoint returns pages.

```json theme={null}
{
  "data": [ … ],
  "has_more": true,
  "next_cursor": "eyJ…"
}
```

* `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.

```bash theme={null}
curl "https://app.goparlay.io/api/v1/calls?since=2026-10-01T00:00:00Z&limit=100&cursor=eyJ…" \
  -H "Authorization: Bearer $PARLAY_KEY"
```

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](https://developers.goparlay.io/app-api/guides/daily-sync.md).

## 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.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.