Velokey
Tutoriales

Cómo usar la API de Claude Fable 5 (con Python)

Una guía práctica de la API de Claude Fable 5 — primera llamada, los 5 params que devuelven 400 si programas como con un modelo anterior, manejo de refusals y cuánto cuesta.

Cómo usar la API de Claude Fable 5 (con Python)

TL;DR

  • Llama a Claude Fable 5 a través de la Messages API de Anthropic con el model ID claude-fable-5 — instala el SDK anthropic, configura ANTHROPIC_API_KEY y envía una solicitud messages.create
  • El detalle: el código escrito para modelos Claude (o GPT) anteriores falla en Fable 5. temperature, top_p, top_k, budget_tokens, thinking: {type:"disabled"} y los prefills de assistant devuelven un 400
  • Thinking siempre está activado — controla la profundidad con output_config.effort (lowmax), no con un presupuesto de tokens. Maneja el stop reason refusal y activa los fallbacks
  • Fable 5 requiere retención de datos de 30 días (las orgs ZDR reciben un 400 en cada solicitud) y cuesta $10 / $50 por 1M de tokens de input/output — unas 2× Opus 4.8
  • ¿Quieres saltarte la cuenta de Anthropic, el tier y la configuración de retención? Llama a claude-fable-5 a través del endpoint compatible con OpenAI de Velokey con una sola key — mismo precio $10/$50, sin las trampas de parámetros de abajo

La mayoría de las guías de "cómo llamar a la API" te muestran un hello-world de tres líneas y se detienen. Eso está bien hasta que Fable 5 devuelve un 400 en la primera solicitud real porque pasaste temperature por costumbre, o tu código lee response.content[0] y se rompe ante un refusal. Fable 5 es el modelo más capaz de Anthropic, pero tiene una superficie de solicitud más estricta que cualquier cosa anterior. Aquí está la llamada que funciona y, después, las cinco cosas que realmente romperán tu integración.

How to use the Claude Fable 5 API
Claude Fable 5 API: la primera llamada, los params que devuelven 400 y el manejo de refusals

¿Qué necesitas para llamar a la API de Claude Fable 5?

Necesitas una cuenta de pago de Anthropic, el SDK anthropic y — esto es lo que pilla a la gente — una configuración de retención de datos de la organización de al menos 30 días. Fable 5 no está disponible bajo zero data retention (ZDR); una org ZDR recibe un 400 invalid_request_error en cada solicitud a Fable 5 sin importar lo limpio que sea el payload.

El model ID es claude-fable-5. Tiene una ventana de contexto de 1M de tokens (el valor por defecto y el máximo) y hasta 128K tokens de output. Instala y autentica:

pip install anthropic
export ANTHROPIC_API_KEY="sk-ant-..."   # never hardcode

Antes de tu primera llamada, confirma:

RequirementWhy it matters
Paid account, sufficient tierFable 5 is above Opus-tier; check model access
Data retention ≥ 30 daysZDR orgs 400 on every request
anthropic SDK installedUse the official SDK, not an OpenAI-compatible shim
Model ID claude-fable-5Exact string — no date suffix

¿Cómo haces tu primera llamada a la API de Claude Fable 5?

Llamas a client.messages.create() con model="claude-fable-5" y una lista messages. No pases un parámetro thinking — thinking siempre está activado — y controla la profundidad del razonamiento con output_config.effort en su lugar.

import anthropic

client = anthropic.Anthropic()  # reads ANTHROPIC_API_KEY from the environment

response = client.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    output_config={"effort": "high"},   # low | medium | high | xhigh | max
    messages=[
        {"role": "user", "content": "Explain the tradeoffs of event sourcing in two paragraphs."}
    ],
)

# Always check stop_reason before reading content (see refusals below)
if response.stop_reason != "refusal":
    for block in response.content:
        if block.type == "text":
            print(block.text)

Ese es todo el hello-world. effort es el principal dial de calidad/latencia — high es un buen valor por defecto, xhigh es el punto dulce para coding y trabajo agentic, y low/medium sirven para tareas rutinarias y a menudo superan los ajustes máximos de modelos anteriores. La cadena de pensamiento en bruto nunca se devuelve; si quieres un resumen de razonamiento legible, pasa thinking={"type": "adaptive", "display": "summarized"}.

¿Cómo llamas a Claude Fable 5 a través de Velokey (sin cuenta de Anthropic)?

Si prefieres saltarte la cuenta de Anthropic, el usage tier y el requisito de retención de 30 días, llama a Fable 5 a través del endpoint compatible con OpenAI de [Velokey](/model/claude-fable-5). Apunta cualquier cliente OpenAI a la base URL de Velokey, usa tu key de Velokey y configura el modelo como claude-fable-5 — es un chat completion estándar, así que las trampas de parámetros de la siguiente sección no aplican.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.velokey.ai/v1",
    api_key="sk-velokey-...",   # your Velokey key — not an Anthropic key
)

response = client.chat.completions.create(
    model="claude-fable-5",
    messages=[{"role": "user", "content": "Explain the tradeoffs of event sourcing in two paragraphs."}],
)
print(response.choices[0].message.content)

Mismo precio de $10 / $50 por 1M que al llamar a Anthropic directamente, facturado desde créditos de Velokey, con una sola key para todos los modelos que uses — y sin la configuración específica de Anthropic. Es el camino más rápido a una llamada funcional a Fable 5. El resto de esta guía cubre la ruta directa a Anthropic y las peculiaridades de solicitud que conlleva, que el endpoint compatible con OpenAI suaviza.

¿Qué se rompe cuando llamas a Claude Fable 5 como a un modelo anterior?

Al llamar a Anthropic directamente, cinco parámetros de solicitud que funcionaban en modelos Claude o GPT anteriores ahora devuelven un 400 en Fable 5. Esta es la parte que convierte un "cambio rápido" en una tarde de debugging (y la fricción que la ruta de Velokey de arriba se salta).

Parámetros que devuelven 400 en Fable 5:

What you're used toOn Fable 5Fix
temperature, top_p, top_k400Remove them — steer with the prompt instead
thinking: {type:"enabled", budget_tokens: N}400Omit it; use output_config.effort
thinking: {type:"disabled"}400Omit the thinking param entirely
Assistant-turn prefill (last message role:"assistant")400Use output_config.format (structured outputs)
Any request from a ZDR org400Enable ≥30-day data retention

*Source: Anthropic Claude Fable 5 API documentation, 2026.*

El modelo mental: Fable 5 eliminó a propósito los knobs de sampling y el presupuesto fijo de thinking. No hay temperature=0 para determinismo ni techo de budget_tokens — das forma al comportamiento a través del prompt y limitas la profundidad con effort. Si estás migrando una integración funcional de Opus o GPT, elimina primero esos parámetros, antes de tocar cualquier otra cosa.

¿Cómo manejas los refusals de Claude Fable 5?

Fable 5 ejecuta clasificadores de seguridad que pueden rechazar una solicitud — y un rechazo no es un error HTTP. Devuelve un 200 exitoso con stop_reason: "refusal" y un array content vacío (o parcial, a mitad de stream). El código que lee response.content[0].text de forma incondicional se romperá con ello.

Dos cosas que hacer. Primero, siempre ramifica según stop_reason antes de leer el content. Segundo, activa los fallbacks para que un rechazo de falso positivo no falle simplemente — el trabajo legítimo en herramientas de seguridad o ciencias de la vida puede activar el clasificador, así que esto importa incluso para apps legítimas:

response = client.beta.messages.create(
    model="claude-fable-5",
    max_tokens=16000,
    betas=["server-side-fallback-2026-06-01"],
    fallbacks=[{"model": "claude-opus-4-8"}],   # re-served in the same call on a decline
    output_config={"effort": "high"},
    messages=[{"role": "user", "content": "..."}],
)

if response.stop_reason == "refusal":
    # The whole chain (Fable 5 + fallback) declined — surface it, don't retry as-is
    handle_refusal(response)
else:
    print(next(b.text for b in response.content if b.type == "text"))

Con el parámetro fallbacks del lado del servidor, una solicitud rechazada se re-ejecuta de forma transparente en claude-opus-4-8 dentro de la misma llamada, y la facturación se acredita para que no te cobren dos veces. Un rechazo antes de cualquier output no se factura en absoluto. Actívalo por defecto en el código nuevo de Fable 5 — es opt-in, así que sin él un refusal simplemente se detiene.

¿Cuánto cuesta la API de Claude Fable 5?

Fable 5 cuesta $10 por 1M de tokens de input y $50 por 1M de tokens de output — aproximadamente 2× Claude Opus 4.8 ($5 / $25). Está precificado para el razonamiento más difícil y el trabajo agentic de largo horizonte, no para llamadas cotidianas de alto volumen.

Cuánto cuesta una sola solicitud:

Model10K in + 2K outRelative
claude-fable-5$0.20
claude-opus-4-8$0.10

*Per-token math on published rates. Fable 5: 10K×$10/1M + 2K×$50/1M = $0.20.*

Claude Fable 5 API pricing vs Opus 4.8
Claude Fable 5 cuesta $10/$50 por 1M de tokens — aproximadamente el doble que Opus 4.8

Dos palancas mantienen la factura bajo control. Baja effort a medium o low en el trabajo rutinario — Fable 5 con low effort a menudo iguala a modelos anteriores en su techo. Y usa [prompt caching](/blog/claude-api-pricing-2026) para contexto repetido; las lecturas en caché se facturan a aproximadamente una décima parte de la tarifa de input. Una nota operativa más: las solicitudes individuales en tareas difíciles pueden durar varios minutos, así que haz stream de cualquier cosa con un max_tokens grande para evitar timeouts del cliente:

with client.messages.stream(
    model="claude-fable-5",
    max_tokens=64000,
    output_config={"effort": "xhigh"},
    messages=[{"role": "user", "content": "..."}],
) as stream:
    message = stream.get_final_message()

Si prefieres no gestionar directamente una cuenta de Anthropic y la configuración de retención de 30 días, un gateway unificado como [Velokey](/model/claude-fable-5) expone claude-fable-5 a través de un endpoint compatible con OpenAI junto con otros modelos — lo llamas con la misma key que usas para todo lo demás. Para ver cómo se compara Fable 5 en precio frente a otros modelos frontier, consulta nuestra guía de precios de la API de Claude, el desglose de tiers de GPT-5.6 y la comparación GLM-5.2 vs GPT-5.5 vs Opus 4.8.

Preguntas frecuentes

¿Cuál es el model ID de la API de Claude Fable 5?

El model ID es claude-fable-5 — la cadena exacta, sin sufijo de fecha. Es el modelo más capaz de Anthropic de amplio lanzamiento, con una ventana de contexto de 1M de tokens (el valor por defecto y el máximo) y hasta 128K tokens de output. Llámalo a través de la Messages API (client.messages.create) con el SDK oficial anthropic.

¿Por qué mi solicitud a Claude Fable 5 devuelve un 400?

Las causas habituales son parámetros que Fable 5 eliminó: temperature, top_p, top_k, thinking: {budget_tokens}, thinking: {type:"disabled"} o un prefill de turno assistant — cada uno devuelve un 400. Una causa aparte es una org con zero data retention, que devuelve 400 en cada solicitud a Fable 5. Elimina los params de sampling/thinking y confirma retención ≥30 días.

¿Cómo controlo la profundidad de thinking en Claude Fable 5?

Usa output_config.effortlow, medium, high, xhigh o max. Thinking siempre está activado y no se puede desactivar ni darle un budget_tokens fijo (ambos devuelven 400). high es un valor por defecto sólido; xhigh sirve para coding y tareas agentic. Para ver un resumen de razonamiento, añade thinking={"type":"adaptive","display":"summarized"}.

¿Cuánto cuesta la API de Claude Fable 5?

$10 por 1M de tokens de input y $50 por 1M de tokens de output — unas 2× Claude Opus 4.8. Una solicitud de 10K input/2K output cuesta unos $0.20. Bajar effort y el prompt caching (las lecturas en caché se facturan ~10% del input) son las principales formas de reducir el gasto en trabajo de alto volumen.

¿Cómo manejo un refusal de Claude Fable 5?

Comprueba response.stop_reason antes de leer content — un refusal devuelve HTTP 200 con stop_reason: "refusal" y content vacío o parcial. Activa el parámetro fallbacks del lado del servidor (con betas=["server-side-fallback-2026-06-01"]) para que un rechazo se re-sirva en claude-opus-4-8 en la misma llamada en lugar de fallar.

¿Puedo usar la API de Claude Fable 5 sin una cuenta de Anthropic?

No directamente — Fable 5 requiere una cuenta de pago de Anthropic con retención de datos de 30 días. Puedes acceder a él a través de un gateway de API unificado que gestiona el acceso upstream a Anthropic, de modo que llamas a claude-fable-5 mediante un endpoint compatible con OpenAI sin gestionar tú mismo la cuenta ni la configuración de retención.


¿Quieres Claude Fable 5 sin gestionar una cuenta de Anthropic? [Obtén tu API key de Velokey](/model/claude-fable-5) y llama a claude-fable-5 a través de un endpoint compatible con OpenAI — la misma key, junto a todos los demás modelos que uses.


*Última actualización: 13 de julio de 2026. Los detalles de la API provienen de la documentación de Claude Fable 5 de Anthropic en el momento de la redacción. Los precios, parámetros y el comportamiento del modelo los establece Anthropic y pueden cambiar — verifica contra la documentación oficial antes de llevar a producción.*