Append 'limit' and 'offset' query parameters to a GET on a record collection endpoint (e.g., /services/rest/record/v1/customer?limit=100&offset=0)
Read 'count', 'hasMore', and 'totalResults' from the response envelope to drive your loop
Use the 'fields' query parameter to restrict which top-level fields are returned, reducing payload size
Use 'expandSubResources=true' judiciously; it significantly increases response size and latency for large sublists
Increment 'offset' by your page size each iteration and exit when 'hasMore' is false or 'offset' exceeds 'totalResults'
For large exports prefer SuiteQL over the collection endpoint, as SuiteQL gives more control over filters and joins
Known gotchas
The maximum allowed 'limit' per page is subject to change; consult current documentation rather than hardcoding a ceiling
Collection endpoints apply implicit filters based on the caller's role permissions — rows invisible to the token's role simply do not appear rather than returning an error
Date-range and other filter expressions on collection endpoints use a different syntax than SuiteQL WHERE clauses; mixing them up produces 400 errors
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