Loading
Skip to content
RedRouterRedRouter
Dashboard ↗

Compatibility matrix

Choose the API shape your client already speaks, then check the features it uses. RedRouter translates three generation interfaces into the selected model's capabilities. A compatible request shape does not imply support for every feature of the original service.

Choose an endpoint

InterfaceEndpointBest fitOutput limit field
Chat CompletionsPOST /v1/chat/completionsMessage-list applications and function toolsmax_tokens or max_completion_tokens
ResponsesPOST /v1/responsesResponses clients, function and freeform toolsmax_output_tokens
MessagesPOST /v1/messagesMessages clients and block-based tool historiesRequired max_tokens
Token countingPOST /v1/messages/count_tokensConservative preflight input estimatesNo output generation

Use https://redrouter.org/v1 as an OpenAI-compatible SDK base URL and https://redrouter.org as a Messages SDK base URL. The latter client adds /v1/messages. Generation requires an API key and non-trial funding. See Authentication and Quickstart.

All generation endpoints are stateless. Send complete relevant history on every turn. Model IDs, prices, defaults, and capabilities come from the catalog. Current output limits are at most 8,192 tokens per request; larger requested limits are capped. Requests have a 12000000-byte body limit, including JSON and base64 media.

Supported behavior

CapabilityChat CompletionsResponsesMessages
Text generation and streamingYesYesYes
Client-executed toolsFunction toolsFunction, custom, and one-level namespacestool_use / tool_result
Tool-choice controlsCapability-dependentCapability-dependentCapability-dependent
JSON schema outputRequires response-format supportRequires response-format supportSchema mode when supported; instruction-only fallback otherwise
Image inputUser and tool image partsUser images and tool-result imagesUser images and tool-result images
Server-managed conversation stateNoNoNo
Hosted search, browser, shell, or code executionNoNoNo

Images require an image-capable model and valid base64 PNG, JPEG, or WebP data. Other images become explicit omission notices rather than causing a content rejection. Documents do not become readable by choosing an image model. See Images, Structured output, and Tool calling.

Accepted without the requested feature

These controls keep common clients working but do not activate the original service's behavior:

Field or featureRedRouter behavior
Reasoning effort, thinking budgetsAccepted in the endpoint's supported shape and ignored. No configurable reasoning budget.
Cache hints and Responses prompt_cache_keyIgnored. Cache availability and reported hits determine pricing.
Responses storeBoolean accepted; output always reports store: false. No retrievable response resource.
Responses truncationAccepted values are auto and disabled; no server truncation occurs.
Responses service_tier, metadata, include, text verbosityAccepted in supported shapes and ignored.
Messages metadata, supported context-management no-opAccepted and ignored; your client must manage history.
Function strictAccepted on Chat and Responses as a hint; validate arguments yourself.
Responses custom-tool grammarAccepted as a hint; not enforced.

These are deliberate, narrow compatibility allowances. A field can still return 400 when its shape or value is invalid. See Reasoning and Prompt caching for details.

Messages drops declared server web tools and tells the model those tools are unavailable. Supplied deferred client-tool definitions load immediately; tool discovery does not run. Responses ignores only the exact declaration {"type":"web_search","external_web_access":false} used by some clients; it performs no search.

Rejected or unavailable

Unknown request parameters return 400. Check the individual endpoint guide before forwarding a full request object from another service.

Responses rejects previous_response_id and conversation, including null values. Files and hosted tool input types are rejected. Response retrieval and deletion routes are unavailable. Messages rejects safeguards because server-side tool safety classification is unavailable; configure manual permissions in the client. Other context-editing operations are rejected.

There are no embeddings, audio, image-generation, fine-tuning, file-upload, batch-processing, or managed-agent APIs in this contract. For bulk work, build a bounded client queue using Dataset generation. For existing applications, follow Migration and Integrations.

A customer-configurable policy gateway, organization/project administration API, administrative MCP server, and SSO are also outside this documented platform surface. Apply your application's own permissions and budgets; API keys do not add those organization-management features.

Verify a client integration

Start with a minimal text request and an explicit output limit. Add tools, then streaming, then any structured or image inputs separately. Inspect the actual outbound body when a client sends an unsupported field. Confirm terminal status and reported usage before measuring success or cost. Avoid logging keys or sensitive prompts while debugging.

SDK syntax is maintained by its publisher; RedRouter's supported behavior is defined by these guides and schemas. The official Python SDK and official Node.js SDK describe custom-client and streaming interfaces. Pin a working SDK version in your application and rerun your own integration checks when upgrading. See Troubleshooting.

↑ ↓ to select · Enter to open · Esc to close