From netsuite-restlet
NetSuite RESTlet integration reference. Use when building features that sync data from NetSuite, working on the NetSuite integration module, or troubleshooting NetSuite RESTlet calls (employees, projects, timesheets, OAuth 1.0 TBA).
How this skill is triggered — by the user, by Claude, or both
Slash command
/netsuite-restlet:netsuite-restletThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Build an application in any tech stack that integrates with a NetSuite sandbox via 3 read-only RESTlet endpoints. The app authenticates using OAuth 1.0 Token-Based Authentication (TBA) and exposes a local API that proxies the NetSuite RESTlets.
Build an application in any tech stack that integrates with a NetSuite sandbox via 3 read-only RESTlet endpoints. The app authenticates using OAuth 1.0 Token-Based Authentication (TBA) and exposes a local API that proxies the NetSuite RESTlets.
Every request to NetSuite must include an OAuth 1.0 Authorization header:
| Parameter | Value |
|---|---|
oauth_consumer_key | from env NETSUITE_CONSUMER_KEY |
oauth_token | from env NETSUITE_TOKEN_ID |
oauth_signature_method | HMAC-SHA256 |
oauth_version | 1.0 |
oauth_timestamp | current unix timestamp (seconds) |
oauth_nonce | unique random string per request |
oauth_signature | HMAC-SHA256 signature of the base string |
realm | env NETSUITE_ACCOUNT_ID (e.g. 6513437_SB1) |
Signing key: {consumer_secret}&{token_secret} (percent-encoded, joined by &)
Base string: {METHOD}&{percent_encoded_url}&{percent_encoded_params} (standard OAuth 1.0)
Realm is in the Authorization header only, NOT in the base string.
{NETSUITE_BASE_URL}/app/site/hosting/restlet.nl?script={SCRIPT_ID}&deploy={DEPLOY_ID}&{params}
All endpoints are GET only. Parameters are passed as query string params.
| Endpoint | Script/Deploy | Local Routes | Key Params |
|---|---|---|---|
| Employees | 2015 / 1 | GET /api/employees, GET /api/employees/:id | page, pageSize, inactive, internalId |
| Projects | 2016 / 1 | GET /api/projects, GET /api/projects/:id | page, pageSize, inactive, resourcesLimit, internalId |
| Timesheets | 2017 / 1 | GET /api/timesheets | page, pageSize, employeeInternalId, projectInternalId |
All endpoints return:
{
"ok": true,
"page": 1,
"pageSize": 25,
"totalResults": 750,
"hasMore": true,
"nextPage": 2
}
page is 1-based, pageSize max is 100hasMore / nextPage (null when no more pages)script, deploy, page, etc.)6513437_SB1 with underscore)laborCost, estimatedCost, estimatedRevenue return random 1-100 in non-productionnote and rejectionNote on timesheets return "" not nullpageSize max is 100 — requesting more is silently cappednpx claudepluginhub andershalo/halo-ai-dev-tools --plugin netsuite-restletStatic-review flashlight for NetSuite SuiteTalk REST/SOAP API design, integration record configuration, and OAuth 2.0 authentication posture. Flags SOAP usage as migration risk and validates OAuth 2.0 for REST/RESTlets/SuiteAnalytics Connect.
Teaches AI correct tool selection order, output formatting, multi-subsidiary/currency handling, and SuiteQL safety for NetSuite AI Service Connector sessions.
Automates Oracle NetSuite ERP: create/manage customers, sales orders, invoices, inventory, and records via SuiteQL queries and record upserts.