CoManage.External.API (v1)

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.

Rate Limiting

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.

Limits

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.

Shared Quota

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.

When You Hit the Limit

The API returns HTTP 429 — Too Many Requests. Wait until the current window resets before retrying. Immediate retries will continue to fail.

Best Practices

  • Spread requests evenly instead of sending bursts
  • Cache responses when possible
  • Handle 429 responses by backing off and retrying after a delay

API Key Scope

API keys define both authentication (who you are) and scope (what you can access).

Passing the Key

Include your API key in every request using the X-API-KEY header:

X-API-KEY: <your-api-key>

Access and Scope

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.

Key Lifecycle

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.

Security Recommendations

  • Treat your API key like a password — do not commit it to source control or share it in logs
  • Set an expiration date when creating a key for temporary integrations
  • Revoke keys that are no longer in use or may have been compromised
  • Use a separate key per integration so individual keys can be revoked independently — all keys on the same project share the same rate limit

Maintenance

The API has two maintenance states: upcoming (API still works, headers warn you) and active (all endpoints unavailable).

Upcoming Maintenance Warning

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.

During Maintenance — HTTP 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.

Models - v1

Retrieve a paginated list of project models.

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.

Authorizations:
ProjectApiKeyHeaderProjectApiKeyQuery
query Parameters
afterId
integer <int64>

The cursor for pagination. Use the nextPageKey from a previous response to fetch the next page.

Responses

Response samples

Content type
No sample

Objects - v1

Retrieve a paginated list of COMANAGE objects of type "TYPE".

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.

Authorizations:
ProjectApiKeyHeaderProjectApiKeyQuery
query Parameters
afterId
integer <int64>

The cursor for pagination. Use the nextPageKey from a previous response to fetch the next page.

Responses

Response samples

Content type
No sample

Retrieve a paginated list of COMANAGE objects of type "INSTANCE".

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.

Authorizations:
ProjectApiKeyHeaderProjectApiKeyQuery
query Parameters
afterId
integer <int64>

The cursor for pagination. Use the nextPageKey from a previous response to fetch the next page.

Responses

Response samples

Content type
No sample

Retrieve a paginated list of COMANAGE object views.

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.

Authorizations:
ProjectApiKeyHeaderProjectApiKeyQuery
query Parameters
afterId
integer <int64>

The cursor for pagination. Use the nextPageKey from a previous response to fetch the next page.

Responses

Response samples

Content type
No sample

Retrieve a paginated list of COMANAGE objects for a specific view.

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.

Authorizations:
ProjectApiKeyHeaderProjectApiKeyQuery
path Parameters
viewId
required
integer <int64>

The unique identifier of the view for which to retrieve COMANAGE objects.

query Parameters
afterId
integer <int64>

The cursor for pagination. Use the nextPageKey from a previous response to fetch the next page.

Responses

Response samples

Content type
No sample

ProjectUsers - v1

Retrieve a paginated list of project users.

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.

Authorizations:
ProjectApiKeyHeaderProjectApiKeyQuery
query Parameters
afterId
integer <int64>

The cursor for pagination. Use the nextPageKey from a previous response to fetch the next page.

Responses

Response samples

Content type
No sample

Properties - v1

Retrieve a paginated list of project properties.

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.

Authorizations:
ProjectApiKeyHeaderProjectApiKeyQuery
query Parameters
afterId
integer <int64>

The cursor for pagination. Use the nextPageKey from a previous response to fetch the next page.

Responses

Response samples

Content type
No sample