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]integerHow many records to return. Defaults to 50, maximum 100.
page[after]stringThe next_cursor from the previous page. Omit it for the first page.
Response fields
dataarrayRequiredThe records on this page, in stable order.
pagination.next_cursorstring or nullRequiredPass as page[after] to get the next page. null on the last page.
pagination.has_morebooleanRequiredWhether 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
cURL
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]=100means fewer requests against your rate limit. - Sync incrementally. To pick up new messages, keep the last
next_cursoryou saw and resume from it, or use webhooks instead of polling.
Last updated on