Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create and manage routing combos with 14 strategies (priority, weighted, round-robin, Auto-combo, etc.). Configure fallback chains, test routing outcomes, and retrieve combo metrics.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 30% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 99% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 151% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 55% | 0% |
<!-- generated by src/lib/agentSkills/generator.ts; manual edits will be overwritten -->
Create and manage routing combos with 14 strategies (priority, weighted, round-robin, Auto-combo, etc.). Configure fallback chains, test routing outcomes, and retrieve combo metrics.
All requests require a valid Bearer token or session cookie. Obtain a token via POST /api/auth/login or configure REQUIRE_API_KEY=false for local development.
List routing combos
bashcurl https://localhost:20128/api/combos \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Create routing combo
bashcurl -X POST https://localhost:20128/api/combos \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Update combo
bashcurl -X PATCH https://localhost:20128/api/combos/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Delete combo
bashcurl -X DELETE https://localhost:20128/api/combos/{id} \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Get combo metrics
bashcurl https://localhost:20128/api/combos/metrics \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Test a combo configuration
bashcurl -X POST https://localhost:20128/api/combos/test \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
List fallback chains
Returns all registered fallback chains for model routing.
bashcurl https://localhost:20128/api/fallback/chains \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
Create fallback chain
Registers a fallback routing chain for a model.
bashcurl -X POST https://localhost:20128/api/fallback/chains \ -H "Authorization: Bearer $OMNIROUTE_TOKEN" -H "Content-Type: application/json" \ -d '{}'
Delete fallback chain
bashcurl -X DELETE https://localhost:20128/api/fallback/chains \ -H "Authorization: Bearer $OMNIROUTE_TOKEN"
See the full OpenAPI specification at GET /api/openapi/spec or docs/openapi.yaml for detailed request/response schemas.
<!-- skill:custom-start --> <!-- Migrated from skills/omniroute-routing/SKILL.md (preserved curated content) -->
Requires OMNIROUTE_URL and OMNIROUTE_KEY. See entry-point SKILL for setup.
A combo is a named group of providers/models with a routing strategy. All requests through a combo are automatically distributed, failed-over, and load-balanced — the caller uses a single model ID like my-combo.
bashcurl $OMNIROUTE_URL/api/combos \ -H "Authorization: Bearer $OMNIROUTE_KEY"
Response includes id, name, strategy, enabled, and per-target stats.
bashcurl -X POST $OMNIROUTE_URL/api/combos \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "my-combo", "strategy": "priority", "targets": [ { "provider": "anthropic", "model": "claude-opus-4-7", "weight": 1 }, { "provider": "openai", "model": "gpt-4o", "weight": 1 } ] }'
| Strategy | Description | | ------------------- | -------------------------------------------------- | | priority | Always use target0]; fall back on error | | weighted | Distribute by weight percentage | | round-robin | Rotate targets in order | | fill-first | Fill quota of target0] before spilling | | least-used | Route to target with fewest active requests | | cost-optimized | Pick cheapest target for the token estimate | | auto | 9-factor scoring: cost + latency + quota + circuit | | random | Uniform random selection | | strict-random | Random without repeating until all used | | p2c | Power-of-2-choices: sample 2, pick better | | reset-aware | Prefer targets near quota reset time | | lkgp | Last-known-good-provider sticky routing | | context-optimized | Pick best model for context length | | context-relay | Chain models for very long contexts |
Auto-combo scores each candidate on 9 factors every request:
bashcurl -X POST $OMNIROUTE_URL/api/combos \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "prod-auto", "strategy": "auto", "targets": [ { "provider": "anthropic", "model": "claude-sonnet-4-6" }, { "provider": "openai", "model": "gpt-4o-mini" }, { "provider": "google", "model": "gemini-2.0-flash" } ] }'
Then call it with:
bashcurl -X POST $OMNIROUTE_URL/v1/chat/completions \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "prod-auto", "messages": [{ "role": "user", "content": "Hello" }] }'
bash# Activate curl -X PUT $OMNIROUTE_URL/api/combos/{id}/toggle \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -d '{ "enabled": true }'
bashcurl $OMNIROUTE_URL/api/combos/{id}/metrics \ -H "Authorization: Bearer $OMNIROUTE_KEY"
Returns p50/p95/p99 latency, success rate, cost, and per-target breakdown.
bashcurl -X POST $OMNIROUTE_URL/api/routing/simulate \ -H "Authorization: Bearer $OMNIROUTE_KEY" \ -H "Content-Type: application/json" \ -d '{ "comboId": "{id}", "messages": [{ "role": "user", "content": "test" }] }'
Returns which provider would be selected and why — no actual API call is made.
omniroute_list_combos → list all combos
omniroute_switch_combo → enable/disable a combo
omniroute_set_routing_strategy → change strategy at runtime
omniroute_simulate_route → dry-run routing decision
omniroute_best_combo_for_task → get recommendation by task type404 combo not found → check id from /api/combos400 invalid strategy → use one of the 14 strategies above409 name conflict → combo name already exists<!-- skill:custom-end -->
Other measured skills in the registry, with their headline benchmark lift.