Skip to main content
Every paginated list endpoint (GET /automations, GET /runs, GET /automations/{id}/runs, GET /leads) returns the same shape:

Query parameters

Walking every page

This loop uses jq to read the response:
An empty cursor asks for the first page, so the same command works for every page.
Always check has_more before following next_cursor. Against the local mock, which always answers the same static example, looping without checking has_more can spin forever.
GET /webhooks is the exception: a workspace has at most 20 active subscriptions, so it returns them all at once — the disabled ones included, until they’re deleted — as { "data": [ ] }. The cursor is opaque — don’t parse it, store it, or assume anything about its format. It can change shape without notice.