# How can I switch LLM models without changing application code?

> Keep the SDK and gateway base URL stable, and store the canonical model ID in environment or deployment configuration. You can then promote or roll back an ID without a code release—provided both models support the same route and your evaluation has verified their required behavior.

_Last reviewed 2026-08-15 · [Editorial review](https://keeprouter.com/editorial-policy#editorial-team)_

## Configuration pattern

```text
LLM_BASE_URL=https://keeprouter.com/v1
LLM_MODEL=approved-canonical-id
KEEPROUTER_KEY=sk-kr-...
```

Construct the client once from these values. Do not scatter model IDs across prompts, UI components, and retry branches. Maintain one reviewed mapping for primary, candidate, and rollback IDs.

## The precondition is route compatibility

Both IDs must be callable through the operation your code uses. Chat Completions, Responses, Messages, embeddings, and image generation are separate route contracts. Check the model page and test the exact request shape, including streaming, tools, image blocks, reasoning fields, and structured output.

## Promotion checklist

- Run the same representative workload and pass criteria.
- Compare tool and stream behavior, not just plain text.
- Set a maximum output and calculate cost from measured usage.
- Update the key allowlist before changing the configured ID.
- Stage the change, monitor failures and task outcomes, then widen exposure.
- Keep the previous ID and configuration as a tested rollback.

## What should not happen silently

Do not fall back to an unevaluated model, widen a key to the whole catalog, or accept a higher cost ceiling without a product decision. If a provider keeps a stable ID while rolling its backend revision, monitor quality after release even though your configuration did not change.

## Switching without code is still a release

Configuration changes can alter user-visible output and spend. Treat the promotion as a release with an owner, date, evidence, observability, and rollback rather than an incidental environment edit.

Use [what LLM routing means](/answers/what-is-llm-routing) to document eligibility and fallback policy, and check the [live model catalog](/models) at promotion time instead of copying model availability into configuration notes.

## Frequently asked questions

### Is changing the model ID always enough?

No. It is enough only when the new model supports the same route and passes the application's behavior tests.

### Where should rollback live?

Keep the previous approved ID and key policy in reviewed configuration, with a tested activation procedure.

### Should the gateway choose any fallback automatically?

Only use fallbacks that your application has explicitly approved and can observe.

### Can a stable model ID change behavior?

Yes. A maker may update a rolling backend behind a stable callable ID, so continued evaluation matters.

## Sources reviewed

1. [KeepRouter model catalog](https://keeprouter.com/models)
2. [KeepRouter OpenAPI](https://keeprouter.com/api/openapi.json)

## Related guides

- [Model routing](https://keeprouter.com/features/model-routing.md)
- [OpenAI-compatible API migration checklist](https://keeprouter.com/blog/openai-compatible-api-migration-checklist.md)
- [engineering teams](https://keeprouter.com/built-for/engineering-teams.md)
- [models](https://keeprouter.com/models.md)

## Verify it with the live product

Check the live model catalog, create a free-scoped key, and inspect the resulting request evidence.

[Create a free key](https://keeprouter.com/login?returnTo=%2Fconsole%2Fkeys%3Fmodel%3Dfree) · [Live models and pricing](https://keeprouter.com/models.md)
