Options at a glance
| Option | Model access | Who runs it | Good for |
|---|---|---|---|
| TokenReply | Curated catalog with free and paid models | Hosted | One key for OpenAI, Anthropic and Gemini formats |
| Direct provider APIs | One provider per account | Each provider | Teams that use one provider and want its newest features first |
| Self-hosted router | Your own provider keys | You | Platform teams that need full control |
| Other hosted gateways | Varies | Hosted | Specific observability, policy or enterprise needs |
TokenReply
A hosted gateway with OpenAI-compatible, Anthropic Messages and Gemini formats behind one key. It has Free models, Weekly Featured models with a daily allowance, live per-model prices on the models page and an optional Plus plan. The detailed comparison is in TokenReply vs OpenRouter.
Going direct to providers
Direct accounts make sense when you use exactly one provider and want its newest features on day one. Switching or mixing models then means separate accounts, keys and bills.
Self-hosted routers
Open-source proxies such as LiteLLM give full control with your own provider keys. You also take on deployment, upgrades, rate limits, failover and cost tracking.
What decides it
- Fees: is there a fee on top of model prices or on credit purchases?
- Free access: can you build and test before paying?
- API formats: OpenAI only, or also Anthropic and Gemini formats?
- Transparency: per-model prices and a public status page.
- Lock-in: standard APIs make leaving as easy as arriving.
Test plan before switching
| Test | What to send | Pass condition |
|---|---|---|
| Model IDs | List models and map every model your app uses | Each model has an intentional replacement |
| Streaming | One short streamed chat request | Chunks, finish reason and usage parse correctly |
| Tool calling | One deterministic tool request | Tool name and arguments arrive unchanged |
| Errors | An invalid key, an invalid model and a burst of requests | Your retry and error handling classify each case |
| Anthropic format | A Messages request, if your app uses one | It works without OpenAI-format translation |
Troubleshooting
| Symptom | What it usually means | What to do |
|---|---|---|
| 401 after changing the base URL | The old service's key is still configured. | Replace the key as well as the base URL and send a small test request. |
| Model not found | Model IDs differ between services even when the request format is the same. | Copy an exact ID from the models page. |
| The bill differs from the token price | Credit purchase fees, platform fees, caching and routing change the total. | Compare the full cost with a small real workload before moving production traffic. |
Frequently asked questions
What is the easiest alternative to switch to?
Usually an OpenAI-compatible hosted gateway: change the base URL, key and model IDs, then test streaming and errors.
Is self-hosting automatically cheaper?
Not automatically. You still pay providers and take on running, monitoring and upgrading the router.