1. Inventory the integration boundary
Record every place the current gateway appears:- base URLs and API key environment variables
- SDK initialization and custom headers
- model IDs and fallback models
- provider ordering, allowlists, and privacy requirements
- streaming, tool-calling, and structured-output code
- batch jobs, files, webhooks, and async status polling
- request attribution and user or session metadata
2. Classify each capability
For each production behavior, assign one status:
Use the Migration Feature Checklist to cover core requests, routing, attribution, async work, and operations.
3. Validate representative traffic
Build a small test set from real workload patterns without copying sensitive production data. Test:- One normal request for every endpoint in use.
- Streaming through the same client path used in production.
- Tool calls and structured outputs with realistic schemas.
- Every provider or privacy constraint.
- Invalid keys, invalid models, rate limits, and unavailable-provider failures.
- Batch or async jobs through terminal success, failure, and cancellation states.