Pagination
List endpoints return one page at a time. A cursor tells the API where to continue the same query. You get it from the response; you do not create it or pass a page number.
1. Request the first page
Set ANTHROPOD_API_KEY to your private API key and replace svc_demo_support with your service ID. These examples select 1 September 2026 UTC. Use your required dates and keep them unchanged for subsequent pages.
Read the records in data. When pagination.has_more is true, copy the complete string in pagination.next_cursor.
2. Request the next page
Replace the placeholder below with that actual token. Repeat the same endpoint, API key, filters, dates, and sort order, adding only cursor. --data-urlencode safely encodes the token in the URL.
3. Continue until the last page
After each response, use its new pagination.next_cursor for the following request. Do not keep sending the token from the first response: that would fetch the same page again.
Stop when the response contains this pagination object (the final data array can still contain records):
For a large CSV download, use Exports instead of collecting pages yourself.
Date filters
Supply start_time and end_time as Unix epoch seconds. The start is inclusive and the end is exclusive; the range must be nonempty and no longer than 31 days. time_field is optional and defaults to the timestamp listed below for the requested resource. The same values apply inside filters when creating an export; export timestamps must be JSON integers.
Use the timestamp listed for each resource. created_at, updated_at, and analysis_completed_at are not supported filter values.
Earlier timestamp filters such as conversation_time[gte] / conversation_time[lt] remain accepted for compatibility, as do their corresponding export JSON objects. Do not combine those filters with time_field, start_time, or end_time in one request.
Stable order
The four resource list GETs accept sort_order=asc|desc. The default is desc (newest first); asc returns oldest first. The timestamp used for ordering is also the timestamp used by the date-range filter.
Records with equal timestamps are ordered by ID in the same direction. For example, ascending order uses (timestamp ASC, id ASC).
Continue with the same sort_order, date range, and other filters. Switching direction with an existing cursor returns 400 INVALID_CURSOR; omit the cursor to start a new query. Omitting sort_order is equivalent to sending desc.
Single-record GETs do not use pagination or accept sorting.
Treat a cursor as an opaque continuation value, not a page number or permanent synchronization checkpoint. It remains subject to authorization. A cursor from one query cannot be used with another query. Cursors expire after 15 minutes and are bound to the key, permissions, endpoint, filters, and sort order. An invalid or expired cursor returns 400 with INVALID_CURSOR; restart that bounded query.
Changing data
Pagination is not a historical snapshot. New analysis and updated customer profiles can affect results while you read them. Persist records by ID, tolerate repeated records, and use bounded overlapping reads for reconciliation. These endpoints do not provide a complete update feed.