OneProvider

Chat Completions

Use POST /v1/chat/completions no formato da OpenAI e receba respostas no estilo OpenAI dos modelos Claude. Com exemplos prontos em Python e Node.

POST /v1/chat/completions aceita o formato de requisição da OpenAI e devolve o formato de resposta da OpenAI. O ID do modelo é a única troca necessária no seu código atual da OpenAI.

Todos os modelos, recursos e preços Índice da documentação para agentes de IA: https://oneprovider.dev/docs/llms.txt

Requisição

http
POST https://api.oneprovider.dev/v1/chat/completions
Authorization: Bearer sk-...
content-type: application/json
{
"model": "claude-sonnet-5-5",
"messages": [
{ "role": "system", "content": "You are concise." },
{ "role": "user", "content": "Why is the sky blue?" }
],
"max_tokens": 256,
"stream": false
}

Resposta

O formato é idêntico ao da OpenAI, 1:1 — id, choices[].message, usage.

json
{
"id": "chatcmpl_01...",
"object": "chat.completion",
"created": 1715472000,
"model": "claude-sonnet-5-5",
"choices": [
{
"index": 0,
"message": { "role": "assistant", "content": "Rayleigh scattering..." },
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 48,
"completion_tokens": 92,
"total_tokens": 140
}
}

OpenAI SDK (Python)

python
from openai import OpenAI
client = OpenAI(
api_key="<OPENAI_API_KEY>",
base_url="https://api.oneprovider.dev/v1",
)
r = client.chat.completions.create(
model="claude-sonnet-5-5",
messages=[{"role": "user", "content": "Say hi."}],
)
print(r.choices[0].message.content)

OpenAI SDK (Node)

ts
import OpenAI from "openai";
const client = new OpenAI({
apiKey: process.env.OPENAI_API_KEY,
baseURL: "https://api.oneprovider.dev/v1",
});
const r = await client.chat.completions.create({
model: "claude-sonnet-5-5",
messages: [{ role: "user", content: "Say hi." }],
});
console.log(r.choices[0].message?.content);

Mapeamento de campos

Dados de referência
Campo da OpenAIComportamento na OneProvider
messagesRepassado; o papel system é movido para o system da Anthropic.
max_tokensRepassado.
temperature, top_pRepassado.
tools, tool_choiceTraduzido para tools / tool_choice da Anthropic — a mesma normalização de Uso de ferramentas .
streamRepassado; emite chunks SSE da OpenAI (não eventos da Anthropic).
response_formatjson_object é respeitado por meio de uma dica no prompt de sistema. O modo estrito json_schema é ignorado no momento.
logprobs, top_logprobsIgnorado: os modelos não os expõem.
seedIgnorado: sem suporte.
n > 1Retorna uma única escolha. Chame o endpoint N vezes se precisar de N amostras.
Escolha um formato de comunicação e fique com ele Tanto /v1/chat/completions quanto /v1/messages chegam aos mesmos modelos pelo mesmo preço. O Chat Completions mapeia o formato da OpenAI para o modelo; o endpoint nativo Messages pula essa etapa. Em projetos novos, recomendamos /v1/messages . Para migrar da OpenAI, o Chat Completions é o caminho rápido.

Respostas rápidas

Qual base URL devo usar?

O Claude Code e os SDKs da Anthropic usam https://api.oneprovider.dev. Os SDKs da OpenAI e os clientes compatíveis com a OpenAI usam https://api.oneprovider.dev/v1. Uma única chave funciona nos dois; a lista de modelos está na página de modelos e os preços, na página de preços .

Como me autentico?

Envie a chave sk-… pura em x-api-key ou em Authorization: Bearer: um dos dois, nunca ambos. Guarde a chave em uma variável de ambiente, não em um arquivo que vai para o commit. Mais sobre autenticação .

Onde consigo uma chave?

Abra o seu painel no bot do Telegram @oneprovider_robot ou em app.oneprovider.dev, recarregue o saldo e toque em “Emitir chave”. Cada chave pode ter o seu próprio limite de gastos. Painel e chaves de API .

O que significam 401, 404 e 429?

401: a chave está ausente, foi digitada errado ou enviada no cabeçalho errado; cole a chave inteira, sem aspas nem espaços. 404: em geral, uma base URL errada, por exemplo um /v1 ausente ou duplicado. 429 com “Insufficient balance”: o saldo do painel ou o limite de gastos da chave acabou, então recarregue em vez de tentar de novo; qualquer outro 429 é um limite de requisições, então aguarde o tempo de Retry-After. Detalhes: códigos de erro e solução de problemas .

Por que os streams são cortados ou reiniciados?

VPNs e proxies VLESS costumam armazenar SSE em buffer ou quebrar a negociação do HTTP/2. A OneProvider não tem restrições regionais e não armazena streams em buffer; desative o proxy e tente de novo.

Onde pergunto se isso não bastar?

Escreva para @Oneproviderhelpbot no Telegram ou abra “Suporte” no painel web, informando o código de status HTTP e a mensagem de erro exata. Como funciona o suporte .

Última atualização: 2026-11-08 Encontrou um erro? @Oneproviderhelpbot