Skip to main content
POST
Chat Completions API

Authorizations

Authorization
string
header
required

API key authentication. Pass your API key as a Bearer token.

Headers

X-Opper-Name
string

Function name for tracing and project-level guardrail function-scope filtering.

X-Opper-Parent-Span-Id
string<uuid>

Parent span ID for distributed tracing context.

X-Opper-Tags
string

Comma-separated key:value usage-attribution tags (e.g. tenant:acme,project:demo, max 8). Recorded on the generation's billing/metrics rows; group spend by any key via GET /v2/analytics/usage?group_by=. Header-borne twin of the /v3/session URL prefix tags (which win per key when both are present); opper.-prefixed keys and session_id are reserved. Malformed values return 400.

Body

application/json
messages
object[]
required
cache_control
object

Opt in to automatic prompt caching for Anthropic-family models: {"type":"ephemeral"} (optionally "ttl":"1h"). Places one moving cache breakpoint on the largest cacheable prefix. Also settable per content part for precise placement. Caching is off unless set; no-op on providers with automatic server-side caching (OpenAI

custom_model_credentials
object
max_completion_tokens
integer
max_tokens
integer
metadata
object
model
string
models
string[]

Fallback models tried in order when the model before them fails for any reason (provider error; rate limit; timeout; a member blocked by one of your rules). Same OpenRouter shape: send the primary in model and the rest here; or omit model and the first entry is the primary. Each entry is any model string: a bare pooled name; a provider/model id; an org alias. Not allowed together with a dynamic/ route. At most 10 entries. Which model answered is in meta.routing.served and the X-Opper-Served-Model header; the model field still echoes what you sent.

output_schema
object
prompt_cache_key
string

OpenAI cache-routing key: a stable name for the prompt prefix this request shares with others (e.g. a document id for a fan-out over one context). Forwarded to OpenAI and used to keep requests that share the key on the same cache replica at providers with per-replica prompt caches.

reasoning_effort
string
response_format
object
stop
string[]
stream
boolean
stream_options
object
temperature
number
tool_choice
any

Any value

tools
object[]
top_p
number

Response

Successful response

choices
object[]
required
created
integer
required
id
string
required
model
string
required
object
string
required
usage
object
required
cost
number
meta
object