Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.replyful.com/llms.txt

Use this file to discover all available pages before exploring further.

List endpoints return a fixed-size page of results. To fetch the next page, pass the nextCursor from the previous response back as startingAfter. Cursors are opaque — never parse, persist, or generate them yourself.

Parameters

limit
integer
default:"20"
Number of results per page. Minimum 1, maximum 100.
startingAfter
string
Opaque cursor from the previous response’s nextCursor. Returns the page of results immediately after that cursor.

Response shape

Every list response uses the same envelope:
{
  "object": "list",
  "data": [ /* page of objects */ ],
  "hasMore": true,
  "nextCursor": "eyJzIjoiMjAyNi0wNC0yOVQxNDozMjowMC4wMDBaIiwiaSI6ImNvbnZfLi4uIn0",
  "url": "/v1/conversations"
}
FieldTypeDescription
objectstringAlways "list".
dataarrayThe page of results. Empty list is [], never null.
hasMorebooleantrue if more results exist after this page. Trust this — do not infer from data.length.
nextCursorstring | nullOpaque cursor for the next page. null when hasMore is false.
urlstringThe path of the listed resource.

Walking through every page

Loop until hasMore is false:
# Page 1
curl "https://api.replyful.com/v1/conversations?limit=50" \
  -H "Authorization: Bearer rfl_live_..."

# Page 2 — paste nextCursor from page 1
curl "https://api.replyful.com/v1/conversations?limit=50&startingAfter=<nextCursor>" \
  -H "Authorization: Bearer rfl_live_..."

Rules of thumb

Cursors are opaque base64url strings whose internal layout is an implementation detail. Do not parse them, build them, or rely on their length — the format may change.
  • Don’t persist cursors long-term. They are scoped to the sort order and filters of the request that produced them. A cursor from ?sort=-createdAt is meaningless against ?sort=updatedAt.
  • Hold filters constant while paging. Changing status, q, or sort mid-loop will produce inconsistent pages.
  • Use hasMore, not data.length. A page can return fewer items than limit and still have more pages waiting (e.g. when results have been filtered after fetching).
  • Hard cap at 100 per page. Higher values are rejected with 422 invalid_query_parameter.