Authenticate with OAuth 1.0a as described for NetSuite REST record operations.
POST to https://{accountId}.suitetalk.api.netsuite.com/services/rest/query/v1/suiteql with Content-Type: application/json and Prefer: transient header.
In the request body, include a q field containing the SuiteQL SELECT statement (SuiteQL is a SQL-like dialect that queries NetSuite record types as tables).
The response contains an items array with the result rows and a totalResults count; use the offset and limit query parameters for pagination.
Reference NetSuite record type names as table names (e.g., SELECT id, trandate FROM transaction WHERE type = 'VendBill') using the schema defined in the SuiteQL documentation.
Use the GET /services/rest/record/v1/metadata-catalog/ endpoint to discover available record types and their field names for building accurate queries.
Known gotchas
SuiteQL requires the Prefer: transient header; omitting it can result in an error or unexpected behavior.
SuiteQL field names are lowercase and may differ from the labels shown in the NetSuite UI; verify field names via the metadata catalog before writing production queries.
Result sets are capped; always implement pagination using offset and limit, and check totalResults to determine if additional pages exist.
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