REST API
- Access
- Read-only, with an API token
- Plan
- Included by plan
- Description
- OpenAPI 3.1 at /api/v1/openapi.json
The REST API gives your servers read-only access to your workspace’s analytics. Use it to feed a warehouse, a reporting tool or an internal dashboard. It returns the same numbers you see in DevGlimpse, under the same visibility rules.
Get a token
An org admin issues API tokens. Each token has a role, either developer or manager, and it acts as the person who issued it. The role and your visibility settings decide which individual rows it can read. A token never has admin rights.
Keep the token secret. It is shown once when it is created. If you lose it, revoke it and issue another.
A token stops working if it is revoked, if the person who issued it is no longer an active org admin, or if your plan no longer includes the API. If an admin later widens what the token’s role may see, existing tokens are refused with the code scope_widened. Issue a new token.
Read the OpenAPI description
The full description of every endpoint and parameter is an OpenAPI 3.1 document. You do not need a token to read it.
GET /api/v1/openapi.json
Use it to generate a client or browse the endpoints in any OpenAPI tool. The server address is listed in the OpenAPI document under its servers.
Make a request
Send the token as a bearer token.
GET /api/v1/analytics/{name}?from=2026-10-01&to=2026-10-31
Authorization: Bearer <your token>
GET /api/v1/analytics/{name}runs one named query. Every query takesfromandtoas dates inYYYY-MM-DDform. The response is{ "rows": [...] }.GET /api/v1/usagereturns your token’s own request counts per day and endpoint for the last 30 days.
Query names include metric_anomalies, ai_adoption_daily, ai_spend_daily, ai_output_by_tool, ci_pipeline_duration, ci_failure_rate, ci_flaky_tests and ci_minutes. The OpenAPI document is the complete, current list.
Rows carry contributor ids, never names. Only the API’s GET method is allowed, and responses are never cached. The API is for servers, so browsers cannot call it directly.
Errors
| Status | Meaning |
|---|---|
| 400 | An unknown, repeated, missing or malformed parameter. |
| 401 | The token is missing, invalid or revoked, or its issuer is no longer an active org admin. |
| 402 | Your plan does not include the API. |
| 403 | The request came from outside your IP allowlist. |
| 409 | The token’s role can now see more than when it was issued. Issue a new token. |
| 429 | Too many requests. Wait for the number of seconds in the Retry-After header. |
| 503 | The analytics store is briefly unavailable. Retry after the Retry-After seconds. |
Rate limits
Requests are limited to 120 per minute per client IP address, and 120 per minute per token. Requests above the limit get a 429 with Retry-After: 60.