Runtime Request Families
Verdictan gives public proxy, discovery, WebSocket, and MCP routes. Clients can keep their native request format with one gateway. This page compares the primary text, embedding, and audio proxy families. It does not contain all routes. Governance coverage is different for each route. Verify the policy path for each transport.
Primary text, embedding, and audio routes
| Family | Route | Use it for | Response style |
|---|---|---|---|
| Chat completions | POST /v1/chat/completions | Use this family for OpenAI-style chat clients. | The response uses JSON or streaming. |
| Responses | POST /v1/responses | Use this family for new text integrations that use the Responses-style shape. | The response uses JSON or streaming. |
| Messages | POST /v1/messages | Use this family for Anthropic-style message envelopes and content blocks. | The response uses JSON or streaming. |
| Embeddings | POST /v1/embeddings | Use this family for vector generation. | The response uses JSON. |
| Audio transcription | POST /v1/audio/transcriptions | Use this family for speech-to-text. | The response uses JSON. |
| Audio speech | POST /v1/audio/speech | Use this family for text-to-speech. | The response uses binary audio. |
Other live gateway surfaces
| Surface | Route | Owning guidance |
|---|---|---|
| Legacy text completions | POST /v1/completions | This route gives legacy compatibility. Do not infer Chat Completions and Responses governance parity. |
| Moderation | POST /v1/moderations | Read Runtime moderation configuration. |
| Model discovery | GET /v1/models, GET /v1/models/:model_id | Read Runtime models configuration. |
| WebSocket proxy | GET /v1/chat/completions/ws, GET /v1/responses/ws | Read WebSocket Proxy. |
| Published-host MCP | GET /mcp, POST /mcp | Read Gateway MCP Surface. |
These surfaces keep their owning authentication, publication, routing, and governance boundaries. These surfaces do not make the Chat Completions and Responses policy path universal.
Policy-stage limits by family
A request family cannot enforce all policy-chain stages. The gateway request-family registry lists the supported stages.
If the active chain has an unsupported stage, the gateway rejects the request before upstream dispatch with policy.incompatible_active_chain.
The gateway does not skip unsupported stages without notification.
| Family | Route | Supported policy stages | Specified limitations |
|---|---|---|---|
| Chat completions | POST /v1/chat/completions | pre_request, post_request, pre_response | This family uses the full input and output policy path. |
| Responses | POST /v1/responses | pre_request, post_request, pre_response | This family uses the full input and output policy path. |
| Messages | POST /v1/messages | pre_request, post_request, pre_response | This family uses shared access, input, tool, output, and audit enforcement with an Anthropic-shaped body. |
| Embeddings | POST /v1/embeddings | pre_request | Does not support post_request or pre_response. Vector output has no output-policy path. |
| Audio transcription | POST /v1/audio/transcriptions | pre_request | This family does not support post_request or pre_response. |
| Audio speech | POST /v1/audio/speech | pre_request | Does not support post_request or pre_response. Output policy does not govern binary audio. |
| Legacy completions | POST /v1/completions | pre_request | This family does not support post_request or pre_response. Do not infer Chat Completions and Responses parity. |
| Moderation | POST /v1/moderations | pre_request | This family does not support post_request or pre_response. |
How to select between text families
- If you want the Responses-style request and output model, use
/v1/responsesfor new text-family work. - If the client uses the OpenAI chat-completions shape, use
/v1/chat/completions. - If the caller must use the Anthropic Messages shape, use
/v1/messages.
Chat Completions, Responses, and Messages use shared policy stages. Route shape, streaming translation, structured-output support, and provider support remain different. Test the selected family with the active chain.
WebSocket routes apply request and response policy to complete text frames. They reject binary frames and malformed JSON-like text. Read Streaming with SSE and WebSocket Gateway.
Structured outputs
On the OpenAI-style Chat Completions and Responses routes, structured
outputs use response_format in the request body. The Anthropic-style
Messages route does not advertise json_object or json_schema response
formats. Do not add this OpenAI field to a Messages request.
{
"response_format": {
"type": "json_object"
}
}
For a named schema, use this request:
{
"response_format": {
"type": "json_schema",
"json_schema": {
"name": "order_summary",
"strict": true,
"schema": {
"type": "object"
}
}
}
}
Request-time cache and session hints
Chat Completions and Responses support request-time cache and session hints. Do not infer equivalent handling on Messages from the shared field names.
| Field | Location | What it does |
|---|---|---|
cache_control | Request body | This field requests prompt-caching behavior when runtime policy allows it. |
session_id | Request body | This field groups related requests onto the same session lane. |
x-session-id | Request header | This field is the header form of the same session identifier. |
If the request contains session_id and x-session-id, their values must match.
What you configure elsewhere
You do not select some runtime behavior for each request. Use runtime configuration docs for:
- Configure default provider and fallback behavior.
- Configure privacy and retention settings.
- Configure organization-level plugin defaults.
- Configure evaluation and traffic-mirroring controls.
Read Runtime Configuration for those defaults.
Next steps
- Read OpenAI Integration.
- Read Runtime Configuration.