Use SuiteTalk REST (the platform-native REST API at /services/rest/record/v1/) for standard CRUD on built-in record types — no custom code required, versioned by NetSuite
Use RESTlets (/app/site/hosting/restlet.nl?script=<id>&deploy=<id>) when you need custom server-side logic, access to SuiteScript APIs unavailable in the REST API, or responses that transform multiple records into a single payload
For RESTlets, deploy a SuiteScript 2.x script of type 'RESTlet', define get/post/put/delete handler functions, and authenticate with TBA or OAuth 2.0
For SuiteTalk REST, authenticate with OAuth 2.0 and call standard endpoints; use the schema browser at /services/rest/record/v1/metadata-catalog/ to discover field names
Consider governance: RESTlets run under the calling user's governance budget; SuiteTalk REST calls are governed separately per the platform's REST API limits
Known gotchas
RESTlet URLs are account-specific and include numeric script/deployment IDs that differ between sandbox and production — parameterise these rather than hard-coding
SuiteTalk REST does not expose all record types or all fields on supported types; check the metadata catalog before designing the integration to avoid discovering gaps late
RESTlets do not automatically handle sublist pagination; if your RESTlet returns large sublists, you must implement your own paging logic inside the script
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