O que é um API endpoint compatível com OpenAI?
Um endpoint de API compatível com OpenAI é aquele que segue os formatos exatos de requisição e resposta da API da OpenAI — o mesmo esquema /v1/chat/completions, o mesmo formato de streaming, os mesmos campos de tool-call — assim, o SDK oficial da OpenAI funciona com ele mudando apenas a base URL e a key. UberLLM é compatível com OpenAI (e compatível com Anthropic em /v1/messages), e é por isso que mudar para ele é uma alteração de uma linha.
A breve definição
Um endpoint é "compatível com OpenAI" quando aceita as mesmas requisições HTTP e retorna as mesmas formas de resposta que a API da OpenAI. Na prática, isso significa:
- o corpo da requisição
POST /v1/chat/completions(model,messages,temperature,tools,stream, …) é aceito como está; - a resposta é o mesmo objeto
choices[].message, com as mesmas contagens de tokenusage; - streaming usa os mesmos chunks
data:de server-sent-events terminando em[DONE]; - tool / function calling usa os mesmos campos
tool_calls.
Como o contrato corresponde, o SDK oficial da OpenAI — em Python, JavaScript ou qualquer linguagem — funciona com o endpoint quando você muda apenas a base URL e a API key. O código da sua aplicação não percebe a diferença.
Por que isso importa
A compatibilidade com OpenAI transformou a API de um fornecedor em um padrão de fato. Um endpoint compatível permite que você mantenha o SDK, as ferramentas e as integrações de framework que você já usa (LangChain, o Vercel AI SDK, LlamaIndex, dezenas de frameworks de agentes) enquanto muda o que está por trás deles.
Essa é toda a migração para o UberLLM:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uberllm.dev/v1", # the only line that changes
api_key="ull_your_key_here",
)
resp = client.chat.completions.create(
model="deepseek/deepseek-v4-flash",
messages=[{"role": "user", "content": "Hello!"}],
stream=True,
)
Veja a documentação do SDK da OpenAI para o conjunto completo de parâmetros suportados.
Compatível vs. um verdadeiro drop-in
"Compatível" é um espectro. Fique atento a endpoints que aceitam o formato da requisição, mas descartam streaming, ignoram tool calls ou retornam usage não-padrão. UberLLM implementa o contrato de chat-completions, incluindo streaming, tool calls e uso de token, e adicionalmente expõe um endpoint compatível com Anthropic em /v1/messages para que os SDKs da Anthropic e Claude Code funcionem inalterados também — documentação do SDK da Anthropic.
O que a UberLLM adiciona por trás do endpoint padrão
O endpoint é padrão; o roteamento por trás dele não é. Cada requisição é enviada ao vendedor saudável mais barato para o modelo que você especificou, falhas antes da saída são retentadas no próximo vendedor, e o preço que você vê (sem taxa adicional) é o preço que você paga. Navegue pelos modelos em /models e preços ao vivo em /llm-api-pricing.