curl https://routing.dari.dev/v1/responses \
-H "Authorization: Bearer $DARI_ROUTING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dari/routing",
"input": "Hello from Dari"
}'
Router APIs
Responses API
Send a routed OpenAI Responses request
POST
/
v1
/
responses
curl https://routing.dari.dev/v1/responses \
-H "Authorization: Bearer $DARI_ROUTING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dari/routing",
"input": "Hello from Dari"
}'
string
required
Bearer plus a Routing API key.string
required
Must be
dari/routing.string | array
required
Text or Responses input items.
string
System or developer instructions.
boolean
Stream Responses events.
array
Function, custom, or namespace tools.
string
Require the selected model to use exactly
none, minimal, low, medium, high, xhigh, or max. Models that do not support that level are ineligible. Responses uses none where Chat Completions uses off.object
On GPT-6 Responses models, change reasoning effort without changing the request-level
reasoning.effort. The request-level effort is required when using configuration updates and must stay unchanged across turns. Use { "type": "configuration_update", "reasoning": { "effort": "high" } } before the next user message. The latest update controls routing and provider execution. Preserve earlier updates when resending full input history.number
Maximum output tokens.
curl https://routing.dari.dev/v1/responses \
-H "Authorization: Bearer $DARI_ROUTING_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dari/routing",
"input": "Hello from Dari"
}'
dari_routing adds selected_model, reasoning_effort, reason, and conversation_id.
The /v1 endpoint uses your organization’s default router. To address a specific router instead, send the same request to https://routing.dari.dev/{router_id}/v1/responses.
This endpoint uses HTTP, not WebSockets. previous_response_id is unsupported; resend the full input history.