Skip to Content
API access is available to organizations with a signed BAA. Request API access →
Pagination

Pagination

List endpoints return results one 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

Number of 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

Each list endpoint documents its order. Messages are newest first unless you pass order=asc, and group_by=conversation groups them by conversation. Conversations are ordered by latest activity, and users by name. Ties break on ID.

A cursor keeps the order your first request saw, so you can retry a page safely. You never skip or repeat records, even when new messages arrive while you page.

Fetch every page

Request
curl -g "https://api.bloomtext.com/v1/patient-messages?after=2026-09-21&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.
  • Request large pages. page[limit]=100 uses fewer requests against your rate limit.
  • Follow new messages with after, not cursors. Request again with after set to the newest message you’ve seen. See Read messages.
Last updated on