SDK de Node / TypeScript
Usa @anthropic-ai/sdk o el paquete openai de npm con OneProvider cambiando baseURL. TypeScript, streaming con iteradores asíncronos y entornos edge.
@anthropic-ai/sdk es el cliente recomendado. El paquete oficial de OpenAI también funciona sobrescribiendo baseURL.
Todos los modelos, capacidades y precios Índice de la documentación para agentes de IA:https://oneprovider.dev/docs/llms.txt Sistema operativo Antes de empezar: una clave de tu panel Abre tu panel: el bot de Telegram @oneprovider_robot (Panel) o app.oneprovider.dev . Pulsa “Emitir una clave”, ponle un nombre (por ejemplo, este cliente) y un límite de gasto, y copia la clave. El saldo se recarga en el mismo lugar. Más sobre el panel y las claves . Instalación
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);
} Compatible con 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 con un iterador asíncrono
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);
}
} Entornos de ejecución edge
Funciona sin configuración adicional en Vercel Edge y Cloudflare Workers. El SDK usa el fetch nativo disponible en ambos entornos.
// 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 envíes la clave al navegador Incluso en un Worker, enruta las solicitudes por tu propio backend si hay datos de usuarios de por medio: la clave de OneProvider autoriza gasto, no solo acceso. Qué modelo elegir
Pasa el ID en model. claude-sonnet-5-5 es la opción por defecto para la mayoría del código, claude-haiku-5-5 para llamadas rápidas y de gran volumen y claude-opus-5-5 para razonamiento difícil. Con el paquete openai también puedes usar ID de GPT como gpt-6.1-terra. El SDK de Anthropic toma baseURL: "https://api.oneprovider.dev" y el SDK de OpenAI toma baseURL: "https://api.oneprovider.dev/v1". Los ID están en la página de modelos .
Errores frecuentes y soluciones
404 NotFoundError
SDK de Anthropic: baseURL: "https://api.oneprovider.dev" sin /v1. SDK de OpenAI: baseURL: "https://api.oneprovider.dev/v1" con /v1.
401 AuthenticationError
process.env.ONEPROVIDER_KEY no está definida en este proceso, por ejemplo por no cargar el .env. Registra su longitud, nunca su valor.
429 RateLimitError
“Insufficient balance” significa que hay que recargar el saldo del panel (no reintentes). Cualquier otro 429 es un límite de frecuencia: espera un poco más entre intentos y respeta Retry-After.
Fetch failed o tiempo agotado
Desactiva la VPN o la configuración de proxy; usa stream para respuestas largas, porque una solicitud sin streaming debe empezar a responder en un máximo de 6 minutos.
400 sobre max_tokens
El SDK de Anthropic exige max_tokens en cada solicitud.
Preguntas frecuentes
¿Funciona en entornos de ejecución edge?
Sí, Vercel Edge y Cloudflare Workers funcionan porque el SDK usa fetch.
¿Es seguro llamar desde el navegador?
No. La clave autoriza gasto; llama desde tu backend.
¿Puedo conservar los SDK oficiales?
Sí, solo cambian la clave y baseURL; consulta migrar desde Anthropic .
Respuestas rápidas
¿Qué base URL uso?
Claude Code y los SDK de Anthropic usan https://api.oneprovider.dev. Los SDK de OpenAI y los clientes compatibles con OpenAI usan https://api.oneprovider.dev/v1. Una misma clave funciona con ambas; la lista de modelos está en la página de modelos y las tarifas, en la página de precios .
¿Cómo me autentico?
Envía la clave sk-… tal cual en x-api-key o en Authorization: Bearer: en uno de los dos, nunca en ambos. Guarda la clave en una variable de entorno, no en un archivo que se suba al repositorio. Más sobre la autenticación .
¿Dónde obtengo una clave?
Abre tu panel en el bot de Telegram @oneprovider_robot o en app.oneprovider.dev, recarga el saldo y pulsa “Emitir una clave”. Cada clave puede tener su propio límite de gasto. Panel y claves de API .
¿Qué significan 401, 404 y 429?
401: falta la clave, está mal escrita o se envió en un encabezado equivocado; pega la clave completa, sin comillas ni espacios. 404: casi siempre es una base URL incorrecta, por ejemplo con /v1 ausente o duplicado. 429 con “Insufficient balance”: se agotó el saldo del panel o el límite de gasto de la clave, así que recarga en lugar de reintentar; cualquier otro 429 es un límite de frecuencia, así que espera según Retry-After. Detalles: códigos de error y solución de problemas .
¿Por qué se cortan o se reinician los streams?
Las VPN y los proxies VLESS suelen almacenar SSE en búfer o romper la negociación de HTTP/2. OneProvider no tiene restricciones regionales y no almacena los streams en búfer: desactiva el proxy y reintenta.
¿Dónde pregunto si esto no basta?
Escribe a @Oneproviderhelpbot en Telegram o abre “Soporte” en el panel web, con el código de estado HTTP y el mensaje de error exacto. Cómo funciona el soporte .
Última actualización: 2026-11-08 ¿Encontraste un error? @Oneproviderhelpbot