POST to /services/rest/query/v1/suiteql with the query in the request body; include limit and offset as URL query parameters, e.g. ?limit=1000&offset=0
Inspect the response fields: 'hasMore' (boolean), 'count' (records in this page), 'offset' (current offset), and 'totalResults' (overall count)
If hasMore is true, increment offset by limit and repeat the POST until hasMore is false
Stay within the hard ceiling: offset cannot exceed 100,000; for data sets larger than 100,000 rows, add a WHERE clause filter (e.g. on a date range or ID band) and issue multiple bounded queries
Use ORDER BY in the query to guarantee deterministic pagination; without it, rows can shift between pages if records are created or modified during retrieval
Known gotchas
SuiteQL via REST is POST-only; sending a GET to the suiteql endpoint returns 405
The maximum offset of 100,000 is a hard platform limit; attempting to set offset above this value returns an error — partition large exports by a filterable key instead
totalResults can be inaccurate for certain system tables; rely on hasMore as the authoritative signal to stop pagination
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp