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
bashnpm 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
tsimport 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
tsimport 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
tsconst 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.
// 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