Python quickstart
Pass claude-fable-5-1 as the model identifier against the OneInfer OpenAI-compatible endpoint, with your OneInfer API key in the Authorization header. The request body is unchanged from any other chat-completions call; only the base URL and the model string differ.
from openai import OpenAI
client = OpenAI(
base_url="https://api.oneinfer.ai/v1",
api_key="$ONEINFER_API_KEY",
)
response = client.chat.completions.create(
model="claude-fable-5.1",
messages=[
{"role": "user", "content": "Summarise the launch announcement in three bullets."},
],
max_tokens=1024,
extra_body={"effort": "high"},
)
print(response.choices[0].message.content)Five effort levels
Claude Fable 5.1 exposes five effort levels: Low, Medium, High, XHigh and Max. Effort changes how many reasoning tokens the model spends before answering, which moves both quality and cost. Anthropic reports that at Low effort Claude Fable 5.1 is often competitive with Claude Opus and Claude Sonnet on cost per task while scoring higher. At the other end, one report notes maximum-effort runs can cost around 20% more per task than Claude Fable 5 because output token consumption rises. Effort is the single largest cost lever on this model, ahead of prompt caching.
| Effort | Reasoning tokens | Cost vs Fable 5 | Best for |
|---|---|---|---|
| Low | Minimal | Often cheaper | High-volume chat, classification, extraction |
| Medium | Light | Roughly comparable | Routine coding, structured output |
| High | Moderate | +0–15% | Multi-step coding, agent planning |
| XHigh | Heavy | +15–30% | Research synthesis, complex refactors |
| Max | Maximum | +20% on the worst runs | Frontier tasks where quality dominates cost |
Anti-distillation context rule from 31 August 2026
Accounts created on or after 31 August 2026 cannot edit prior context mid-conversation. This breaks patterns that rewrite history between calls. Two behaviours are specific to this model: thinking blocks are model-specific and cannot be replayed into a different model, and the no-edit rule applies to accounts created on the cutover date onward.
TypeScript quickstart
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.oneinfer.ai/v1",
apiKey: process.env.ONEINFER_API_KEY!,
});
const response = await client.chat.completions.create({
model: "claude-fable-5.1",
messages: [{ role: "user", content: "Refactor this module for clarity." }],
max_tokens: 2048,
// @ts-expect-error effort is a Claude-specific parameter
effort: "high",
});
console.log(response.choices[0].message.content);Ready to test the workflow?
Create account & add creditscURL quickstart
curl https://api.oneinfer.ai/v1/chat/completions \
-H "Authorization: Bearer $ONEINFER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-fable-5.1",
"messages": [{"role": "user", "content": "Explain prompt caching in 100 words."}],
"max_tokens": 1024,
"stream": false
}'Rate limits and error codes
Claude Fable 5.1 rate limits, error codes and retry behaviour are documented per tier. Note: tool_choice "any" or "tool" returns 400 in early builds; verify against your account before deploying.
Frequently asked questions
How do you call Claude Fable 5.1 from Python?
Pass claude-fable-5-1 as the model identifier against the OneInfer OpenAI-compatible endpoint, with your OneInfer API key in the Authorization header. The request body is unchanged from any other chat-completions call; only the base URL and the model string differ.
What are Claude Fable 5.1 effort levels?
Claude Fable 5.1 exposes five effort levels: Low, Medium, High, XHigh and Max. Effort changes how many reasoning tokens the model spends before answering, which moves both quality and cost.
Put Claude Fable 5.1 to work
Fund a controlled evaluation, start with a prepared prompt, and measure quality and cost on your own workload.