One endpoint,
every model.
Tare is an OpenAI-compatible gateway in front of every model you use — ours and the ones you bring yourself. One base URL, one key, and every token accounted for.
Routing
Routing decides which channel answers a given model name.
Console → Routing.
Overriding a platform default
Give a route the same model name as a platform default and yours takes over, with the platform route behind it as a fallback: a bad day on your provider does not take the model down.
Priority and weight
- Priority is primary versus backup; lower goes first.
- Weight splits traffic within one priority. 9 and 1 sends nine calls in ten to the first.
- To park a route without deleting it, switch it off. The minimum weight is 1, so 0 does not mean disabled.
Failover is automatic: a channel that fails repeatedly is parked (traffic stops being sent to it and moves your traffic) and returns on its own once a probe succeeds. Model Health shows what is parked.
Catch-all
A route whose model name is * catches every model you have not configured by name, instead of
returning "no route is configured".
Whether you fill in Upstream name changes what it does:
| Upstream name | Behaviour |
|---|---|
| empty | The requested model name is passed through unchanged — use this when the channel is an aggregator that already knows hundreds of models |
| filled in | Every unconfigured model is answered by that one model instead |
Upstream name is a dropdown of the models configured on the channel you picked (the ones with a cost price — see Cost prices), because a typo there does not fail: the route is created, and the mismatch only shows up as calls the upstream rejects. Choose Something else… to type a name that is not on the list — private deployments and aliases are legitimate and stay possible.
[!WARNING] A catch-all applies only when a model has no route of its own. If a model is configured and all its channels are down you get a failure, not a quiet swap; otherwise you would receive another model's answers under the name you asked for, with nothing saying so.
Changes to a catch-all take up to a minute to take effect.
Multimodal
A route can declare which input types its channel accepts, and a request carrying images is only sent to routes that accept images. Routes that declare nothing are never excluded: an undeclared route is treated as "unknown, do not rule it out", because the alternative would have every image request lose all its candidates the day the field was added.