As a partner, you rely on the SuiteApp Control Center (SACC) to manage your SuiteApps. From there you can create new versions, monitor access, push updates, and many more things. Often, workflows repeat: upload a new version, verify that it reaches customer accounts, and investigate any installation issues. The SuiteApp Control Center REST API endpoints can help automate that work.
With these endpoints, you can create SuiteApp versions programmatically and retrieve installation information for a SuiteApp across its install base. This makes it easier to incorporate release and monitoring tasks into your own delivery process, while retaining visibility into the result of each deployment.
Before you start
The Control Center endpoints require a few account-level prerequisites. An administrator should complete the following setup in the account associated with your SuiteApp publisher ID.
· Enable SuiteApp Control Center
Go to Setup > Company > Enable Features. On the SuiteCloud tab, enable SuiteApp Control Center.
· Enable REST Web Services
In the same SuiteCloud tab, enable REST Web Services. This allows your integration to make REST requests to NetSuite.
· Assign the SuiteApp Release Manager role
The endpoints are intended for users with the SuiteApp Release Manager role. An administrator can assign it by opening the user record, selecting Edit, and adding the role on the Access subtab.
This is an important security decision. Avoid using the Administrator role for an integration. The SuiteApp Release Manager role limits access to the SuiteApp management operations required for this workflow, helping reduce the impact of compromised credentials or accidental changes.
· Create an integration record
Create an integration record at Setup > Integration > Manage Integrations > New. Give the application a name, set its state to Enabled, and configure OAuth 2.0:
- Enable Authorization Code Grant.
- Enable REST Web Services.
- Provide a valid redirect URL.
When you save the record, NetSuite generates a client ID and client secret. Store both securely. Your application uses the OAuth 2.0 Authorization Code Grant flow to obtain the bearer token required for the API calls below. [link: https://system.netsuite.com/app/help/helpcenter.nl?fid=section_158074210415.html]
Retrieve your SuiteApp install base
The install-base endpoint returns the current installation state for a SuiteApp. It is useful after a release to understand which accounts are installed successfully and which may need attention.
GET
URL:
https://<accountID>.integration.netsuite.com/services/rest/
suiteappcontrolcenter/v1/suiteapp/<applicationId>/installation
Header:
Authorization: Bearer <TOKEN>
A successful request returns HTTP 200 and information such as the installed version, NetSuite version, last-updated time, and installation status:
{
"account": {
"id": "<accountId>",
"name": "Example_AccountName123",
"type": "production"
},
"status": "INSTALLED",
"installedVersion": "1.2.3",
"nsVersion": "2024.1",
"lastUpdated": 1678281916,
"errors": []
}
When an installation does not complete successfully, the response includes the status and error information. For example:
{
"status": "FAILED_VALIDATION",
"installedVersion": "1.2.3",
"errors": [
{
"errorMessage": "Verification failed",
"errorDbTicket": "jz478bkv19hqrqnh8gvyj"
}
]
}
You can use this response in a release dashboard, alerting workflow, or support process, rather than manually checking individual accounts.
Create a new SuiteApp version
To create a version, send a POST request with multipart/form-data. Include the SuiteApp ZIP archive, the minimum required NetSuite version, and the SuiteApp phase.
POST
URL:
https://<accountID>.integration.netsuite.com/services/rest/
suiteappcontrolcenter/v1/suiteapp/<applicationId>/version
Header:
Authorization: Bearer <TOKEN>
Content-Type: multipart/form-data
Body:
nsVersion=2026.1
phase=LEADING
file=/path/to/your-suiteapp.zip
If the version is created successfully, the endpoint returns HTTP 201 Created.
This lets you connect a SuiteApp build artifact directly to the release process. Combined with the install-base endpoint, you can automate two important steps of SuiteApp lifecycle management: creating a release and monitoring its adoption.
Keep authentication and access scoped
Every request requires an OAuth 2.0 bearer token in the Authorization header. Use the SuiteApp Release Manager role only for the people and integrations that need it, protect client credentials and tokens, and rotate or revoke access when it is no longer needed.
The result is a more repeatable release workflow, with less manual effort and clearer visibility into SuiteApp installation status.
