AIREITER

AI Image

Grok Imagine Image 2.0Midjourney V8.1Midjourney V7Z-Image TurboKrea 2 TurboSeedream 5.0 Pro LayerizeQwen Image 3.0 ProMore

AI Video

HappyHorse 1.0HappyHorse 1.1Gemini Omni FlashFLUX 3 VideoVeo 3.1Veo 3.1 FastSeedance 2.0 Fast FaceMore

LLM

MiniMax M3GLM 5.2Doubao Seed 2.1 TurboKimi K2.7 CodeDeepSeek V4 FlashDeepSeek V4 ProClaude Opus 5More
Coming soonaa
API DOCSPRICING
TEMPLATES
anthropicText Chat

Claude Fable 5 AI Chat Playground and API

Try Claude Fable 5 online for detailed writing, careful synthesis, and high-quality long-form work. Review token pricing and test prompts before integrating the API.

InputOfficial $10.00 per 1M tokensAIReiter $3.42 per 1M tokensOutputOfficial $50.00 per 1M tokensAIReiter $17.06 per 1M tokensCache readAIReiter $3.42 per 1M tokensCache creationOfficial $12.50 per 1M tokensAIReiter $4.27 per 1M tokens
Run with API
PlaygroundReadmeAPI

INPUT

imagefile[]
Optional input images sent alongside the prompt. Up to 5 files. Images are billed as input tokens.
1
2
3
4
5
6
7
8
9
10
11
12
13

Install the official Anthropic client — AIReiter speaks the same protocol, so only the base URL changes:

npm install @anthropic-ai/sdk

Set the AIREITER_API_KEY environment variable:

export AIREITER_API_KEY=<paste-your-key-here>

Point the client at AIReiter:

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

const client = new Anthropic({
  apiKey: process.env.AIREITER_API_KEY,
  baseURL: "https://aireiter.com/api",
});

Run claude-fable-5:

const message = await client.messages.create({
    "model": "claude-fable-5",
    "max_tokens": 4096,
    "messages": [
      {
        "role": "user",
        "content": "Explain what an API rate limit is and how to handle a 429 response in code."
      }
    ],
    "output_config": {
      "effort": "high"
    }
  });

console.log(message.content);

Stream the response instead:

const stream = client.messages.stream({
    "model": "claude-fable-5",
    "max_tokens": 4096,
    "messages": [
      {
        "role": "user",
        "content": "Explain what an API rate limit is and how to handle a 429 response in code."
      }
    ],
    "output_config": {
      "effort": "high"
    }
  });

stream.on("text", (text) => process.stdout.write(text));
const message = await stream.finalMessage();

Install the official Anthropic client — AIReiter speaks the same protocol, so only the base URL changes:

pip install anthropic

Set the AIREITER_API_KEY environment variable:

export AIREITER_API_KEY=<paste-your-key-here>

Point the client at AIReiter:

import os
import anthropic

client = anthropic.Anthropic(
    api_key=os.environ["AIREITER_API_KEY"],
    base_url="https://aireiter.com/api",
)

Run claude-fable-5:

message = client.messages.create(
      model = "claude-fable-5",
      max_tokens = 4096,
      messages = [
        {
          role = "user",
          content = "Explain what an API rate limit is and how to handle a 429 response in code."
        }
      ],
      output_config = {
        effort = "high"
      }
)

print(message.content)

Stream the response instead:

with client.messages.stream(
      model = "claude-fable-5",
      max_tokens = 4096,
      messages = [
        {
          role = "user",
          content = "Explain what an API rate limit is and how to handle a 429 response in code."
        }
      ],
      output_config = {
        effort = "high"
      }
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

Set the AIREITER_API_KEY environment variable:

export AIREITER_API_KEY=<paste-your-key-here>

Run claude-fable-5 against AIReiter's API:

curl -s -X POST \
  -H "x-api-key: $AIREITER_API_KEY" \
  -H "Content-Type: application/json" \
  "https://aireiter.com/api/v1/messages" \
  -d '{
  "model": "claude-fable-5",
  "max_tokens": 4096,
  "messages": [
    {
      "role": "user",
      "content": "Explain what an API rate limit is and how to handle a 429 response in code."
    }
  ],
  "output_config": {
    "effort": "high"
  }
}'

Add "stream": true to the body to receive the response as server-sent events.

OUTPUT

Example

A rate limit caps how many requests an API accepts from you in a given window. Once you exceed it, the server stops doing work for you and answers 429 Too Many Requests instead.

Handling 429

  1. Read the Retry-After response header. When present it tells you exactly how long to wait, in seconds.
  2. When it is absent, back off exponentially with jitter so retries from many clients do not line up.
  3. Cap the number of retries, then surface the failure instead of looping forever.
async function withRetry(request, maxRetries = 4) {
  for (let attempt = 0; ; attempt++) {
    const response = await request();
    if (response.status !== 429 || attempt === maxRetries) return response;
    const retryAfter = Number(response.headers.get("retry-after"));
    const backoff = Number.isFinite(retryAfter) ? retryAfter * 1000 : 2 ** attempt * 500 + Math.random() * 250;
    await new Promise((resolve) => setTimeout(resolve, backoff));
  }
}

Treat the limit as a budget you plan around, not an error you retry your way out of: batch requests where you can, cache repeated reads, and spread bulk work over time.

{
  "model": "claude-fable-5",
  "input": {
    "model": "claude-fable-5",
    "max_tokens": 4096,
    "messages": [
      {
        "role": "user",
        "content": "Explain what an API rate limit is and how to handle a 429 response in code."
      }
    ],
    "output_config": {
      "effort": "high"
    }
  },
  "output": "A rate limit caps how many requests an API accepts from you in a given window. Once you exceed it, the server stops doing work for you and answers **429 Too Many Requests** instead.\n\n## Handling 429\n\n1. Read the `Retry-After` response header. When present it tells you exactly how long to wait, in seconds.\n2. When it is absent, back off exponentially with jitter so retries from many clients do not line up.\n3. Cap the number of retries, then surface the failure instead of looping forever.\n\n```js\nasync function withRetry(request, maxRetries = 4) {\n  for (let attempt = 0; ; attempt++) {\n    const response = await request();\n    if (response.status !== 429 || attempt === maxRetries) return response;\n    const retryAfter = Number(response.headers.get(\"retry-after\"));\n    const backoff = Number.isFinite(retryAfter) ? retryAfter * 1000 : 2 ** attempt * 500 + Math.random() * 250;\n    await new Promise((resolve) => setTimeout(resolve, backoff));\n  }\n}\n```\n\nTreat the limit as a budget you plan around, not an error you retry your way out of: batch requests where you can, cache repeated reads, and spread bulk work over time.",
  "metrics": {
    "input_tokens": 26,
    "output_tokens": 214,
    "generated_in_seconds": 4.1
  },
  "example": true
}
Generated in
4.1 seconds
Input tokens
26
Output tokens
214
Tokens per second
52.20 tokens / second
Time to first token
-

Model details

Use the same model key in Playground, API requests, and internal workflows.

Model ID
claude-fable-5
Provider
anthropic
Protocol
Anthropic Messages
Context window
-
Max output
-
Input tokens
342 credits / 1M tokens
Output tokens
1,706 credits / 1M tokens
Cache read
342 credits / 1M tokens
Cache write
427 credits / 1M tokens

What You Can Do with Claude Fable 5

Choose Claude Fable 5 for nuanced long-form work where structure, voice, synthesis, and revision quality matter more than a quick first draft.

Long-Form Composition

Develop coherent reports, narratives, and documentation with consistent structure and voice.

Nuanced Rewriting

Preserve meaning while changing tone, audience, length, or editorial emphasis.

Source Synthesis

Combine several documents into a readable brief without losing important distinctions.

Editorial Revision

Critique organization, clarity, transitions, and argument quality before producing a stronger draft.

Claude Fable 5 Use Cases

Best suited to editorial, research, and communication workflows that reward nuance, continuity, and careful revision.
01

Reports and White Papers

Build long documents with a coherent argument and consistent terminology.

02

Brand and Editorial Work

Adapt voice and structure for a defined audience.

03

Research Briefs

Merge findings while preserving uncertainty and source distinctions.

04

Document Revision

Improve a draft through critique, reorganization, and rewriting.

How to Use Claude Fable 5

Test the model in three straightforward steps.

01

Choose Your Settings

Set the response controls and upload options supported by the model.

02

Send a Prompt

Describe the task, add relevant context, and review the streamed response and token usage.

03

Connect the API

Use the documented endpoint and your API key to bring the same model into your product.

Build with the Claude Fable 5 API

Go from an interactive test to a production integration with predictable controls and usage reporting.

Familiar Protocols

Use the API protocol configured for this model, including streaming where available.

Usage Visibility

Track input tokens, output tokens, and consumed credits after each response.

Model-Specific Controls

Pass the supported generation parameters instead of relying on generic defaults.

One Account and Balance

Test and operate supported text models through the same AIReiter account and billing system.

Claude Fable 5 FAQ

Common questions about the online playground, pricing, and API access.

/ 01

What is Claude Fable 5 best for?

It is positioned here for long-form composition, nuanced rewriting, synthesis, and editorial revision.

/ 02

Can Claude Fable 5 preserve a specific writing style?

Provide representative examples and explicit voice constraints, then compare revisions in the playground.

/ 03

Is Claude Fable 5 only for creative writing?

No. It can also be evaluated for reports, research briefs, documentation, and other structured long-form work.

/ 04

How is Claude Fable 5 priced?

The current input and output token rates appear above the playground.

/ 05

Can I use Claude Fable 5 through an API?

Yes. Follow the linked API documentation and use the page model ID.

AIREITER

Questions? Contact us at
support@aireiter.com

新速率有限公司NEWRATE LIMITED香港九龍花園街 2-16 號好景商業中心 2304 室Room 2304, Haojing Commercial Center, 2-16 Garden Street, Kowloon, Hong Kong

LLM

MiniMax M3GLM 5.2Doubao Seed 2.1 TurboKimi K2.7 CodeDeepSeek V4 Flash

AI Video

HappyHorse 1.0HappyHorse 1.1Gemini Omni FlashFLUX 3 VideoVeo 3.1

AI Image

Grok Imagine Image 2.0Midjourney V8.1Midjourney V7Z-Image TurboKrea 2 Turbo

Blog

View All →

Company

Privacy PolicyTerms of ServiceRefund Policy

© 2026 AIReiter. All rights reserved.