Routing
client.routing controls how the gateway selects a provider for each request. See
Routing concepts for a full explanation of strategies.
Get the current config
config = client.routing.get_config()
print(config["strategy"])
Update routing config
client.routing.update_config({
"strategy": "balanced", # "balanced" | "cheapest" | "fastest" | "highest_quality" | "manual"
"policy": {"fallback_behavior": "allow_commercial"},
})
See Fallback for what fallback_behavior actually
controls. It decides what happens when no provider passes your policy constraints, not
whether the gateway retries on a provider error.
Model aliases
# Create or update an alias
client.routing.set_alias("smart", "gpt-4o")
client.routing.set_alias("fast", "gpt-4o-mini")
client.routing.set_alias("coding", "claude-sonnet-4-6")
# List all aliases
aliases = client.routing.list_aliases()
# Delete an alias
client.routing.delete_alias("coding")
Using the alias in a chat call:
client.chat.complete(
model="smart", # resolves to gpt-4o at gateway level
messages=[{"role": "user", "content": "Review this code."}],
)
Routing history
result = client.routing.list_history(limit=20, provider="openai", strategy="balanced")
decision = client.routing.get_decision(result["decisions"][0]["id"])
print(decision["selectedProvider"], decision["candidates"])