Llamar a la Claude API desde tu código
Cambia dos cosas en tu código: la Base URL pasa a ser https://api.relayswitch.io/v1 y la API key pasa a ser una key de RelaySwitch. El SDK de Anthropic y el SDK de OpenAI funcionan sin más cambios, con 13 modelos Claude cuyos precios se leen directamente del catálogo.
01Qué cambia respecto a llamar a Anthropic directamente
Usar la Claude API directamente significa abrir una cuenta en la Console de Anthropic, cargar crédito allí y llamar con una key de allí. Aquí esa parte se sustituye: recargas saldo en RelaySwitch, usas una key de RelaySwitch y la petición va a un gateway que la reenvía al modelo. Para tu código solo cambian la Base URL y la key; el cuerpo de la petición, los id de modelo, el streaming y el tool calling siguen igual.
El cobro se calcula por token con tres precios: input, cached input y output. El precio de la tabla es el que se descuenta del saldo.
Cada respuesta lleva el id de la petición en sus headers. Con ese id puedes obtener un recibo firmado que registra el id del modelo, los tokens cobrados y el costo.
02La primera petición con curl
Comprueba con curl que la key y la dirección son correctas antes de pasarlas al SDK.
La key puede ir en el header x-api-key o en Authorization: Bearer, pero una petición solo puede llevar una key. Para streaming, pon stream en true; la respuesta llega como server-sent events.
curl -i https://api.relayswitch.io/v1/messages \ -H "Authorization: Bearer sk-relay-..." \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model": "claude-fable-5.1", "max_tokens": 16, "messages": [{"role": "user", "content": "Reply with ok"}]}'03SDK de Anthropic para Python
Al código nuevo, o al que usa funciones propias de Claude como el campo system, la estructura nativa de tool use y las marcas de prompt cache, le conviene el SDK de Anthropic a través de /messages. Basta con indicar base_url y api_key.
El SDK de Anthropic añade /v1/messages por su cuenta detrás de la Base URL. El gateway acepta el /v1 repetido, por eso todos los ejemplos usan https://api.relayswitch.io/v1.
import anthropic client = anthropic.Anthropic(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")reply = client.messages.create( model="claude-fable-5.1", max_tokens=300, messages=[{"role": "user", "content": "Reply with ok"}],)print(reply.content[0].text)print(reply.usage)04SDK de OpenAI: no hay que rehacer el código existente
Si tu aplicación ya está escrita en formato OpenAI, o el mismo código también llama a modelos de otros desarrolladores, usa /chat/completions y cambia model por un id de Claude. Los dos formatos comparten la misma key, el mismo saldo y los mismos precios.
Hay ejemplos para otros SDK y frameworks en la documentación y en las guías por herramienta, ambas en inglés. Para Claude Code, consulta la página de Claude Code.
from openai import OpenAI client = OpenAI(base_url="https://api.relayswitch.io/v1", api_key="sk-relay-...")reply = client.chat.completions.create( model="claude-fable-5.1", messages=[{"role": "user", "content": "Reply with ok"}],)print(reply.choices[0].message.content)05Precios actuales de los modelos Claude
En USD por millón de tokens, leídos del catálogo al renderizar la página. Los tokens que aciertan en el prompt cache, por ejemplo un system prompt largo, documentos que se envían una y otra vez o el historial de una conversación de varios turnos, se cobran al precio de cached input, más bajo que el de input. El recibo de cada petición separa los tokens de input, cached input y output, de modo que se pueden cotejar uno por uno.
| Modelo | Desarrollador | Input | Output | Contexto |
|---|---|---|---|---|
| Claude Fable 5.1claude-fable-5.1 | Anthropic | $6.00 | $30.00 | 1,000,000 |
| Claude Fable 5.2claude-fable-5.2 | Anthropic | $4.00 | $20.00 | 1,000,000 |
| Claude Fable 5claude-fable-5 | Anthropic | $3.00 | $15.00 | 1,000,000 |
| Claude Opus 5.5claude-opus-5-5 | Anthropic | $2.716 | $9.70 | 1,000,000 |
| Claude Sonnet 4.6claude-sonnet-4-6 | Anthropic | $1.80 | $9.00 | 1,000,000 |
| Claude Opus 4.6claude-opus-4-6 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 4.7claude-opus-4-7 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 4.8claude-opus-4-8 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Opus 5claude-opus-5 | Anthropic | $1.80 | $7.50 | 1,000,000 |
| Claude Haiku 4.5claude-haiku-4-5 | Anthropic | $0.60 | $3.00 | 200,000 |
| Claude Sonnet 5claude-sonnet-5 | Anthropic | $1.20 | $3.00 | 1,000,000 |
| Claude Sonnet 5.5claude-sonnet-5-5 | Anthropic | $1.20 | $3.00 | 1,000,000 |
| Claude Haiku 5.5claude-haiku-5-5 | Anthropic | $0.0582 | $0.1455 | 1,000,000 |
USD por millón de tokens
06Los códigos de error más frecuentes
Los estados 401 a 404 se devuelven antes de que la petición llegue al modelo, y 429, 502 y 503 no traen respuesta; ninguno se cobra. El cuerpo del error sigue la estructura de errores del formato que uses.
401 invalid_api_key | La key no se envió, es incorrecta o fue revocada. |
402 insufficient_balance | El saldo no alcanza. Cuando se agota el presupuesto o el límite de gasto de una key, el código de error es otro. |
403 scope_denied | El id del modelo no está en la lista de modelos permitidos de esa key. |
404 model_not_found | El id del modelo no existe en el catálogo; suele ser un error al escribirlo. |
429 rate_limited | Se alcanzó el rate limit de la key; el header retry-after indica cuántos segundos hay que esperar. |
| 502 / 503 | La ruta hacia el modelo tiene problemas o, de momento, ninguna ruta responde. |
07Antes de pasar a producción
Crea una key aparte para producción y ajústala a lo que necesites: presupuesto, límite de gasto diario, lista de modelos permitidos y lista de IP permitidas. Por defecto cada key está limitada a 200 peticiones por minuto, y esa cifra se puede cambiar en la propia key. Ante una petición fallida, lee el header retry-after antes de reintentar y guarda en tus logs el id de petición del mensaje de error, porque sirve para rastrear el problema.
Un mismo id de modelo lo atienden varias rutas. Si una ruta responde 5xx o 429, la petición pasa automáticamente a la siguiente al mismo precio; un modelo con una sola ruta responde 503.
Preguntas frecuentes
- ¿Uso el formato Anthropic o el formato OpenAI?
- Sirven los dos, con la misma key y la misma Base URL (https://api.relayswitch.io/v1). El SDK de Anthropic usa /messages, el SDK de OpenAI usa /chat/completions, y los id de los modelos Claude se escriben exactamente igual en ambos.
- ¿La Base URL tiene que llevar /v1?
- Sí. Indica https://api.relayswitch.io/v1 y el SDK añade /messages o /chat/completions por su cuenta.
- ¿Se admite streaming?
- Sí. Pon stream: true en la petición y la respuesta llega como server-sent events. Todos los modelos admiten streaming.
- ¿Cómo compruebo que se llama a Claude y no a otro modelo?
- Hay dos formas que no te exigen confiar en esta página. Cada modelo recibe el mismo prompt de prueba una vez al día y su respuesta se compara con los resultados anteriores; los resultados están abiertos en https://api.relayswitch.io/v1/proof. Cada petición tiene además un recibo firmado (GET https://api.relayswitch.io/v1/requests/:id/receipt) con el id del modelo, los tokens cobrados y el costo, que se puede verificar offline con la public key.
- ¿Se cobran las peticiones que fallan?
- Las peticiones que fallan antes de llegar al modelo, o a las que el modelo no responde, no se cobran. Eso incluye los estados 401 a 404 y también 429, 502 y 503.
- ¿Cómo recargo y hace falta KYC?
- Con tarjeta o USDT, USDC, BTC, ETH, SOL, desde $10. El saldo se lleva en dólares estadounidenses, no caduca y no hay suscripción. La cuenta se abre con un email, sin verificación de identidad.
Cambia una línea: base_url
Base URL https://api.relayswitch.io/v1, modelos Claude cobrados por token al precio del catálogo, con una comprobación diaria abierta al público.