SendKuy API

Pagination

Cursor pages, and the three endpoints that have none.

Lists are cursor-paginated:

{
  "data": [],
  "meta": { "has_more": true, "next_cursor": "con_9cBe3A1H-SLhW5fONWZ32wb-IIio5Ts3" }
}

Pass next_cursor back as starting_after for the next page. Stop when has_more is false.

curl "https://app.sendkuy.com/api/v1/contacts?limit=50&starting_after=con_9cBe..." \
  -H "Authorization: Bearer sk_live_YOUR_API_KEY"

limit defaults to 20 and is capped at 100.

The cursor is opaque

It is the last row's id today, and it need not stay that way. Treat it as a string you hand back, not as something to parse, compare or construct.

Three endpoints answer without meta

POST /messages, POST /messages/batch and GET /contact-attributes return { "data": [...] } with no meta at all. They are lists, not pages — nothing was cut off, so there is nothing to page through. Two of them return one row per element you sent; the third returns every attribute you have defined.

Code that assumes meta exists on every array response will break on exactly those three.

On this page