Skip to main content
Use the REST API to access your development and production observability data from any environment: scripts, dashboards, CI pipelines, or custom integrations.

Prerequisites

  • A Context Company account with at least one project sending data
  • An API key (generated in the next step)

Setup

1

Generate a read-only API key

Go to the Access Data page in your dashboard and create a read-only API key. These keys (prefixed with tcc_key) can only query your data - they cannot ingest traces. Choose an access scope:
ScopeAccess
Dev onlyDevelopment runs and traces
Prod onlyProduction runs, metrics, patterns, failures, and sessions
Dev + ProdAll dev and production data
Copy your key immediately. You won’t be able to see it again.
Read-only API keys are separate from the ingestion keys (prefixed with tcc_prod) used to send traces from your AI application. Ingestion keys are managed in Settings by admins. Read-only keys can be created by any team member.
2

Make your first request

All endpoints live under https://api.thecontext.company/v1. Pass your key as a Bearer token:
curl "https://api.thecontext.company/v1/runs?source=prod&range=1d&limit=10" \
  -H "Authorization: Bearer <your-api-key>"

Authentication

Every request requires a Bearer token in the Authorization header:
Authorization: Bearer <your-api-key>
The key’s scope determines which endpoints you can access. Dev-scoped keys can only query dev data, prod-scoped keys can only query prod data, and dev+prod keys can access both.

Common parameters

Most endpoints accept time-range parameters:
ParameterTypeDescription
rangestringTime preset: 5m, 1h, 1d, 2w, 1M, 2M (or verbose: last_5_minutes, last_hour, last_day, last_two_weeks, last_month, last_two_months)
fromstringStart time as ISO 8601 or ms timestamp. Use with to instead of range
tostringEnd time as ISO 8601 or ms timestamp. Use with from instead of range
You must provide either range or both from and to.

Endpoints

Runs

GET /v1/runs
ParameterTypeRequiredDescription
source"dev" | "prod"YesData source to query
range / from + tostringYesTime range
limitnumberNoMax results (default 50, max 200)
status"ok" | "error"NoFilter by status (prod only)
session_idstringNoFilter by session (prod only)
agentstringNoExact agent name. Matches the native column populated from tcc.agent.
userId / external_user_idstringNoExact external user ID. Matches the native column populated from tcc.userId.
orgId / external_org_idstringNoExact external organization / customer ID. Matches the native column populated from tcc.orgId. This is the customer’s ID in your system, not the Context Company platform org ID.
curl "https://api.thecontext.company/v1/runs?source=prod&range=1d&limit=5" \
  -H "Authorization: Bearer <your-api-key>"

Sessions

GET /v1/sessions
ParameterTypeRequiredDescription
range / from + tostringYesTime range
limitnumberNoMax results (default 50, max 200)
offsetnumberNoPagination offset
agentstringNoExact agent name. Matches the native column populated from tcc.agent.
userId / external_user_idstringNoExact external user ID. Matches the native column populated from tcc.userId.
orgId / external_org_idstringNoExact external organization / customer ID. Matches the native column populated from tcc.orgId. This is the customer’s ID in your system, not the Context Company platform org ID.
curl "https://api.thecontext.company/v1/sessions?range=2w&limit=10" \
  -H "Authorization: Bearer <your-api-key>"

Metrics

GET /v1/metrics
Returns aggregate metrics including run count, duration, tokens, and cost.
ParameterTypeRequiredDescription
range / from + tostringYesTime range
curl "https://api.thecontext.company/v1/metrics?range=1M" \
  -H "Authorization: Bearer <your-api-key>"

Models

GET /v1/models
Returns a breakdown of model usage across your runs.
curl "https://api.thecontext.company/v1/models?range=2w" \
  -H "Authorization: Bearer <your-api-key>"

Tools

GET /v1/tools
Returns a breakdown of tool usage across your runs.
curl "https://api.thecontext.company/v1/tools?range=2w" \
  -H "Authorization: Bearer <your-api-key>"

Failures

GET /v1/failures
Returns aggregated error patterns.
ParameterTypeRequiredDescription
range / from + tostringYesTime range
order_by"events" | "first_seen" | "last_seen"NoSort order (default last_seen)
direction"asc" | "desc"NoSort direction
entity_type"run" | "tool_call"NoFilter by entity type
status"active" | "resolved" | "ignored"NoFilter by status
curl "https://api.thecontext.company/v1/failures?range=1d&order_by=events&direction=desc" \
  -H "Authorization: Bearer <your-api-key>"

Feedback

GET /v1/feedback
Returns user feedback metrics over a time range.
curl "https://api.thecontext.company/v1/feedback?range=1M" \
  -H "Authorization: Bearer <your-api-key>"

Patterns

The patterns, insights, and insight search endpoints require a Pro or Enterprise plan.
GET /v1/patterns
Returns detected patterns such as frustration, confusion, and other behavioral signals.
ParameterTypeRequiredDescription
range / from + tostringYesTime range
curl "https://api.thecontext.company/v1/patterns?range=2w" \
  -H "Authorization: Bearer <your-api-key>"

Insights

GET /v1/insights
Returns auto-generated weekly insights.
curl "https://api.thecontext.company/v1/insights" \
  -H "Authorization: Bearer <your-api-key>"
Insight search requires the monitoring feature on your plan.
POST /v1/insight-search
Ask natural-language questions about your production data. See insight search for more on what you can ask.
curl -X POST "https://api.thecontext.company/v1/insight-search" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{"query": "What are the most common failure patterns this week?"}'