Skip to content
Dashboard

Getting Started

The SuiteOp Public API exposes the same operations your dashboard uses over a conventional REST interface. Every operation is authenticated with a secret API key scoped to your organization, or with an OAuth 2.1 access token issued to an app acting on a user’s behalf. The same operations are also available to AI assistants through the hosted MCP server.

The API is multi-region. All requests must go to the region where your organization’s data lives. An API key is only known to the region that issued it, so sending it to another region returns 401 authentication_error with the message Invalid API key.

RegionBase URL
UShttps://api-us.suiteop.com/api/v1
EUhttps://api-eu.suiteop.com/api/v1
APAChttps://api-apac.suiteop.com/api/v1
  1. Open the SuiteOp dashboard and go to Settings → Developer.

  2. Click Create API Key, give it a name, and select the permission scopes your integration needs.

  3. Copy the key immediately — it is shown only once. Store it in a secrets manager (environment variable, AWS Secrets Manager, GCP Secret Manager, etc.).

Keys issued by the production API start with sk_live_, and the production regional base URLs accept only sk_live_ keys. (sk_test_ keys exist only on SuiteOp’s internal non-production servers; there is no customer sandbox.)

List tasks with a single curl call. Replace <region> with us, eu, or apac, and <key> with your API key.

Terminal window
curl https://api-<region>.suiteop.com/api/v1/tasks \
-H "Authorization: Bearer sk_live_your_key_here"

Every response is wrapped in a consistent envelope:

Success (single resource)

{
"data": { "id": "…", "nameText": "Deep clean unit 4B", "status": "not_started" },
"meta": { "requestId": "3f1c9a52-…" }
}

Success (list)

{
"data": [{ "id": "…", "nameText": "Deep clean unit 4B", "status": "not_started" }],
"meta": {
"requestId": "3f1c9a52-…",
"pagination": { "total": 42, "limit": 20, "offset": 0 }
}
}

Error

{
"error": {
"type": "not_found_error",
"code": "NOT_FOUND",
"message": "Task not found: 7d0e…"
},
"meta": { "requestId": "3f1c9a52-…" }
}

The meta.requestId field uniquely identifies every request and is also returned in the X-Request-Id response header. Include it when contacting support. Fields shown here are abbreviated; see Errors for the full error format.

Every endpoint, field and enum is in the API Reference — the same operation catalogue this site renders from the SuiteOp specification. It asks you to sign in with your SuiteOp account, matching the API itself.