Skip to Content
API keys are issued to organizations with a signed BAA. Request API access →
Pagination

Pagination

Every list endpoint returns results a page at a time, in a stable order, with an opaque cursor for the next page.

Response
{ "data": [ { "id": "4cbfdb50-6b7d-45d4-94b3-05a52ce3f4d1", "...": "..." } ], "pagination": { "next_cursor": "eyJpZCI6IjRjYmZkYjUwIn0", "has_more": true } }

Parameters

page[limit]integer

How many records to return. Defaults to 50, maximum 100.

page[after]string

The next_cursor from the previous page. Omit it for the first page.

Response fields

dataarrayRequired

The records on this page, in stable order.

pagination.next_cursorstring or nullRequired

Pass as page[after] to get the next page. null on the last page.

pagination.has_morebooleanRequired

Whether another page exists.

Ordering

Results are ordered by creation time, oldest first, with the ID as a tiebreaker. The order never changes between requests, so retrying a page is always safe and never skips or repeats records.

Fetch every page

Request
curl "https://api.bloomtext.com/v1/conversations/e5c3b7b8-8f08-4d5a-9af1-0d11b0f4b7a0/messages?page[limit]=100&page[after]=eyJpZCI6IjRjYmZkYjUwIn0" \ -H "Authorization: Bearer $BLOOMTEXT_API_KEY"

Tips

  • Treat cursors as opaque. Don’t parse, build, or store them long-term. A cursor is valid for 24 hours.
  • Use the biggest page you need. page[limit]=100 means fewer requests against your rate limit.
  • Sync incrementally. To pick up new messages, keep the last next_cursor you saw and resume from it, or use webhooks instead of polling.
Last updated on