For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
DashboardSign Up
  • Getting Started
    • Welcome
    • Quick Start
    • Authentication
  • Native Mode
    • Overview
    • OpenAI
    • Anthropic
    • Gemini
  • Unified Mode
    • Overview
    • Python
    • TypeScript
    • cURL
  • Platform
    • Key Management
    • Rate Limits & Budgets
    • Usage & Billing
    • Error Reference
  • API Reference
DashboardSign Up
On this page
  • How it works
  • Model naming
  • Base URL
  • Supported models
  • What’s translated
  • Limitations
  • Next steps
Unified Mode

Unified Mode

One SDK for every provider
Was this page helpful?
Edit this page
Previous

Python (Unified Mode)

Call any provider using the OpenAI Python SDK
Next
Built with

Unified mode lets you call any LLM provider using the OpenAI SDK. Gateway AI translates your request into each provider’s native format and translates the response back. You use one SDK, one API shape, and switch models by changing a string.

How it works

  1. You send an OpenAI-compatible POST /v1/chat/completions request
  2. The model field tells the gateway which provider and model to use
  3. The gateway translates the request to the provider’s native format
  4. The provider responds, and the gateway translates back to OpenAI format
  5. You get a standard OpenAI-shaped response regardless of which provider handled it

Model naming

Use the provider/model format:

openai/gpt-4o
anthropic/claude-sonnet-4-6
google/gemini-2.5-flash

For well-known models, you can omit the provider prefix:

Model prefixInferred provider
gpt-*OpenAI
o3, o3-*OpenAI
o4, o4-*OpenAI
claude-*Anthropic
gemini-*Google/Gemini

So model="claude-sonnet-4-6" works the same as model="anthropic/claude-sonnet-4-6".

For any model name that doesn’t match these prefixes, use the explicit provider/model format.

Base URL

Point the OpenAI SDK at your gateway’s /v1 endpoint:

https://api.trygateway.ai/v1

Supported models

ProviderModels
OpenAIgpt-4o, gpt-4o-mini, gpt-5.4, gpt-5.4-mini, gpt-5.4-nano, o3, o3-mini, o4-mini
Anthropicclaude-opus-4-6, claude-sonnet-4-6, claude-opus-4-5, claude-haiku-4-5
Googlegemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite, gemini-3.1-pro-preview, gemini-3-flash-preview

What’s translated

The gateway handles the translation between OpenAI’s API format and each provider’s native format:

  • Messages: role mapping, content format, system message extraction
  • Streaming: SSE event translation in real time
  • Tool calling: function definitions, tool_choice, tool results
  • Vision: image content parts (base64 and URLs)
  • Parameters: temperature, top_p, top_k, max_tokens, stop sequences
  • Response: content blocks, finish reasons, usage/token counts

Limitations

Unified mode translates the most common features. Some parameters and features are not available for all providers:

Feature / ParameterOpenAIAnthropicGemini
temperature, top_p, max_tokens, stopYesYesYes
top_k—YesYes
seedYes—Yes
frequency_penalty, presence_penaltyYes——
response_format (JSON mode / JSON schema)Yes—Yes
userYesYes (as metadata.user_id)—
Tools / function callingYesYesYes
tool_choiceFullPartial (auto, required, none, named)Partial (auto, required, none, named)
Vision (images in messages)YesYesYes
StreamingYesYesYes
Extended thinking—Native mode only—
Audio/video contentNative mode only—Native mode only

Parameters marked ”—” are silently dropped when routing to that provider. No error is returned.

For full provider feature support, use Native Mode.

Next steps

  • Python examples — chat, streaming, tool calling
  • TypeScript examples — Node.js integration
  • cURL examples — raw HTTP requests