Boundless routes requests to the best available provider for each model.
Default Routing
For each model, Boundless maintains multiple upstream providers. Default selection optimizes for:
- Availability — skip down providers
- Latency — prefer faster routes
- Cost — among healthy providers, prefer lower cost
Automatic Failover
If a provider returns an error (5xx, timeout, rate limit), Boundless automatically retries the next provider transparently.
Your application sees a single response. Failover adds minimal latency (typically <100ms per retry).
Failover Triggers
| Condition | Action |
|---|---|
| Provider 5xx | Retry next provider |
| Timeout (>120s) | Retry next provider |
| Provider 429 | Retry next provider |
| Provider 400 | No failover — client error |
Provider Preferences
Sort by Price
Prefer lowest-cost healthy provider:
{
"model": "gpt-5.5",
"provider": {
"sort": "price"
},
"messages": [...]
}
Sort by Throughput
Prefer fastest provider:
{
"model": "gpt-5.5",
"provider": {
"sort": "throughput"
},
"messages": [...]
}
Require Specific Provider
{
"model": "gpt-5.5",
"provider": {
"require": ["openai"]
},
"messages": [...]
}
No failover if specified provider is down — request fails.
Privacy-Aware Routing
When strict privacy is enabled (default), requests route only to providers with confirmed no-training policies.
If no provider matches your privacy level, request fails with 403 rather than routing to a logging provider.
See Data Policy.
Model Fallbacks
Route to backup model if primary fails:
{
"models": ["gpt-5.5", "claude-sonnet-4-6", "claude-sonnet-4-6"],
"messages": [...]
}
Tries each model in order until success.
Monitoring
Dashboard → Activity shows which provider handled each request (when router metadata enabled).
Status page shows per-provider health.