Skip to content

API Overview

Optra Prism exposes two backend services with REST APIs.

ServicePurpose
IngestReceives OTLP telemetry (logs, metrics, traces)
Prism APIServes telemetry, Prompt Score v3.0, intelligence, and insights reads
Prism workerRuns consumers, scoring, archival, projections, and scheduled delivery
ServiceBase URL
Ingesthttps://ingest.optra-prism.com
APIInternal (private)

The API is not exposed to the public internet — the dashboard reaches it over internal networking, and a small set of API endpoints are proxied through the ingest service for plugin and external callers: /v1/telemetry/logs, /v1/insights/report, /v1/insights/report/generate, /v1/insights/report/quick, /v1/score_v3/realtime/sub-sessions, /v1/score_v3/today-summary, and /v1/model-catalog. (/v1/intelligence/prism is also exposed on ingest as a stub — see Ingest.)

SectionWhat’s in it
Authenticationprism_* / gck_* API keys and headers
IngestOTLP write endpoints (POST /v1/logs, /v1/metrics, /v1/traces)
TelemetryRead back the telemetry Prism has stored
Prompt Score v3.0The scoring surface — Prompt Score (average prompt grade), completion rate, and the supporting metrics
IntelligenceOperational signals — throttle impact, model rightsizing, sub-session boundary review
Insights & ReportsReport endpoints — the ingest report proxies and the v3.0 report family

What you can call from outside. Only the ingest endpoints above are reachable over the public internet. The API’s own routes — everything under Telemetry, Prompt Score v3.0, and Intelligence — are internal; the dashboard reaches them over private networking, and they are documented here so you can read what the dashboard shows, not so you can call them directly.

If you are building an integration, start from the ingest proxies. If you are running your own Prism, the API routes are yours to call inside your own network.

All endpoints return JSON, but the response shape varies per endpoint — there is no uniform envelope. For example, /v1/intelligence/rightsizing returns an object with modelUsage / monthlyUsage arrays, while /v1/score_v3/score returns a ScoreResponse object directly. See the individual endpoint pages for concrete shapes.

Errors use a consistent shape in both services:

{
"code": 401,
"message": "Invalid API key"
}

Common (both services):

CodeMeaning
200Success
400Bad request (validation error)
401Unauthorized (missing or invalid API key)
500Internal server error

Ingest-only:

CodeMeaning
413Payload too large — OTLP body exceeds limit, or a prompt-capture request (/v1/prompts, /v1/prompts/response) exceeds the raw ingress frame bound. Permanent; no Retry-After.
503Service unavailable — the ingest pipeline is saturated; response includes Retry-After: 5