Skip to content

API reference

This reference is generated from the committed OpenAPI document (version 0.1.0). The same document is served by every instance at /api/openapi.json, with an interactive explorer at /api/docs, and a copy is published here: openapi.json.

Dashboard routes live under /api/v1. Telemetry ingestion (/v1/traces, /v1/otlp/traces) is versioned on its own. Errors, authentication, rate limits and idempotency keys are described in API conventions.

Operation Summary
GET /api/v1/orgs/{org_id}/alert-channels List alert channels
POST /api/v1/orgs/{org_id}/alert-channels Add an alert channel
DELETE /api/v1/orgs/{org_id}/alert-channels/{channel_id} Delete an alert channel
GET /api/v1/orgs/{org_id}/alert-channels/{channel_id} Get an alert channel
PATCH /api/v1/orgs/{org_id}/alert-channels/{channel_id} Edit an alert channel
GET /api/v1/orgs/{org_id}/alert-channels/{channel_id}/deliveries List a channel’s deliveries
POST /api/v1/orgs/{org_id}/alert-channels/{channel_id}/deliveries/{delivery_id}/retry Retry a failed delivery
POST /api/v1/orgs/{org_id}/alert-channels/{channel_id}/test Send a test notification
GET /api/v1/projects/{project_id}/alert-events List alert events
POST /api/v1/projects/{project_id}/alert-events/{event_id}/acknowledge Acknowledge an alert event
GET /api/v1/projects/{project_id}/alert-rules List alert rules
POST /api/v1/projects/{project_id}/alert-rules Add an alert rule
DELETE /api/v1/projects/{project_id}/alert-rules/{rule_id} Delete an alert rule
GET /api/v1/projects/{project_id}/alert-rules/{rule_id} Get an alert rule
PATCH /api/v1/projects/{project_id}/alert-rules/{rule_id} Edit an alert rule
POST /api/v1/projects/{project_id}/alert-rules/{rule_id}/mute Mute an alert rule
POST /api/v1/projects/{project_id}/alert-rules/preview Preview an alert rule
Operation Summary
GET /api/v1/projects/{project_id}/annotation-queues List annotation queues
POST /api/v1/projects/{project_id}/annotation-queues Add a queue
DELETE /api/v1/projects/{project_id}/annotation-queues/{queue_id} Delete a queue
GET /api/v1/projects/{project_id}/annotation-queues/{queue_id} Get a queue
POST /api/v1/projects/{project_id}/annotation-queues/{queue_id}/claim Claim the next item
GET /api/v1/projects/{project_id}/annotation-queues/{queue_id}/items List a queue’s items
POST /api/v1/projects/{project_id}/annotation-queues/{queue_id}/items Queue traces
POST /api/v1/projects/{project_id}/annotation-queues/{queue_id}/items/{item_id}/complete Complete an item
POST /api/v1/projects/{project_id}/annotation-queues/{queue_id}/items/{item_id}/release Release an item
POST /api/v1/projects/{project_id}/annotation-queues/{queue_id}/items/{item_id}/skip Skip an item
Operation Summary
GET /api/v1/projects/{project_id}/attribution Read Attribution
Operation Summary
POST /api/v1/auth/email/verify/confirm Confirm Email Verification
POST /api/v1/auth/email/verify/request Request Email Verification
POST /api/v1/auth/login Login
POST /api/v1/auth/logout Logout
GET /api/v1/auth/me Me
DELETE /api/v1/auth/oauth/{provider} Unlink
GET /api/v1/auth/oauth/{provider}/callback Callback
GET /api/v1/auth/oauth/{provider}/start Start
GET /api/v1/auth/oauth/identities List Identities
GET /api/v1/auth/oauth/providers List Providers
POST /api/v1/auth/password/forgot Forgot Password
POST /api/v1/auth/password/reset Reset Password
DELETE /api/v1/auth/sessions Delete Other Sessions
GET /api/v1/auth/sessions List Sessions
DELETE /api/v1/auth/sessions/{session_id} Delete Session
POST /api/v1/auth/signup Signup
GET /api/v1/auth/tokens List Tokens
POST /api/v1/auth/tokens Create Token
DELETE /api/v1/auth/tokens/{token_id} Revoke
GET /api/v1/auth/totp Totp Status
POST /api/v1/auth/totp/disable Totp Disable
POST /api/v1/auth/totp/enable Totp Enable
POST /api/v1/auth/totp/setup Totp Setup
POST /api/v1/auth/totp/verify Totp Verify
Operation Summary
GET /api/v1/orgs/{org_id}/billing-sources List billing sources
POST /api/v1/orgs/{org_id}/billing-sources Add a billing source
DELETE /api/v1/orgs/{org_id}/billing-sources/{source_id} Delete a billing source
GET /api/v1/orgs/{org_id}/billing-sources/{source_id} Get a billing source
PATCH /api/v1/orgs/{org_id}/billing-sources/{source_id} Edit a billing source
GET /api/v1/orgs/{org_id}/billing-sources/{source_id}/reconciliation Reconcile a billing source with Spanlight’s figures
GET /api/v1/orgs/{org_id}/billing-sources/{source_id}/reconciliation.csv Download a billing source’s reconciliation as CSV
POST /api/v1/orgs/{org_id}/billing-sources/{source_id}/refresh Fetch a billing source now
POST /api/v1/orgs/{org_id}/billing-sources/{source_id}/rotate Replace a source’s admin key
GET /api/v1/orgs/{org_id}/billing-sources/{source_id}/runs List a source’s runs
POST /api/v1/orgs/{org_id}/billing-sources/{source_id}/upload Upload a billing source’s cost CSV
Operation Summary
GET /api/v1/projects/{project_id}/budgets List budgets
POST /api/v1/projects/{project_id}/budgets Add a budget
DELETE /api/v1/projects/{project_id}/budgets/{budget_id} Delete a budget
GET /api/v1/projects/{project_id}/budgets/{budget_id} Get a budget
PATCH /api/v1/projects/{project_id}/budgets/{budget_id} Edit a budget
Operation Summary
GET /api/v1/projects/{project_id}/datasets List datasets
POST /api/v1/projects/{project_id}/datasets Add a dataset
DELETE /api/v1/projects/{project_id}/datasets/{dataset_id} Delete a dataset
GET /api/v1/projects/{project_id}/datasets/{dataset_id} Get a dataset
PATCH /api/v1/projects/{project_id}/datasets/{dataset_id} Edit a dataset
GET /api/v1/projects/{project_id}/datasets/{dataset_id}/items List a dataset’s items
POST /api/v1/projects/{project_id}/datasets/{dataset_id}/items Add items
DELETE /api/v1/projects/{project_id}/datasets/{dataset_id}/items/{item_id} Delete an item
PATCH /api/v1/projects/{project_id}/datasets/{dataset_id}/items/{item_id} Edit an item
POST /api/v1/projects/{project_id}/datasets/{dataset_id}/items/from-traces Add items from traces
POST /api/v1/projects/{project_id}/datasets/{dataset_id}/items/upload Upload items
POST /api/v1/projects/{project_id}/datasets/{dataset_id}/lock Lock a dataset
POST /api/v1/projects/{project_id}/datasets/{dataset_id}/unlock Unlock a dataset
Operation Summary
POST /api/v1/demo/session Start Demo Session
Operation Summary
GET /api/v1/projects/{project_id}/evaluators List evaluators
POST /api/v1/projects/{project_id}/evaluators Add an evaluator
DELETE /api/v1/projects/{project_id}/evaluators/{evaluator_id} Delete an evaluator
GET /api/v1/projects/{project_id}/evaluators/{evaluator_id} Get an evaluator
PATCH /api/v1/projects/{project_id}/evaluators/{evaluator_id} Edit an evaluator
GET /api/v1/projects/{project_id}/evaluators/{evaluator_id}/budget Get an evaluator’s budget
GET /api/v1/projects/{project_id}/evaluators/{evaluator_id}/runs List evaluator runs
POST /api/v1/projects/{project_id}/evaluators/{evaluator_id}/test Test an evaluator on a trace
Operation Summary
GET /api/v1/projects/{project_id}/experiments List experiments
POST /api/v1/projects/{project_id}/experiments Add an experiment
GET /api/v1/projects/{project_id}/experiments/{experiment_id} Get an experiment
GET /api/v1/projects/{project_id}/experiments/{experiment_id}/runs List runs
POST /api/v1/projects/{project_id}/experiments/{experiment_id}/runs Run an experiment
GET /api/v1/projects/{project_id}/experiments/{experiment_id}/runs/{run_a}/compare/{run_b} Compare two runs
GET /api/v1/projects/{project_id}/experiments/{experiment_id}/runs/{run_id} Get a run
GET /api/v1/projects/{project_id}/experiments/{experiment_id}/runs/{run_id}/items List a run’s items
Operation Summary
GET /api/v1/projects/{project_id}/exports List a project’s exports
POST /api/v1/projects/{project_id}/exports Request an export
GET /api/v1/projects/{project_id}/exports/{export_id} Get one export
Operation Summary
GET /api/v1/orgs/{org_id}/credentials List provider credentials
POST /api/v1/orgs/{org_id}/credentials Add a provider credential
DELETE /api/v1/orgs/{org_id}/credentials/{credential_id} Delete a provider credential
POST /api/v1/orgs/{org_id}/credentials/{credential_id}/check Check a credential
POST /api/v1/orgs/{org_id}/credentials/{credential_id}/rotate Replace a credential’s key
POST /api/v1/projects/{project_id}/gateway/cache/purge Purge the gateway response cache
GET /api/v1/projects/{project_id}/gateway/fault-profiles List fault profiles
POST /api/v1/projects/{project_id}/gateway/fault-profiles Create a fault profile
DELETE /api/v1/projects/{project_id}/gateway/fault-profiles/{profile_id} Delete a fault profile
PATCH /api/v1/projects/{project_id}/gateway/fault-profiles/{profile_id} Edit a fault profile
GET /api/v1/projects/{project_id}/gateway/keys List gateway keys
POST /api/v1/projects/{project_id}/gateway/keys Create a gateway key
DELETE /api/v1/projects/{project_id}/gateway/keys/{key_id} Revoke a gateway key
PATCH /api/v1/projects/{project_id}/gateway/keys/{key_id} Edit a gateway key
GET /api/v1/projects/{project_id}/gateway/overview Gateway traffic overview
GET /api/v1/projects/{project_id}/gateway/routes List gateway routes
POST /api/v1/projects/{project_id}/gateway/routes Create a route
DELETE /api/v1/projects/{project_id}/gateway/routes/{route_id} Delete a route
GET /api/v1/projects/{project_id}/gateway/routes/{route_id} Get a route
PUT /api/v1/projects/{project_id}/gateway/routes/{route_id} Save a new version of a route
POST /api/v1/projects/{project_id}/gateway/routes/{route_id}/default Make a route the default
POST /api/v1/projects/{project_id}/gateway/routes/{route_id}/revert Revert a route
GET /api/v1/projects/{project_id}/gateway/routes/{route_id}/versions List a route’s versions
POST /gw/v1/chat/completions Chat Completions
POST /gw/v1/messages Messages
GET /gw/v1/models Models
POST /gw/v1/responses Responses
Operation Summary
GET /health/live Live
GET /health/ready Ready
Operation Summary
POST /v1/otlp/traces Ingest Otlp
POST /v1/traces Ingest Native
Operation Summary
GET /api/v1/projects/{project_id}/detector-runs List recent detector runs
GET /api/v1/projects/{project_id}/health Score the project’s health
GET /api/v1/projects/{project_id}/insights List insights
GET /api/v1/projects/{project_id}/insights/{insight_id} Read one insight
POST /api/v1/projects/{project_id}/insights/{insight_id}/acknowledge Acknowledge an insight
POST /api/v1/projects/{project_id}/insights/{insight_id}/explain Ask Claude to explain an insight
DELETE /api/v1/projects/{project_id}/insights/{insight_id}/feedback Withdraw your verdict on an insight
PUT /api/v1/projects/{project_id}/insights/{insight_id}/feedback Say whether an insight was right
POST /api/v1/projects/{project_id}/insights/{insight_id}/mute Mute an insight
POST /api/v1/projects/{project_id}/insights/{insight_id}/resolve Resolve an insight
POST /api/v1/projects/{project_id}/insights/{insight_id}/unmute Unmute an insight
GET /api/v1/projects/{project_id}/insights/precision Doctor precision per detector
GET /api/v1/projects/{project_id}/insights/summary Count the insights to act on
Operation Summary
GET /api/v1/projects/{project_id}/keys List Keys
POST /api/v1/projects/{project_id}/keys Create Key
DELETE /api/v1/projects/{project_id}/keys/{key_id} Revoke Key
Operation Summary
GET /api/v1/projects/{project_id}/metrics/models Models
GET /api/v1/projects/{project_id}/metrics/overview Overview
GET /api/v1/projects/{project_id}/metrics/timeseries Timeseries
Operation Summary
POST /api/v1/invites/accept Accept Invite
GET /api/v1/invites/preview Preview Invite
POST /api/v1/orgs Create Org
DELETE /api/v1/orgs/{org_id} Delete Org
GET /api/v1/orgs/{org_id} Get Org
PATCH /api/v1/orgs/{org_id} Update Org
GET /api/v1/orgs/{org_id}/audit List Audit Events
GET /api/v1/orgs/{org_id}/audit/export.csv Download the audit log as CSV
GET /api/v1/orgs/{org_id}/audit/export.jsonl Download the audit log as JSON Lines
GET /api/v1/orgs/{org_id}/audit/integrity Audit Integrity
DELETE /api/v1/orgs/{org_id}/audit/stream Delete Audit Stream
GET /api/v1/orgs/{org_id}/audit/stream Get Audit Stream
PUT /api/v1/orgs/{org_id}/audit/stream Put Audit Stream
POST /api/v1/orgs/{org_id}/audit/stream/rotate-secret Rotate Audit Stream Secret
POST /api/v1/orgs/{org_id}/audit/stream/test Test Audit Stream
GET /api/v1/orgs/{org_id}/invites List Invites
POST /api/v1/orgs/{org_id}/invites Create Invite
DELETE /api/v1/orgs/{org_id}/invites/{invite_id} Revoke Invite
GET /api/v1/orgs/{org_id}/members List Members
DELETE /api/v1/orgs/{org_id}/members/{user_id} Remove Member
PATCH /api/v1/orgs/{org_id}/members/{user_id} Update Member
Operation Summary
GET /api/v1/projects/{project_id}/playground/replays List replays
POST /api/v1/projects/{project_id}/playground/replays Replay a stored request
GET /api/v1/projects/{project_id}/playground/replays/budget Read the replay budget
POST /api/v1/projects/{project_id}/playground/runs Run prompts in the playground
GET /api/v1/projects/{project_id}/traces/{trace_id}/spans/{span_id}/replay-source Read what a replay of a span would send
Operation Summary
GET /api/v1/orgs/{org_id}/price-overrides List price overrides
POST /api/v1/orgs/{org_id}/price-overrides Add a price override
DELETE /api/v1/orgs/{org_id}/price-overrides/{override_id} Delete a price override
GET /api/v1/prices Get Prices
GET /api/v1/projects/{project_id}/unpriced-models Get Unpriced Models
Operation Summary
GET /api/v1/orgs/{org_id}/projects List Projects
POST /api/v1/orgs/{org_id}/projects Create Project
DELETE /api/v1/projects/{project_id} Delete Project
GET /api/v1/projects/{project_id} Get Project
PATCH /api/v1/projects/{project_id} Update Project
GET /api/v1/projects/{project_id}/onboarding Onboarding Status
Operation Summary
GET /api/v1/projects/{project_id}/prompt-versions/{version_id} Get a prompt version by id
GET /api/v1/projects/{project_id}/prompts List prompts
POST /api/v1/projects/{project_id}/prompts Add a prompt
DELETE /api/v1/projects/{project_id}/prompts/{name} Delete a prompt
GET /api/v1/projects/{project_id}/prompts/{name} Get a prompt
DELETE /api/v1/projects/{project_id}/prompts/{name}/labels/{label} Remove a label
PUT /api/v1/projects/{project_id}/prompts/{name}/labels/{label} Point a label at a version
GET /api/v1/projects/{project_id}/prompts/{name}/versions List prompt versions
POST /api/v1/projects/{project_id}/prompts/{name}/versions Add a prompt version
GET /api/v1/projects/{project_id}/prompts/{name}/versions/{version} Get a prompt version
GET /api/v1/projects/{project_id}/prompts/{name}/versions/{version}/usage Get a prompt version’s usage
GET /v1/prompts/{name} Read a prompt version
Operation Summary
GET /api/v1/projects/{project_id}/provider-incidents Provider incidents
GET /api/v1/projects/{project_id}/providers/errors/samples Sample failed calls
GET /api/v1/projects/{project_id}/providers/errors/timeseries Errors by class over time
GET /api/v1/projects/{project_id}/providers/health Provider health
GET /api/v1/projects/{project_id}/telemetry-completeness Telemetry completeness
Operation Summary
GET /api/v1/projects/{project_id}/releases List Releases
GET /api/v1/projects/{project_id}/releases/compare Compare Releases
GET /api/v1/projects/{project_id}/releases/failure-categories Failure Category Rates
Operation Summary
DELETE /api/v1/projects/{project_id}/review-policy Delete the review policy
GET /api/v1/projects/{project_id}/review-policy Get the review policy
PUT /api/v1/projects/{project_id}/review-policy Set the review policy
POST /api/v1/projects/{project_id}/review-policy/runs Select a day now
GET /api/v1/projects/{project_id}/review-policy/selections List selections
Operation Summary
GET /api/v1/projects/{project_id}/score-configs List score configs
POST /api/v1/projects/{project_id}/score-configs Add a score config
DELETE /api/v1/projects/{project_id}/score-configs/{config_id} Delete a score config
PATCH /api/v1/projects/{project_id}/score-configs/{config_id} Edit a score config
POST /api/v1/projects/{project_id}/score-configs/failure-category Add the failure-category config
DELETE /api/v1/projects/{project_id}/scores/{score_id} Delete a score
GET /api/v1/projects/{project_id}/traces/{trace_id}/scores List a trace’s scores
POST /api/v1/projects/{project_id}/traces/{trace_id}/scores Score a trace
POST /v1/scores Ingest Scores
Operation Summary
GET /api/v1/projects/{project_id}/filters List Filter Values
GET /api/v1/projects/{project_id}/sessions List Sessions
GET /api/v1/projects/{project_id}/traces List Traces
GET /api/v1/projects/{project_id}/traces/{trace_id} Get Trace
GET /api/v1/projects/{project_id}/traces/{trace_id}/spans/{span_id} Get Span
GET /api/v1/projects/{project_id}/traces/{trace_id}/spans/{span_id}/cost-explanation Explain a span’s cost
GET /api/v1/projects/{project_id}/traces/compare Compare Traces
Operation Summary
GET /api/v1/projects/{project_id}/users List Users
GET /api/v1/projects/{project_id}/users/{external_user_id} User Detail