Skip to main content

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

FamilyRouteUse it forResponse style
Chat completionsPOST /v1/chat/completionsUse this family for OpenAI-style chat clients.The response uses JSON or streaming.
ResponsesPOST /v1/responsesUse this family for new text integrations that use the Responses-style shape.The response uses JSON or streaming.
MessagesPOST /v1/messagesUse this family for Anthropic-style message envelopes and content blocks.The response uses JSON or streaming.
EmbeddingsPOST /v1/embeddingsUse this family for vector generation.The response uses JSON.
Audio transcriptionPOST /v1/audio/transcriptionsUse this family for speech-to-text.The response uses JSON.
Audio speechPOST /v1/audio/speechUse this family for text-to-speech.The response uses binary audio.

Other live gateway surfaces

SurfaceRouteOwning guidance
Legacy text completionsPOST /v1/completionsThis route gives legacy compatibility. Do not infer Chat Completions and Responses governance parity.
ModerationPOST /v1/moderationsRead Runtime moderation configuration.
Model discoveryGET /v1/models, GET /v1/models/:model_idRead Runtime models configuration.
WebSocket proxyGET /v1/chat/completions/ws, GET /v1/responses/wsRead WebSocket Proxy.
Published-host MCPGET /mcp, POST /mcpRead 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.

FamilyRouteSupported policy stagesSpecified limitations
Chat completionsPOST /v1/chat/completionspre_request, post_request, pre_responseThis family uses the full input and output policy path.
ResponsesPOST /v1/responsespre_request, post_request, pre_responseThis family uses the full input and output policy path.
MessagesPOST /v1/messagespre_request, post_request, pre_responseThis family uses shared access, input, tool, output, and audit enforcement with an Anthropic-shaped body.
EmbeddingsPOST /v1/embeddingspre_requestDoes not support post_request or pre_response. Vector output has no output-policy path.
Audio transcriptionPOST /v1/audio/transcriptionspre_requestThis family does not support post_request or pre_response.
Audio speechPOST /v1/audio/speechpre_requestDoes not support post_request or pre_response. Output policy does not govern binary audio.
Legacy completionsPOST /v1/completionspre_requestThis family does not support post_request or pre_response. Do not infer Chat Completions and Responses parity.
ModerationPOST /v1/moderationspre_requestThis 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/responses for 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.

FieldLocationWhat it does
cache_controlRequest bodyThis field requests prompt-caching behavior when runtime policy allows it.
session_idRequest bodyThis field groups related requests onto the same session lane.
x-session-idRequest headerThis 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