OneProvider

Migrar desde Anthropic

Apunta el SDK de Anthropic a OneProvider con una sola variable de entorno. Ejemplos en Python y Node, cambio de ID de modelo y una prueba rápida.

Si tu código ya llama a api.anthropic.com, toda la migración es una variable de entorno. Las solicitudes y respuestas actuales son idénticas byte a byte.

Todos los modelos, capacidades y precios Índice de la documentación para agentes de IA: https://oneprovider.dev/docs/llms.txt 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 .

Qué cambia (y qué no)

Nada del esquema de la solicitud, de la forma de la respuesta, de los eventos de streaming ni del SDK que ya usas necesita cambiar. La única diferencia es adónde van los bytes:

Datos de referencia
AspectoAnthropicOneProvider
Base URLhttps://api.anthropic.comhttps://api.oneprovider.dev
Encabezado de autenticaciónx-api-keyx-api-key o Authorization: Bearer
Encabezado de versiónanthropic-version: 2023-06-01anthropic-version: 2023-06-01
Esquema de la solicitudAnthropic Messages APIIdéntico
Esquema de la respuestaAnthropic Messages APIIdéntico
Eventos de streamingSSE: message_start, content_block_delta...Idéntico, sin búfer
Prompt caching (cache_control)NativoNativo: paso directo
ModelosAlias antiguos con fechaLista permitida de Claude generada; consulta Modelos
FacturaciónTarjeta, pospago, mensualRecarga con cripto, prepago, sin caducidad

Migración solo con variables de entorno

Si tu código lee las credenciales de variables de entorno (como debería), este es todo el cambio:

bash
# Before
export ANTHROPIC_API_KEY=sk-ant-...
# After
export ANTHROPIC_API_KEY=sk-... # OneProvider key
export ANTHROPIC_BASE_URL=https://api.oneprovider.dev

Tanto el SDK oficial de Anthropic para Python como el de Node leen ANTHROPIC_BASE_URL sin necesidad de ningún otro cambio de código.

Python: forma explícita

python
# Before
from anthropic import Anthropic
client = Anthropic()
# After
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["ANTHROPIC_API_KEY"],
base_url="https://api.oneprovider.dev",
)

Node: forma explícita

ts
// Before
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic();
// After
import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
baseURL: "https://api.oneprovider.dev",
});

Cambio del ID del modelo

La superficie nativa de Anthropic sirve los ID actuales de Claude que aparecen en la página de Modelos. Si tu código usa un alias antiguo de Anthropic (claude-3-5-sonnet, claude-3-opus-20240229, etc.) recibirás un 400 invalid_request_error: reemplázalo por el ID canónico actual:

Datos de referencia
Alias antiguoUsar en su lugar
claude-3-5-sonnet*, claude-3-7-sonnet*, claude-sonnet-3-5claude-sonnet-5-5
claude-3-opus*, claude-opus-3claude-opus-5-5
claude-3-haiku*, claude-3-5-haiku*, claude-haiku-3-5claude-haiku-5-5

Verifica el cambio

bash
# Should print the current Claude model ids
curl -s https://api.oneprovider.dev/v1/models \
-H "x-api-key: $ANTHROPIC_API_KEY" | jq '.data[].id'
# Should return HTTP 200 and a short text message
curl -s https://api.oneprovider.dev/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-haiku-5-5","max_tokens":32,"messages":[{"role":"user","content":"hi"}]}'
Ejecuta ambos en paralelo primero Para migraciones con mucha cautela: conserva tu cliente de Anthropic durante un despliegue. Envía el 1 % del tráfico por OneProvider, compara las respuestas con prompts idénticos y luego sube la proporción a lo largo de unos días. Al ser la forma idéntica, resulta trivial.

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