Blog · AI Gateway
OpenAI Compatible API
Keep the client you already know. Change the base URL and key — then call multiple models through one gateway.
Developers search for OpenAI compatible API when they want a familiar request shape — POST /v1/chat/completions, Bearer auth, streaming — without locking every feature to a single vendor SDK.
An AI Gateway that speaks that dialect lets you treat model choice as configuration, not a rewrite.
Minimal curl
curl -X POST "https://api.ai24x.com/v1/chat/completions" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d "{\"model\":\"flash\",\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}],\"stream\":false}"
Start with flash for everyday work; switch the model field when you need another capability tier. Same endpoint, same auth.
What “compatible” usually means
- Chat completions (and often streaming) with familiar JSON fields
- API key or Bearer token in the header
- Drop-in with Cursor, Continue, Open WebUI, LobeChat, n8n, and many agents — when they allow a custom base URL
Exact feature parity varies by provider. Treat compatibility as “my existing client works for the paths I use,” then verify streaming, tool calls, or vision if you depend on them.
Why pair it with a gateway
Compatibility alone is not enough in production. You still need somewhere to put multiple keys, failover, and cost visibility. That is the gateway layer: one OpenAI-compatible multi-model API, with BYOK or managed billing.
OpenAI compatible base URL and endpoints
Every OpenAI-compatible API shares the same base URL pattern. You only need to change one string to switch providers:
https://api.ai24x.com/v1 # AI24X Gateway https://api.openai.com/v1 # OpenAI https://api.deepseek.com/v1 # DeepSeek https://dashscope.aliyuncs.com/compatible-mode/v1 # Qwen (DashScope) https://api.xiaomimimo.com/v1 # MiMo
The endpoint paths are also identical across providers:
/v1/chat/completions— chat and streaming/v1/models— list available models/v1/embeddings— text embeddings/v1/audio/transcriptions— speech-to-text (where supported)
Set base_url once in your client and you never touch it again. Most agent frameworks, IDE extensions, and automation tools let you configure this in a settings page rather than code.
Python OpenAI SDK example
from openai import OpenAI
client = OpenAI(
api_key="YOUR_GATEWAY_KEY",
base_url="https://api.ai24x.com/v1",
)
resp = client.chat.completions.create(
model="flash",
messages=[{"role": "user", "content": "Summarize BYOK in one sentence."}],
)
print(resp.choices[0].message.content)
Swap model when you need a different capability tier. Your application code stays the same; only configuration changes.
OpenAI SDK compatible clients
The OpenAI SDK is the most widely supported format. If a tool or library lets you set a custom base_url, it is almost certainly OpenAI-compatible. Here is what works today:
| SDK / Framework | Compatible | Notes |
|---|---|---|
| OpenAI Python SDK | Yes | Set base_url and api_key |
| OpenAI Node.js SDK | Yes | Same pattern as Python |
| curl / HTTP clients | Yes | POST to /v1/chat/completions |
| LangChain / LlamaIndex | Yes | OpenAI Chat Model wrapper |
| Cursor / Continue / Codex | Yes | Custom endpoint in settings |
| Open WebUI / LobeChat | Yes | OpenAI-compatible provider toggle |
| n8n / Make / Zapier | Partial | HTTP nodes work; native app may need custom credential |
If your SDK is not listed, test it with a single curl call first. The chat completions format is widely adopted beyond the official OpenAI ecosystem.
Streaming and advanced features
Streaming uses the same endpoint with stream=true. Tool calling and vision depend on the upstream model — test the exact path you ship. If an agent framework lets you set a custom base URL, it is usually compatible with the chat completions path even when vendor-specific SDKs are not.
Clients that work well with a custom base URL
- Cursor, Continue, Codex-style agents, Open WebUI, LobeChat
- n8n HTTP nodes, LangChain OpenAI wrappers, many RAG stacks
- Any script using the official OpenAI SDK with
base_urloverride
For step-by-step IDE setup, see integration guides on integration guides.
OpenAI compatible providers and gateways
Many model providers now offer an OpenAI compatible API endpoint. You can switch between them by changing just the base URL and API key:
- AI24X Gateway —
https://api.ai24x.com/v1— 29+ models, one compatible endpoint - OpenAI —
https://api.openai.com/v1— GPT-5, GPT-4o - DeepSeek —
https://api.deepseek.com/v1— V4 Flash, V4 Pro - Qwen (DashScope) —
https://dashscope.aliyuncs.com/compatible-mode/v1— Qwen Max, Qwen Turbo - MiMo —
https://api.xiaomimimo.com/v1— MiMo V2.5 - Together AI —
https://api.together.xyz/v1— open-source models - Fireworks AI —
https://api.fireworks.ai/inference/v1— fast inference
An OpenAI compatible API gateway like AI24X aggregates multiple providers behind a single compatible endpoint. You get failover, cost tracking, and one billing relationship without managing seven separate API keys.
If you already use any OpenAI-compatible SDK, your code works with zero changes — just update the base_url and you are connected to a different provider or a multi-model gateway.
Self-hosted OpenAI compatible server
You can run an OpenAI-compatible server on your own infrastructure. Popular open-source options include vLLM, LocalAI, llama.cpp with its server mode, and Text Generation Inference (TGI). All expose a /v1/chat/completions endpoint that works with any OpenAI SDK client.
When you self-host, you keep full control over data and latency, but you also take on GPU cost, scaling, and maintenance. A common pattern is to use a gateway like AI24X for production traffic and fall back to a local server for development or sensitive data. The same base_url switch moves traffic between them.
For teams that need on-premise compliance, AI24X offers a BYOK (Bring Your Own Key) mode — your provider keys stay in your gateway vault, and the routing layer handles failover and caching without sending data to a third-party upstream.
Errors you will see in production
OpenAI-compatible gateways surface familiar HTTP codes. 401 means fix the gateway API key. 429 often means rate limits on an upstream path — retry with backoff or let failover pick another pool. 502/503 usually means an upstream outage; check status pages before you blame your app. Logging the model name and request id in your app makes these incidents much shorter.
Security habits
Never ship provider secrets in mobile apps or browser bundles. Issue a gateway key with spend limits, rotate it from the console, and keep BYOK provider keys in the gateway vault instead of scattered env files. If you expose a key, revoke it in one place rather than hunting through six repos.
When you are ready to compare plans, start on the pricing page and top up from Account → Billing after your first successful test call.
Next steps
- Sign up free
- Get an API key on AI Gateway
- Set
base_urlto the platform endpoint and callflash - See plans when you are ready to top up
Related: OpenAI Compatible API Gateway · What is an AI Gateway? · One API for Multiple Models · BYOK AI Gateway