[view as .md]

Routing Configs API

Routing configs define how requests are dispatched to providers. Every config has a stable @slug your app calls instead of raw model names.

List routing configs

GET /manage/v1/routing-configs

Query parameters

NameTypeDescription
project_idstringFilter to configs in one project
cursorstringPagination cursor
limitintegerMax items per page

Get a routing config

GET /manage/v1/routing-configs/{config_id}

Returns the current active version. To fetch a specific version, use the versions endpoint below.

Create a routing config

POST /manage/v1/routing-configs

Request body

{
  "project_id": "proj_01HXY...",
  "name": "production",
  "slug": "production",
  "strategy": "fallback",
  "config": {
    "attempts": [
      { "model": "claude-haiku-4-5", "timeout_ms": 2000 },
      { "model": "gpt-4o-mini", "timeout_ms": 3000 }
    ],
    "retry_on": ["429", "5xx", "timeout"]
  }
}

Valid strategies: single, fallback, cost_optimized, latency_optimized, ensemble, ab_test, cascade, custom_rules.

Update a routing config

PATCH /manage/v1/routing-configs/{config_id}

Any update creates a new version. The previous version stays queryable for rollback.

Versions

GET  /manage/v1/routing-configs/{config_id}/versions
GET  /manage/v1/routing-configs/{config_id}/versions/{version_id}
POST /manage/v1/routing-configs/{config_id}/versions/{version_id}/restore

restore promotes an old version back to the active version (creating a new version that matches).

Test a routing config

POST /manage/v1/routing-configs/{config_id}/test

Request body

{
  "messages": [{ "role": "user", "content": "Hello" }],
  "dry_run": true
}

Returns the routing decision that would be made, without actually calling the provider. With dry_run: false, runs the request end-to-end for verification.

Delete a routing config

DELETE /manage/v1/routing-configs/{config_id}

Soft-delete. The slug becomes reusable immediately for new configs.

MCP tools

ToolMaps to
list_routing_configsGET /manage/v1/routing-configs
get_routing_configGET /manage/v1/routing-configs/{id}
create_routing_configPOST /manage/v1/routing-configs
update_routing_configPATCH /manage/v1/routing-configs/{id}
delete_routing_configDELETE /manage/v1/routing-configs/{id}
list_routing_config_versionsGET /manage/v1/routing-configs/{id}/versions
get_routing_config_versionGET /manage/v1/routing-configs/{id}/versions/{version}
restore_routing_config_versionPOST /manage/v1/routing-configs/{id}/versions/{version}/restore
test_routing_configPOST /manage/v1/routing-configs/{id}/test

See also