OneProvider

SDK Node / TypeScript

Use o @anthropic-ai/sdk ou o pacote openai do npm com a OneProvider sobrescrevendo o baseURL. TypeScript, streaming com async iterator e runtimes de edge.

O @anthropic-ai/sdk é o cliente recomendado. O pacote oficial da OpenAI também funciona, trocando o baseURL.

Todos os modelos, recursos e preços Índice da documentação para agentes de IA: https://oneprovider.dev/docs/llms.txt Sistema operacional Antes de começar: uma chave do seu painel Abra o seu painel: o bot do Telegram @oneprovider_robot (Painel) ou app.oneprovider.dev . Toque em “Emitir chave”, dê um nome a ela (por exemplo, este cliente) e um limite de gastos, e copie a chave. É no mesmo lugar que você recarrega o saldo. Mais sobre o painel e as chaves .

Instalação

bash
npm i @anthropic-ai/sdk
# or
npm i openai
# pnpm / yarn / bun all work too:
# pnpm add @anthropic-ai/sdk
# bun add @anthropic-ai/sdk

TypeScript

ts
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ONEPROVIDER_KEY!,
baseURL: "https://api.oneprovider.dev",
});
const msg = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Say hi." }],
});
if (msg.content[0].type === "text") {
console.log(msg.content[0].text);
}

Compatível com a OpenAI

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

Streaming com async iterator

ts
const stream = client.messages.stream({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "stream me a poem" }],
});
for await (const event of stream) {
if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
process.stdout.write(event.delta.text);
}
}

Edge runtimes

Funciona no Vercel Edge e no Cloudflare Workers sem configuração extra. O SDK usa o fetch nativo, disponível nos dois runtimes.

ts
// Cloudflare Worker
export default {
async fetch(req: Request, env: Env) {
const client = new Anthropic({ apiKey: env.ONEPROVIDER_KEY, baseURL: "https://api.oneprovider.dev" });
const msg = await client.messages.create({
model: "claude-haiku-5-5",
max_tokens: 256,
messages: [{ role: "user", content: "ping" }],
});
return Response.json(msg);
},
};
Nunca envie a chave para o navegador Mesmo em um Worker, passe as requisições pelo seu próprio backend se houver dados de usuários — a chave da OneProvider autoriza gastos, não só o acesso.

Qual modelo escolher

Passe o ID em model. claude-sonnet-5-5 é o padrão para a maior parte do código, claude-haiku-5-5 para chamadas rápidas e de alto volume e claude-opus-5-5 para raciocínio difícil. Com o pacote openai você também pode usar IDs GPT, como gpt-6.1-terra. O SDK da Anthropic usa baseURL: "https://api.oneprovider.dev" e o SDK da OpenAI usa baseURL: "https://api.oneprovider.dev/v1". Os IDs estão na página de modelos .

Erros comuns e soluções

404 NotFoundError

SDK da Anthropic: baseURL: "https://api.oneprovider.dev", sem /v1. SDK da OpenAI: baseURL: "https://api.oneprovider.dev/v1", com /v1.

401 AuthenticationError

process.env.ONEPROVIDER_KEY está undefined neste processo, por exemplo por faltar o carregamento do .env. Registre no log o tamanho da chave, nunca o valor.

429 RateLimitError

“Insufficient balance” significa que é preciso recarregar o saldo do painel (não tente de novo). Qualquer outro 429 é limite de requisições: espere um pouco e respeite o Retry-After.

Fetch failed ou timeout

Desative as configurações de VPN ou proxy; use stream para respostas longas, porque uma requisição sem streaming precisa começar a responder em até 6 minutos.

400 sobre max_tokens

O SDK da Anthropic exige max_tokens em toda requisição.

Perguntas frequentes

Roda em edge runtimes?

Roda, o Vercel Edge e o Cloudflare Workers funcionam porque o SDK usa fetch.

É seguro chamar direto do navegador?

Não. A chave autoriza gastos; chame pelo seu backend.

Posso continuar com os SDKs oficiais?

Pode, só a chave e o baseURL mudam, veja migrar da Anthropic .

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