DOSRouter
Classify request signals and select an eligible route. Use automatic routing or select a model explicitly when you need a specific capability.
Build with leading models through a common API. Choose your model, route eligible requests with DOSRouter, and keep usage and access controls in one place.
< 15ms
Gateway Overhead
99.99%
Uptime target
100+
Flagship Models
0% Markup
Direct List Pricing
Summarize this support ticket.
15 Signals
Capabilities
Start with a common API, then add the routing, request policies, and usage visibility your application needs.
Classify request signals and select an eligible route. Use automatic routing or select a model explicitly when you need a specific capability.
Reuse eligible work instead of processing the same context or request from scratch.
Prefix Caching: Prompt caching reuses shared context on supported providers. Eligibility, retention, and cache rates vary by model.
Exact Match: Response caching reuses a stored response for an eligible matching request. Other requests continue to the model.
Reduce repeated context through deduplication, whitespace trimming, and JSON compaction on supported requests.
Apply deterministic checks for sensitive data and secrets in supported inference requests. Configured policies can flag, mask, or block matching input.
Manage API keys, control access to your resources, and review organization activity.
Review requests, input and output tokens, costs, and model performance from your dashboard.
Keep everyday requests on DOS. Use eligible paid routes for complex work, with visibility into the model serving each request.
Your application sends a standard OpenAI-compatible request with model set to auto.
DOS classifies the request as Simple, Medium, or Complex.
Simple and Medium use DOS.AI. Complex can use an eligible route from the live catalog.
The gateway sends the request through the route resolved from the tier and current catalog configuration.
99.99% Auto-Failover
Response headers identify the requested and provider model so your application can inspect the route.
X-Provider-Model
Simple tasks, quick answers.
Everyday tasks, balanced capability.
Complex problems, deeper reasoning.
from openai import OpenAI
client = OpenAI(
base_url="https://api.dos.ai/v1",
api_key=os.environ["DOS_API_KEY"],
)
# Simply specify model="auto": DOSRouter handles
# complexity classification & multi-provider routing
response = client.chat.completions.create(
model="auto",
messages=[
{"role": "user", "content": "Analyze system architecture..."}
],
)Zero client routing logic. DOSRouter evaluates prompt complexity in milliseconds and selects the optimal path.
x-provider-model: anthropic/claude-3-7-sonnet
x-dos-route-tier: tier-2-reasoning
x-dos-routing-latency: 3.2ms
x-dos-failover-attempts: 0
x-dos-retail-markup: $0.00 (0% Zero Markup)
x-ratelimit-remaining-tokens: 984020Project-scoped BYOK provider credentials are never bypassed when routing paid catalog models.
Upstream rate-limits (429) or timeouts trigger sub-second fallback without dropping the user stream.
Paid catalog routes are billed at exactly 100% of the provider list price. Zero added markup.
Agent and team spending ceilings are strictly enforced before routing external paid requests.
Quickstart
Use the OpenAI-compatible API or the supported Anthropic Messages endpoint. Check the selected model for streaming, vision, and tool support.
base_url to https://api.dos.ai/v1. All existing SDK prompts, tools, and streaming code continue to work without changes.Create a key in the console and keep it in your server environment.
Point your compatible client at https://api.dos.ai/v1.
Use a model ID from the catalog. Review usage and cost in the console.
from openai import OpenAI
import os
# 1-line change: Just set base_url to DOS AI Gateway!
client = OpenAI(
base_url="https://api.dos.ai/v1",
api_key=os.environ["DOS_API_KEY"],
)
response = client.chat.completions.create(
model="dos", # or "deepseek-v3", "claude-3-7-sonnet", "gpt-4o"
messages=[{"role": "user", "content": "Hello from DOS AI Gateway!"}],
stream=True,
)
for chunk in response:
print(chunk.choices[0].delta.content or "", end="", flush=True)OpenAI & Anthropic Messages API · Explore Integrations ↗
Models & pricing
Browse currently listed models and inspect capabilities before integrating. Model membership and pricing come from the same catalog used by the platform.
Retail prices mirror each provider's official list - what you see is exactly what the upstream charges.
FAQ
Start with an API key, or explore DOSClaw if you want a hosted agent with knowledge and integrations.