PhaseoPhaseo
PhaseoPhaseo
Checking statusChecking statusVisit status page
Component-level status is unavailable.

Explore

  • Models
  • Chat
  • Providers
  • Apps
  • Rankings
  • Tools
  • Monitor

Resources

  • Compare
  • Migration Guides
  • Methodology
  • Blog

Community

  • Discord
  • GitHub
  • LinkedIn
  • Reddit
  • X

Build

  • Documentation
  • API Reference
  • Quickstart
  • SDKs

Company

  • About
  • Trust Centre
  • Mission
  • Pricing
  • Works With
  • Acknowledgements
  • Support
  • Privacy
  • Terms

Explore

  • Models
  • Chat
  • Providers
  • Apps
  • Rankings
  • Tools
  • Monitor

Build

  • Documentation
  • API Reference
  • Quickstart
  • SDKs

Resources

  • Compare
  • Migration Guides
  • Methodology
  • Blog

Company

  • About
  • Trust Centre
  • Mission
  • Pricing
  • Works With
  • Acknowledgements
  • Support
  • Privacy
  • Terms

Community

  • Discord
  • GitHub
  • LinkedIn
  • Reddit
  • X

© 2025 • Phaseo

Report:Issue·Support

Spotted a data issue or broken page?Open an issueorcontact support

PhaseoPhaseo
ModelsChatCompareProvidersAppsRankings
ModelsChatCompareProvidersAppsRankings
Back to all migration guides
LLM Gateway10 min readUpdated 2026-04-09

Migrating from LLM Gateway to Phaseo Gateway

Migrate from LLMGateway to Phaseo Gateway using an OpenAI-compatible flow with endpoint and key migration, model checks, and staged rollout validation.

Try Phaseo

Prerequisites

  • Your existing LLM Gateway endpoint and API key configuration.
  • `PHASEO_API_KEY` added to dev, staging, and production.
  • A baseline sample of output quality, latency, and error rate.

1) Inventory integration points

Identify the exact files that create and configure your LLM Gateway client.

Map current model IDs, retries, and timeout behavior so you can keep parity after cutover.

Checklist

  • Locate all `LLM_GATEWAY_*` env var usage.
  • Find all base URL references in runtime config.
  • Capture currently active model IDs and fallback chains.

2) Switch endpoint and credentials

Keep payloads unchanged first. Start with a pure endpoint and key migration to reduce risk.

Rename keys to `PHASEO_API_KEY` across local and deployed environments.

Before (LLMGateway Style Config)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.LLM_GATEWAY_API_KEY,
  baseURL: "https://api.llmgateway.io/v1",
});
After (Phaseo Gateway)
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: process.env.PHASEO_API_KEY,
  baseURL: "https://api.phaseo.app/v1",
});

3) Validate model compatibility

Query the Phaseo model catalog and verify each model used in production.

If aliases differ, implement a single mapping function at the gateway boundary. LLM Gateway examples often use unprefixed IDs like `gpt-4o`, while Phaseo uses provider-prefixed IDs.

Model List Check
curl -s "https://api.phaseo.app/v1/models" \
  -H "Authorization: Bearer $PHASEO_API_KEY" | jq '.data | length'

4) Validate and roll out

Run your golden prompt suite and compare quality, latency, and cost metrics to baseline.

Release behind a canary flag and move from low percentage traffic to full traffic once stable.

Checklist

  • Pass non-streaming and streaming tests.
  • Verify error handling for invalid key/model scenarios.
  • Observe production metrics for one release cycle before removing old config.

Validation steps

  1. curl -s "https://api.phaseo.app/v1/health"
  2. curl -s "https://api.phaseo.app/v1/models" -H "Authorization: Bearer $PHASEO_API_KEY"
  3. Run one non-streaming and one streaming request in staging.
  4. Replay your golden prompts and compare to baseline.

Frequently asked questions

Can we keep our current OpenAI client code?
Yes. Most teams keep client code and only swap environment variables plus base URL.
Do model IDs need to change when migrating from LLM Gateway?
Usually yes. If you currently use unprefixed IDs (for example `gpt-4o`), map them to Phaseo provider-prefixed IDs (for example `openai/gpt-4.1-mini`).
Should we remove old LLMGateway env vars immediately?
Keep them during canary rollout, then remove after stable cutover to avoid configuration drift.

Need a custom migration diff?

Use the interactive assistant for before/after snippets tailored to your current SDK and language.

Open Migration Assistant
Sign Up