DEVELOPER DOCS

REST API

Appendix

On this page

Complete endpoint index

Read API — https://api.opexia.dev

MethodPathRole
GET/healthpublic
GET/metricspublic
GET/v1/auth/meauthenticated
POST/v1/auth/accept-inviteauthenticated
POST/v1/onboarding/orgauthenticated
POST/v1/onboarding/workspaceauthenticated
GET/v1/orgs/{org_id}dev
PATCH/v1/orgs/{org_id}admin
GET/v1/orgs/{org_id}/membersdev
PATCH/v1/orgs/{org_id}/members/{user_id}admin
DELETE/v1/orgs/{org_id}/members/{user_id}admin
POST/v1/orgs/{org_id}/transfer-ownershipowner
POST/v1/orgs/{org_id}/invitationsadmin
GET/v1/orgs/{org_id}/invitationsadmin
DELETE/v1/orgs/{org_id}/invitations/{invitation_id}admin
POST/v1/orgs/{org_id}/workspacesadmin
GET/v1/orgs/{org_id}/workspacesdev
GET/v1/workspaces/{ws_id}dev
PATCH/v1/workspaces/{ws_id}admin
DELETE/v1/workspaces/{ws_id}admin
POST/v1/workspaces/{ws_id}/keysdev
GET/v1/workspaces/{ws_id}/keysdev
DELETE/v1/workspaces/{ws_id}/keys/{key_id}dev
GET/v1/observ/orgs/{org}/aggregatedev
GET/v1/observ/orgs/{org}/llm-credentialsdev
PUT/v1/observ/orgs/{org}/llm-credentialsdev
DELETE/v1/observ/orgs/{org}/llm-credentialsdev
PATCH/v1/observ/orgs/{org}/llm-credentials/fallbackdev
GET/v1/observ/orgs/{org}/search-credentialsdev
PUT/v1/observ/orgs/{org}/search-credentialsdev
DELETE/v1/observ/orgs/{org}/search-credentialsdev
GET/v1/observ/orgs/{org}/observability/llm-spend/summarydev
GET/v1/observ/orgs/{org}/observability/llm-spend/timeseriesdev
POST/v1/observ/orgs/{org}/workspacesadmin
GET/v1/observ/orgs/{org}/workspaces/{ws}/tracesviewer
GET/v1/observ/orgs/{org}/workspaces/{ws}/traces/{trace_id}viewer
GET…/traces/{trace_id}/content-reliabilityviewer
GET…/traces/{trace_id}/decision-traceviewer
GET…/traces/{trace_id}/decompositionviewer
GET…/traces/{trace_id}/sources-matrixviewer
GET…/traces/{trace_id}/optimizationviewer
GET…/usage/summaryviewer
GET…/usage/timeseriesviewer
GET…/usage/latencyviewer
GET…/usage/latency/phase/tracesviewer
GET…/cost-budgetviewer
PUT…/cost-budgetadmin
GET…/savings/recommendationsviewer
GET…/savings/trace/{trace_id}viewer
GET…/optimization/flagsviewer
GET…/optimization/over-provisionedviewer
GET…/sourcesviewer
GET…/drift/currentviewer
GET…/drift/historyviewer
GET…/alignment/policyviewer
PUT…/alignment/policyadmin
POST…/alignment/docsadmin
DELETE…/alignment/docs/{doc_id}admin
GET…/alignment/flagsviewer
GET…/alignment/by-userviewer
GET…/fleet/fleetsviewer
GET…/fleet/{fleet_id}/graphviewer
GET…/fleet/{fleet_id}/flagsviewer
POST…/fleet/{fleet_id}/pauseadmin
POST…/fleet/{fleet_id}/resumeadmin
POST…/fleet/{fleet_id}/clearadmin
POST…/fleet/ws-ticketviewer
GET…/shipcheck/promptsviewer
GET…/shipcheck/prompts/{prompt_key}/versionsviewer
GET…/shipcheck/prompts/{prompt_key}/versions/{version}viewer
GET…/shipcheck/prompts/{prompt_key}/diffviewer
GET…/shipcheck/pipeline/diffviewer
POST…/shipcheck/repriceviewer
POST/v1/observ/shipcheck/candidateAPI key
GET…/claude-code/usageviewer
GET…/claude-code/commitsviewer
GET…/claude-code/top-filesviewer
GET…/settings/capture-textviewer
PATCH…/settings/capture-textadmin
GET…/settings/broaden-sourcesviewer
PATCH…/settings/broaden-sourcesadmin
GET…/settings/cost-providerviewer
PATCH…/settings/cost-provideradmin
GET…/engine-settingsviewer
PUT…/engine-settingsadmin
GET…/retentionviewer
PUT…/retentionadmin
POST…/retention:previewadmin
GET…/redaction-rulesviewer
POST…/redaction-rulesadmin
GET…/audit-logadmin
GET…/health/ingestionadmin
POST/v1/observ/platform/auth-providersplatform key

… abbreviates /v1/observ/orgs/{org}/workspaces/{ws}.

Ingest API — https://ingest.opexia.dev

MethodPathAuth
GET/healthpublic
GET/metricspublic
GET/v1/auth/whoamiAPI key
GET/v1/workspaces/{ws}/sdk-configAPI key
POST/v1/otlp/traces (alias /v1/traces)API key
POST/v1/otlp/claude-code/v1/tracesAPI key
POST/v1/otlp/claude-code/v1/metricsAPI key
POST/v1/otlp/claude-code/v1/logsAPI key
POST/v1/otlp/claude-code/v1/activityAPI key

WebSocket

ProtocolPathAuth
WSS/ws/fleet/{workspace_id}?ticket=…Single-use ticket

Troubleshooting

SymptomLikely causeFix
401 on every callWrong header for the key familyopx_* → x-opexia-api-key; dr_* → Authorization: Bearer
403 with a valid keyKey is bound to a different workspaceMint a key in the target workspace
404 on a valid-looking pathSlug used where a UUID is requiredSee slugs vs UUIDs
404 on the OpenAPI docFetching /openapi.json at the rootUse /v1/observ/openapi.json
415 on ingestProtobuf OTLPSet encoding: json on the collector's otlphttp exporter
202 on ingest but no tracesSpans dead-lettering after acceptanceCheck ingestion health
Empty engine panels, traces presentEngine disabled, or missing LLM credentialCheck engine settings and LLM credentials
Trace 404s that used to workAged out of the retention windowCheck retention
No prompt/completion text storedcapture_text is off (the default)See capture text
WebSocket closes with 1008Ticket expired or already usedMint a fresh ticket per connection
429 under loadPer-org per-minute limitBack off exponentially — the client helpers do this

See also