Download OpenAPI specification:
Welcome to the CoManage External API — a REST API that lets you read project data in CoManage from your own tooling, scripts, or integrations.
To keep the API fast and reliable for everyone, requests are rate limited per project.
Requests are limited to a fixed window per project. All requests within that window count toward the same limit, and once the window resets, the quota is fully restored.
| Parameter | Default | Description |
|---|---|---|
| Limit | 200 | Max requests allowed per window |
| Window | 60 seconds | Duration of each window |
Requests that exceed the limit are rejected immediately — there is no server-side queuing or buffering.
Limits are enforced per project. All API keys belonging to the same project share a single counter — requests made with one key consume from the same quota as all other keys on that project.
The API returns HTTP 429 — Too Many Requests. Wait until the current window resets before retrying. Immediate retries will continue to fail.
429 responses by backing off and retrying after a delayAPI keys define both authentication (who you are) and scope (what you can access).
Include your API key in every request using the X-API-KEY header:
X-API-KEY: <your-api-key>
Each API key is permanently bound to a single project. A key cannot be used to access any other project.
A valid key grants read access to all endpoints in the API.
| State | Description |
|---|---|
| Active | The key is valid and can authenticate requests |
| Expired | The optional expiration date has passed; requests are rejected |
| Revoked | A project administrator has explicitly disabled the key |
Once a key is expired or revoked it cannot be reinstated. Create a new key instead.
The API has two maintenance states: upcoming (API still works, headers warn you) and active (all endpoints unavailable).
Before a scheduled maintenance window, every response includes two headers warning you of the upcoming downtime:
| Header | Format | Description |
|---|---|---|
X-UPCOMING-MAINTENANCE-START |
Unix timestamp (seconds, UTC) | When maintenance begins |
X-UPCOMING-MAINTENANCE-END |
Unix timestamp (seconds, UTC) | When maintenance ends |
Once the maintenance window starts the API returns 503.
All requests return HTTP 503 with a Problem Details body:
{
"title": "Server undergoing maintenance",
"detail": "Server is undergoing maintenance and all api endpoints are currently unavailable",
"status": 503,
"type": "https://schemas.nti.biz/comanage/errors/under-maintenance"
}
Wait until the maintenance window ends before retrying.
This endpoint uses cursor-based pagination. If additional records exist, the response will contain a nextPageKey.
Pass this key into the afterId query parameter of your next request to retrieve the subsequent page.
| afterId | integer <int64> The cursor for pagination. Use the |
This endpoint uses cursor-based pagination. If additional records exist, the response will contain a nextPageKey.
Pass this key into the afterId query parameter of your next request to retrieve the subsequent page.
| afterId | integer <int64> The cursor for pagination. Use the |
This endpoint uses cursor-based pagination. If additional records exist, the response will contain a nextPageKey.
Pass this key into the afterId query parameter of your next request to retrieve the subsequent page.
| afterId | integer <int64> The cursor for pagination. Use the |
This endpoint uses cursor-based pagination. If additional records exist, the response will contain a nextPageKey.
Pass this key into the afterId query parameter of your next request to retrieve the subsequent page.
| afterId | integer <int64> The cursor for pagination. Use the |
This endpoint uses cursor-based pagination. If additional records exist, the response will contain a nextPageKey.
Pass this key into the afterId query parameter of your next request to retrieve the subsequent page.
| viewId required | integer <int64> The unique identifier of the view for which to retrieve COMANAGE objects. |
| afterId | integer <int64> The cursor for pagination. Use the |
This endpoint uses cursor-based pagination. If additional records exist, the response will contain a nextPageKey.
Pass this key into the afterId query parameter of your next request to retrieve the subsequent page.
| afterId | integer <int64> The cursor for pagination. Use the |
This endpoint uses cursor-based pagination. If additional records exist, the response will contain a nextPageKey.
Pass this key into the afterId query parameter of your next request to retrieve the subsequent page.
| afterId | integer <int64> The cursor for pagination. Use the |