Claude Fable 5.1 API

Claude Fable 5.1 is the only public Claude model currently available through BeatAPI. It uses the same Text API passthrough as the other text models, and every supported SDK format uses the model ID claude-fable-5-1.

ModelChoose it forContext
claude-fable-5-1Long-form writing and work where voice and structure matter most1,000,000 tokens

The public Claude route currently exposes only claude-fable-5-1. Call GET /v1/models before rollout to confirm the models enabled for your account.

Use the native Messages format for new Claude integrations — it is the only one that carries Claude’s own tool-use and prompt-caching fields without translation.

POST https://api.beatapi.io/v1/messages

1import Anthropic from "@anthropic-ai/sdk";
2
3const client = new Anthropic({
4 apiKey: process.env.BEATAPI_API_KEY,
5 baseURL: "https://api.beatapi.io"
6});
7
8const message = await client.messages.create({
9 model: "claude-fable-5-1",
10 max_tokens: 1024,
11 messages: [
12 { role: "user", content: "Design a resilient webhook retry strategy for a payments API." }
13 ]
14});
15
16console.log(message.content);

Send the BeatAPI key with x-api-key or Authorization: Bearer. Both are accepted, so an existing Anthropic client needs only the base URL changed.

$curl --request POST \
> --url https://api.beatapi.io/v1/messages \
> --header 'Authorization: Bearer <BEATAPI_API_KEY>' \
> --header 'Content-Type: application/json' \
> --data '{
> "model": "claude-fable-5-1",
> "max_tokens": 1024,
> "messages": [
> {
> "role": "user",
> "content": "Design a resilient webhook retry strategy for a payments API."
> }
> ]
>}'

Prompt caching

Claude bills cache reads, 5-minute cache writes, and 1-hour cache writes at their own rates, and BeatAPI meters each of them separately — a cached prefix is charged as a cache read, not as fresh input. Set cache_control exactly as you would against Anthropic directly.

Cache hits on claude-fable-5-1 are billed at 0.025x the base input rate. Cache writes and reads are metered separately.

Existing SDK formats

The same claude-fable-5-1 model also answers on the other three request formats. Migrate an existing integration by changing the base URL and replacing the provider key with a BeatAPI key.

OpenAI Chat Completions

POST https://api.beatapi.io/v1/chat/completions

$curl --request POST \
> --url https://api.beatapi.io/v1/chat/completions \
> --header 'Authorization: Bearer <BEATAPI_API_KEY>' \
> --header 'Content-Type: application/json' \
> --data '{
> "model": "claude-fable-5-1",
> "messages": [
> {
> "role": "user",
> "content": "Design a resilient webhook retry strategy for a payments API."
> }
> ]
>}'

OpenAI Responses

POST https://api.beatapi.io/v1/responses

$curl --request POST \
> --url https://api.beatapi.io/v1/responses \
> --header 'Authorization: Bearer <BEATAPI_API_KEY>' \
> --header 'Content-Type: application/json' \
> --data '{
> "model": "claude-fable-5-1",
> "input": "Design a resilient webhook retry strategy for a payments API.",
> "reasoning": {
> "effort": "medium"
> }
>}'

Gemini-compatible content

POST https://api.beatapi.io/v1beta/models/{model}:generateContent

Send the BeatAPI key with x-goog-api-key, Bearer authentication, or the Gemini SDK-compatible key query parameter. Prefer the header for direct HTTP integrations.

$curl --request POST \
> --url 'https://api.beatapi.io/v1beta/models/claude-fable-5-1:generateContent' \
> --header 'Authorization: Bearer <BEATAPI_API_KEY>' \
> --header 'Content-Type: application/json' \
> --data '{
> "contents": [
> {
> "role": "user",
> "parts": [
> {
> "text": "Design a resilient webhook retry strategy for a payments API."
> }
> ]
> }
> ]
>}'

Streaming

Set the streaming field expected by your selected format. BeatAPI forwards the server-sent event stream without converting it, so event names and response objects remain compatible with that SDK format.

Authentication and availability

List the currently enabled text models before rollout:

$curl https://api.beatapi.io/v1/models \
> -H "Authorization: Bearer $BEATAPI_API_KEY"
1{
2 "object": "list",
3 "data": [
4 { "id": "claude-fable-5-1", "object": "model", "owned_by": "beatapi" }
5 ]
6}

The same API key and USD balance are shared across Text, Image, Video, Workflow, Effect, and Realtime APIs. Calls are metered from actual token usage; inspect request IDs, model, token totals, status, and settled amount in Dashboard usage logs.

Production checklist

  • Keep API keys on trusted servers and redact them from logs.
  • Set explicit request timeouts and reconnect streamed responses safely.
  • Log the response request ID for support and billing audits.
  • Evaluate representative production inputs before committing to a rollout.
  • Handle 401, 402, 429, 502, and 503 as distinct operational cases.

Continue with media models

The same BeatAPI account can call GPT-5.6, GPT Image 2, Wan 3.0, and the rest of the Image and Video APIs without adding another billing or authentication system.