POST /query/v1/suiteql with the SuiteQL query string and an initial offset of 0 and desired limit (max 1000) in the request body
Parse the JSON response body for the items array containing the current page of results
Check the hasMore field in the response body (boolean) — if true, another page is available
Read the links array in the response body; find the entry with rel equal to 'next' and use its href to build the next request
Increment offset by limit and repeat the POST, or use the next href directly, until hasMore is false
Collect all items arrays across pages to assemble the full result set
Known gotchas
Pagination metadata is in the JSON response body (hasMore, offset, totalResults, links) — there is no HTTP Link header for SuiteQL pagination; do not look for an RFC 5988 Link header
The links array entries use standard relation types: 'next', 'previous', 'first', 'last', 'self'; each has an href containing limit and offset query parameters already encoded
totalResults may be -1 for queries where NetSuite cannot precompute the total; rely on hasMore rather than computing page count from totalResults
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