Skip to content

API Tokens & REST API

Colony Cloud exposes a REST API surface authenticated with cct_ API tokens. Use it to integrate Colony pipeline data into your own tooling, scripts, or CLI workflows without going through the MCP server.

  1. Sign in and go to Settings → Organization → Integrations.
  2. Click New Token.
  3. Give the token a descriptive name (e.g. my-cli-script or ci-pipeline).
  4. Click Create — copy the token value (cct_…) immediately; it is shown only once.
  5. Optionally set an expiry date. Tokens without an expiry remain valid until manually revoked.
PropertyDetail
Prefixcct_ followed by a UUID
ScopeOrganization-scoped — grants access to all repos in your org that are enabled in Colony Cloud
ExpiryOptional expires_at date. Expired tokens return 401.
RotationRevoke the old token from Settings → Organization → Integrations and create a new one. Update all consumers before revoking.

Treat tokens like passwords. Anyone who holds a token can read your org’s pipeline data.

  1. Go to Settings → Organization → Integrations.
  2. Create a new token and update all consumers with the new value.
  3. Revoke the old token by clicking Delete next to it.

Include the token in the Authorization header of every request:

Authorization: Bearer cct_YOUR_TOKEN

All token-authenticated endpoints are under https://app.runcolony.com. There is no separate API base URL — the dashboard and API share the same domain.

Example with curl:

Terminal window
curl -s \
-H "Authorization: Bearer cct_YOUR_TOKEN" \
"https://app.runcolony.com/api/cli/bootstrap"

A missing or invalid token returns 401 Unauthorized. An expired token also returns 401.

The following endpoints are authenticated with cct_ tokens. All accept owner/name format for the repo parameter (e.g. acme/my-repo).

MethodPath?repoDescription
GET/api/cli/bootstrapOptionalReturn org metadata, enabled repos, and pipeline store connection info.
GET/api/cli/issuesRequiredList pipeline issues for a repo, optionally filtered by state.
GET/api/cli/issues/{number}/whyRequiredReturn current state, recent transition history, and last error for a specific issue.
GET/api/cli/pipeline/overviewRequiredReturn a full pipeline health snapshot — open issues, queue depth, Workers, costs.

Returns org details, the list of enabled repos, and pipeline store connection information for the authenticated org.

ParameterInRequiredDescription
repoqueryNoFilter to a single repo in owner/name format. Returns 404 if the repo is not enabled in this org.
Terminal window
# All repos in the org
curl -H "Authorization: Bearer cct_…" \
"https://app.runcolony.com/api/cli/bootstrap"
# Scoped to one repo
curl -H "Authorization: Bearer cct_…" \
"https://app.runcolony.com/api/cli/bootstrap?repo=acme/my-repo"

Lists pipeline issues for a repo. Returns all non-done issues by default.

ParameterInRequiredDescription
repoqueryYesRepository in owner/name format.
statequeryNoFilter by state. See accepted values below.

Accepted state values:

ValueIssues returned
open (default)All issues where state != 'done'
blockedIssues where is_blocked = true and state != 'done'
pausedIssues where is_paused = true and state != 'done'
Any pipeline state stringIssues in exactly that state (e.g. in-review, analyzing, failure-blocked)
Terminal window
# Open issues (default)
curl -H "Authorization: Bearer cct_…" \
"https://app.runcolony.com/api/cli/issues?repo=acme/my-repo"
# Blocked issues only
curl -H "Authorization: Bearer cct_…" \
"https://app.runcolony.com/api/cli/issues?repo=acme/my-repo&state=blocked"
# Issues in a specific pipeline state
curl -H "Authorization: Bearer cct_…" \
"https://app.runcolony.com/api/cli/issues?repo=acme/my-repo&state=in-review"

Returns the current state, a summary of recent state transitions, and the last agent error for a specific issue number.

ParameterInRequiredDescription
numberpathYesPositive integer issue number.
repoqueryYesRepository in owner/name format.
Terminal window
curl -H "Authorization: Bearer cct_…" \
"https://app.runcolony.com/api/cli/issues/42/why?repo=acme/my-repo"

Returns a comprehensive pipeline health snapshot for a repo, including all open issues, queue depth by task type, in-flight tasks, Worker pool status, blocked issues, recent agent failures, and LLM cost over four windows (24 h, 7 d, 30 d, all time).

ParameterInRequiredDescription
repoqueryYesRepository in owner/name format.
Terminal window
curl -H "Authorization: Bearer cct_…" \
"https://app.runcolony.com/api/cli/pipeline/overview?repo=acme/my-repo"

A full machine-readable OpenAPI 3.1 document covering all Colony Cloud API endpoints is available at:

https://app.runcolony.com/api/openapi.json

You can use this spec to generate typed clients, import routes into API testing tools, or explore the full request and response schemas for every endpoint — including the Worker and MCP endpoints not listed above.

Terminal window
curl -s https://app.runcolony.com/api/openapi.json | jq '.paths | keys'

The token is missing, malformed, or expired.

  • Confirm the Authorization header value is exactly Bearer cct_YOUR_TOKEN with no extra whitespace.
  • Confirm the token starts with cct_ — Worker tokens and OAuth access tokens use different prefixes and are not accepted here.
  • If the token has an expires_at date that has passed, generate a new one from Settings → Organization → Integrations.

The ?repo value does not match a repo that is enabled in your org or accessible to this token.

  • Confirm the repo is enabled in Colony Cloud under Settings → Repos & access or the per-repo enable flow.
  • Confirm the owner/name format is correct and case matches (the API normalizes to lowercase internally, but a missing slash returns a 400 instead).

The ?repo parameter was provided but does not contain a / separating owner and name.

  • Use owner/name format — e.g. acme/my-repo, not acme or my-repo.