Compatibility at the boundary—not a promise to clone everything.
The contract covers model discovery, chat completions with streaming and tools, the Responses API, embeddings and transcription. Existing OpenAI client libraries set a different base URL and keep Bearer authentication, JSON messages, usage fields, and the familiar error envelope.
Compatibility does not mean every provider feature is silently translated. Tools, structured output, multimodal content, streaming, caching, and model-specific parameters become available only after their semantics and metering behavior are verified across every eligible route.
That narrow contract is deliberate: it makes failover behavior observable and prevents a provider-specific extension from producing different results on a backup route.
What stays stable
Model identity
Your application calls one canonical ID. Provider-specific aliases remain a routing concern.
Request receipt
Public model, request status, usage, and final charge share one API Many request ID. Internal routing details are excluded.
Failure meaning
Definite upstream rejection may fail over; ambiguous acceptance stops for reconciliation.