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 VideoKling v3 OmniVeo 3.1Veo 3.1 FastMore

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 Sonnet 5 AI Chat Playground and API

Try Claude Sonnet 5 online for balanced coding, analysis, writing, and production assistants. Test streamed responses, inspect token usage, and integrate the API.

InputOfficial $2.00 per 1M tokensAIReiter $0.63 per 1M tokensOutputOfficial $10.00 per 1M tokensAIReiter $3.11 per 1M tokensCache readOfficial $0.20 per 1M tokensAIReiter $0.07 per 1M tokensCache creationOfficial $2.50 per 1M tokensAIReiter $0.78 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.
Let the model reason before answering. The model decides how much thinking each request needs.Default: false
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-sonnet-5:

const message = await client.messages.create({
    "model": "claude-sonnet-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-sonnet-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-sonnet-5:

message = client.messages.create(
      model = "claude-sonnet-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-sonnet-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-sonnet-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-sonnet-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-sonnet-5",
  "input": {
    "model": "claude-sonnet-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-sonnet-5
Provider
anthropic
Protocol
Anthropic Messages
Context window
-
Max output
-
Input tokens
63 credits / 1M tokens
Output tokens
311 credits / 1M tokens
Cache read
7 credits / 1M tokens
Cache write
78 credits / 1M tokens

What You Can Do with Claude Sonnet 5

Choose Claude Sonnet 5 as a balanced production model for teams that need strong everyday quality without defaulting every request to the highest-cost tier.

Production Coding

Implement features, explain unfamiliar code, and iterate on fixes during everyday development.

Balanced Analysis

Compare options and summarize evidence without the overhead of a flagship-only workflow.

Customer Assistants

Power helpful support and internal assistants that need clear, well-structured responses.

Structured Content

Produce specifications, briefs, release notes, and reusable operational documentation.

Claude Sonnet 5 Use Cases

Best suited to the broad middle of production work: capable enough for serious tasks and practical enough for repeated use.
01

Product Development

Move between code, tests, documentation, and implementation decisions.

02

Internal Knowledge Assistants

Answer operational questions in a clear and useful format.

03

Support Automation

Draft accurate responses and escalate ambiguous cases.

04

Content Production

Create structured, reusable drafts for everyday business needs.

How to Use Claude Sonnet 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 Sonnet 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 Sonnet 5 FAQ

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

/ 01

When should I choose Claude Sonnet 5?

Choose it as a balanced production model for coding, analysis, assistants, and structured writing.

/ 02

How does Sonnet 5 differ from Opus tiers?

Sonnet is the practical default when you need strong everyday capability without routing every task to a flagship tier.

/ 03

Can Claude Sonnet 5 stream responses?

Yes. The playground streams output and reports usage after completion.

/ 04

How is Claude Sonnet 5 priced?

Current input and output token rates are displayed above the playground.

/ 05

Can I integrate Claude Sonnet 5 through an API?

Yes. Open the linked API documentation and send the displayed 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 VideoKling v3 Omni

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.