Migration guide

Migrating from OpenRouter

The base URL is a one-line change. Model names are not — the two services do not use the same naming, so budget time for a mapping pass. Everything else is a decision about whether you should migrate at all.

Should you migrate?

Probably not if OpenRouter works and the only complaint is the 5.5% credit fee. Moving to us means giving up 445 models for 477 and giving up a paid path you can plan around. The fee is real; so is what you get for it.

Consider it if you want Anthropic-format endpoints without a translation layer, if free-first routing is what you actually need, or if you are also adopting the agent layer above the gateway.

The three-line change

# Before (OpenRouter)
OPENAI_BASE_URL = "https://openrouter.ai/api/v1"
OPENAI_API_KEY  = "sk-or-..."

# After (FreeModel)
OPENAI_BASE_URL = "https://freemodel.online/v1"
OPENAI_API_KEY  = "sk-..."        # from the console

For Anthropic-format clients, the base URL is different:

ANTHROPIC_BASE_URL = "https://freemodel.online/api/gateway"
ANTHROPIC_API_KEY  = "sk-..."

The part that takes longer: model names

OpenRouter names models vendor/modelopenai/gpt-4o, anthropic/claude-sonnet-4. FreeModel does not use that scheme, and it also exposes routing aliases like auto/best-coding that have no OpenRouter equivalent. So this is a mapping pass, not a find-and-replace.

# Pull the live list before mapping anything — do not hard-code from memory
curl https://freemodel.online/v1/models

# No key required. If a model you depend on is not in the list,
# that is your answer about whether to migrate.

Two things to check while you map:

What changes in behaviour

OpenRouterFreeModel
Which model handles a requestYou name itThe router decides by task
Free model selectionExplicit :free suffixDefault, automatic
Model namingvendor/modelOwn scheme plus routing aliases
Fallback orderConfigurableOurs

The routing change is the one that surprises people. If your code depended on a specific model answering — because you tuned prompts against it, or you are benchmarking — name a model explicitly rather than relying on routing. Otherwise the same request can land on a different model tomorrow.

Migration checklist

[ ] Pull https://freemodel.online/v1/models and diff it against what you use
[ ] Confirm every model you depend on is present
[ ] Get a key from the console
[ ] Point base_url at https://freemodel.online/v1 (or /api/gateway for Anthropic format)
[ ] Strip :free suffixes
[ ] Pin model names anywhere the specific model matters
[ ] Run one request per model you actually use, not just one smoke test
[ ] Check latency — routing adds a decision step

If you decide not to migrate

That is a reasonable outcome, and worth saying plainly. OpenRouter has more models, a longer track record, and integrations everywhere. The honest summary:

Stay on OpenRouter   if you need a specific model, a paid path you can
                     budget against, or you are following someone else's
                     setup guide
Switch to FreeModel  if you want Anthropic-format endpoints directly,
                     free-first routing by default, or the agent layer
                     above it

If you are still weighing it, the two direct comparisons go deeper on each: vs OpenRouter covers the feature differences, alternatives covers what else exists if neither of us is right.

Last updated 2026-09-20. Model counts and endpoints verified on this date — pull the live model list rather than trusting any page, including this one.