Claude Opus 5.5 is live on SeedRouter

How to use the Claude Fable 5.1 API: model ID, API key and your first request

Call the Claude Fable 5.1 API: get an API key, use the claude-fable-5-1 model ID, send a first request in Python or Node.js, and switch to Opus 5.5.

Read as Markdown

To call the Claude Fable 5.1 API, create a SeedRouter API key, point the official Anthropic SDK at https://api.seedrouter.ai, and send claude-fable-5-1 as the model. The request and response keep Anthropic's Messages format, so existing Claude code changes in two places: the base URL and the key. Claude Fable 5 (claude-fable-5) and Claude Opus 5.5 (claude-opus-5-5) work the same way.

What are the Claude model IDs?

ModelModel IDDefault effort
Claude Fable 5.1claude-fable-5-1high
Claude Fable 5claude-fable-5high
Claude Opus 5.5claude-opus-5-5medium

The IDs are the same as on Anthropic's own API: fixed names with no date suffix. All three have a 1M-token context window and write up to 128K tokens per request.

How do I get a Claude Fable 5.1 API key?

  1. Sign in to SeedRouter and open API keys.
  2. Create a key and copy it. The full key is shown once; store it in an environment variable such as SEEDROUTER_API_KEY.
  3. Add credit on the billing page. Requests are billed per token from your balance, and a request that fails is not charged.

One key works for every model in the catalogue, including all three Claude models. Keep it in server-side code, never in a browser or mobile app.

How do I send my first Claude Fable 5.1 request?

With the Anthropic Python SDK (pip install anthropic):

import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["SEEDROUTER_API_KEY"],
    base_url="https://api.seedrouter.ai",
)

message = client.messages.create(
    model="claude-fable-5-1",
    max_tokens=4096,
    messages=[{"role": "user", "content": "Explain the CAP theorem in three sentences."}],
)

print("".join(block.text for block in message.content if block.type == "text"))
print(message.usage)

Thinking is always on for these models, so the response can start with thinking blocks. Read the answer from the blocks whose type is text, as above, rather than from content[0].

With the Anthropic TypeScript SDK (npm install @anthropic-ai/sdk):

import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: process.env.SEEDROUTER_API_KEY,
  baseURL: "https://api.seedrouter.ai",
});

const message = await client.messages.create({
  model: "claude-fable-5-1",
  max_tokens: 4096,
  messages: [{ role: "user", content: "Explain the CAP theorem in three sentences." }],
});

for (const block of message.content) {
  if (block.type === "text") console.log(block.text);
}

Or with cURL:

curl https://api.seedrouter.ai/v1/messages \
  -H "x-api-key: $SEEDROUTER_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-fable-5-1",
    "max_tokens": 4096,
    "messages": [{"role": "user", "content": "Explain the CAP theorem in three sentences."}]
  }'

max_tokens covers thinking and the answer together. If a response stops with stop_reason: "max_tokens", raise it or lower the effort.

Can I use the OpenAI SDK with Claude Fable 5.1?

Yes. The same key and model ID work with the OpenAI Chat Completions and Responses formats at https://api.seedrouter.ai/v1:

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["SEEDROUTER_API_KEY"],
    base_url="https://api.seedrouter.ai/v1",
)

chat = client.chat.completions.create(
    model="claude-fable-5-1",
    messages=[{"role": "user", "content": "Explain the CAP theorem in three sentences."}],
)
print(chat.choices[0].message.content)

response = client.responses.create(
    model="claude-fable-5-1",
    input="Explain the CAP theorem in three sentences.",
)
print(response.output_text)

Use the Messages format when you need Claude-specific fields such as output_config.effort, thinking.display or cache_control. The OpenAI formats are the shortest path for code that already speaks them.

How do I set the effort level?

Effort controls how much Claude Fable 5.1 thinks before answering: low, medium, high (the default), xhigh or max. Thinking tokens are billed as output, so lower effort is cheaper and faster.

message = client.messages.create(
    model="claude-fable-5-1",
    max_tokens=4096,
    output_config={"effort": "low"},
    messages=[{"role": "user", "content": "Rename these variables to snake_case: userName, lastLoginAt."}],
)

To see a summary of the model's reasoning, add thinking={"type": "adaptive", "display": "summarized"}. Thinking cannot be turned off on these models, only turned down.

What changes when I switch to Claude Opus 5.5 or Fable 5?

Change model and nothing else is required. Three differences are worth knowing:

  • Claude Opus 5.5 defaults to medium effort, so the same request thinks less than on Claude Fable 5.1 unless you set effort.
  • Claude Fable 5.1 and Claude Opus 5.5 reject a forced tool call (tool_choice of any or tool). Claude Fable 5 accepts it.
  • Claude Fable 5 has a January 2026 knowledge cutoff; the other two have June 2026.

The Claude Fable 5.1 vs Fable 5 vs Opus 5.5 guide compares them in detail, and the pricing guide shows what each costs.

Frequently asked questions

Is Claude Fable 5.1 API only?

On SeedRouter it is reached through the API, plus a chat playground on the Claude Fable 5.1 page for trying prompts in the browser. Anthropic's Claude apps and Claude subscriptions are a separate product.

Does the Claude Fable 5.1 API support streaming?

Yes. Set stream: true in a Messages request, or use the SDK's streaming helper, and the response arrives as server-sent events in Anthropic's format.

Can I send images and PDFs?

Yes. Claude Fable 5.1 reads images and PDFs as content blocks in the Messages request, and writes text only. The API reference lists the accepted formats and limits.

What happens if a request fails?

You get an error response with a status code and a message, and you are not charged. The API reference lists the error codes.

Next steps

Try a prompt on the Claude Fable 5.1, Claude Fable 5 or Claude Opus 5.5 page, create a key on the API keys page, and keep the Claude Fable 5.1 API reference open for every request field.

Related guides