models

Anthropic: Claude Fable 5.1 (batch)

Markdown · JSON

Anthropic: Claude Fable 5.1 (batch)

Claude Fable 5.1 is designed for complex research, large code changes and extended professional analysis. Connects information across a large context window and works with text and detailed images.

About the model

This description covers the model’s capabilities. Available in Ailoot inputs, outputs and options are listed for the selected method below.

Claude Fable 5.1 is intended for work that starts with an open question and continues to a verifiable result. In programming, Anthropic highlights changes across many files, major refactoring, migrations, debugging and code verification. In research, it highlights sequences of search steps, comparison of material and maintaining direction as new information arrives.

Investigating a cause and assembling the result

The model can help identify the root cause of a complex software bug, plan a correction and check the proposed solution. Its ability to connect details that are far apart in a large body of material is useful when working with information. A task can continue after its initial findings: the analysis becomes document content, a spreadsheet with formulas or a presentation.

Such finished materials are produced through application tools. Code execution, file reading, information searches and interface actions also require a connected environment. Anthropic describes continuing after an unsuccessful action and recovering a workflow in interfaces, but the availability of these tools and the permitted operations are determined by the application.

Dense charts and tables

The model accepts text and images, and its own output is text. Visual uses include dense charts, financial material and tables in documents. When a source page contains many small details, additional zooming or cropping through tools may help isolate the relevant area.

The manufacturer's standard visual input formats are JPEG/PNG/GIF/WebP, using the first frame of an animation. For native analysis, the longer dimension is 2576 pixels, with 4784 visual tokens; larger images are downscaled before analysis. File and parameter support depends on the application's method.

In research examples, the manufacturer demonstrates Fable 5.1 being used to train a neural network that reconstructs a height map of Venus from radar data. This is an example of data and programming work, not a separate type of media output from the model.

Sustained work and analytical depth

Adaptive reasoning in Fable 5.1 is always enabled. The effort parameter sets its depth: low, medium, high, xhigh and max are available, with high as the default. Context is 1 million tokens, and the maximum response is 128 thousand tokens. The reliable built-in knowledge cutoff is June 2026.

The manufacturer provides for changing effort during a conversation and reporting progress when the application supports these mechanisms. If the application passes retained reasoning blocks, their connection to the model and original history matters. Changes to previous messages, the system instruction or earlier tool definitions may invalidate subsequent blocks: the binding check either rejects the request or excludes the affected blocks. Fable 5.1 can read retained reasoning from earlier Claude models, but those earlier models cannot read its blocks. An incompatible block is excluded before the next turn, and work continues without it. Fable 5.1 uses the same tokenizer as Fable 5; material size needs to be assessed for the selected model.

Characteristics that affect the result

At low effort, Fable 5.1 may prefer answering from built-in knowledge to using search. If a question requires a current check, this should be stated explicitly and the necessary tools provided. The model sometimes writes dense text, rarely reports intermediate progress or replaces an entire file when a local edit was expected; the desired style and change boundaries are useful to specify in advance.

If the method provides tool control, the manufacturer's model supports automatic selection with auto and disabling tools with none. Forced calls are not supported, either for any tool with any or for a specific named tool with tool. Safety rules allow investigation of bugs and vulnerabilities in source code, but restrict some sensitive tasks, including exploit development.

In a method that supports these settings, continuation from a predefined response prefix and non-default values of temperature, top_p and top_k are not accepted. Text generated by the model contains Anthropic's statistical watermark: it does not change meaning, quality or readability, and adds no hidden characters or tokens.

Ailoot Ultra · Batch POST /v1/batches anthropic/claude-fable-5.1:batch

anthropic/claude-fable-5.1:batch

Anthropic /anthropic/claude-fable-5.1:batch

Overview

Claude Fable 5.1 is designed for complex research, large code changes and extended professional analysis. Connects information across a large context window and works with text and detailed images.

Accepted inputs
Text
Results
Text

Available in Ailoot · inputs & methods

Ailoot Ultra · Batch POST /v1/batches
Input types
text
Output types
text
Output format
inline results[].response.body JSON
FieldTypeRequirementValues & limitsDefault
FieldendpointTypestringRequirementRequiredValues & limits
/v1/chat/completions
Default—
FieldmodelTypestringRequirementRequiredValues & limits
anthropic/claude-fable-5.1:batch
Default—
FieldrequestsTypebatch_item[]RequirementRequiredValues & limits
Minimum items: 1
Default—
Fieldrequests[].custom_idTypestringRequirementRequiredValues & limitsDefault—
Fieldrequests[].body.messagesTypemessage[]RequirementRequiredValues & limitsDefault—
Fieldcompletion_windowTypestringRequirementOptionalValues & limits
24h
Default—
FieldproviderTypeobject|nullRequirementOptionalValues & limitsDefault—
Fieldrequests[].body.modelTypestringRequirementOptionalValues & limits
anthropic/claude-fable-5.1:batch, anthropic/claude-fable-5.1
Default—
Fieldprovider.onlyTypestring[]RequirementOptionalValues & limits
anthropic
Default—
Fieldprovider.allow_fallbacksTypeboolean|nullRequirementOptionalValues & limits
false, null
Default—
Method parameters and lifecycle
ParameterContract
Parametercontent_typeContractapplication/json
ParameterrequiredContractendpoint, model, requests
Parametermaterial_typesContracttext
ParameterrepresentationContractinline requests[]; each item has custom_id and body
Parameterrequest_endpoint_profileContract/v1/chat/completions
Parameterfile_materialContractCaller may read actual UTF-8 JSONL locally into requests[]. No upload purpose, input_file_id or file reference is used. Missing/empty customer material stops preparation before POST.
Parameterserialization_orderContractendpoint, model, provider (if supplied), completion_window (if supplied), requests last
Parameteroptional_controlsContractprovider.only, provider.allow_fallbacks, completion_window
Parameterschema_scopeContractText Chat Completions bodies in the documented inline Batch envelope.

Lifecycle: asynchronous

GET /v1/batches/{operation_id} · actual original create response.id; same user/key/group

Pricing

Tariff references do not add request options. Supported parameters are listed for the selected method.

Fast mode
Not specified When fast mode is selected
Flex mode
Not specified When flex mode is selected
Maximum reasoning effort
Not specified When maximum reasoning effort uses the default adjustment
Explicit cache pricing
Enabled When explicit cache is requested

Ailoot rates

Prices by configuration

Match each charge to the conditions shown. Use one rate for each set of alternative configurations.

ConfigurationRate scheduleContext tokens, more thanContext tokens, up to and includingCharge
ConfigurationBase token ratesRate scheduleBase rateContext tokens, more than—Context tokens, up to and includingNo upper boundCharge
Input · Input tokens $0.01 / 1K tokens
Output · Output tokens $0.05 / 1K tokens
Input · Cache read $0.00025 / 1K tokens
Input · Cache write $0.0125 / 1K tokens
Input · Cache write, 1 hour $0.02 / 1K tokens
ConfigurationRequest-length tier 1Rate schedule—Context tokens, more than0Context tokens, up to and includingNo upper boundCharge
Input · Input tokens $0.01 / 1K tokens
Output · Output tokens $0.05 / 1K tokens
Input · Cache read $0.00025 / 1K tokens
Input · Cache write $0.0125 / 1K tokens
Input · Cache write, 1 hour $0.02 / 1K tokens

Ailoot reserves an estimated amount before a request. After the result, it settles the final charge from measured usage. Streaming settlement uses the final usage record. How reservation and settlement work →

Example requests

Ailoot Ultra · Batch

curl · retained fixturePython HTTP · actual customer JSONLPython · save every completed result
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json
from pathlib import Path
body=json.loads('{"endpoint":"/v1/chat/completions","model":"anthropic/claude-fable-5.1:batch","requests":[{"custom_id":"req-0001","body":{"messages":[{"role":"user","content":"Hello!"}],"max_tokens":16}}]}')
Path("batch-request.json").write_text(json.dumps(body,ensure_ascii=False),encoding="utf-8")
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/batches \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @batch-request.json -D batch-response-headers.txt -o batch-create-response.json
import json, os
from pathlib import Path
from urllib.request import Request, urlopen

def prepare_requests(customer_path):
    path = Path(customer_path)
    if not path.is_file(): raise ValueError("Customer JSONL file is missing")
    items = [json.loads(line) for line in path.read_text(encoding="utf-8").splitlines() if line.strip()]
    if not items: raise ValueError("Customer JSONL contains no requests")
    ids = set()
    for item in items:
        if set(item) != {"custom_id", "body"}: raise ValueError("Each item needs custom_id and body")
        cid = item["custom_id"]
        if not isinstance(cid, str) or not cid.strip() or cid in ids: raise ValueError("custom_id must be nonempty and unique")
        ids.add(cid)
        if not isinstance(item["body"], dict) or not item["body"].get("messages"): raise ValueError("Supply actual text messages")
        supplied_model = item["body"].get("model")
        if supplied_model is not None and supplied_model not in ['anthropic/claude-fable-5.1:batch', 'anthropic/claude-fable-5.1']: raise ValueError("body.model must be an exact documented caller or wire ID")
    return {"endpoint":"/v1/chat/completions", "model":"anthropic/claude-fable-5.1:batch", "requests":items}

if __name__ == "__main__":
    material = os.environ.get("AILOOT_BATCH_REQUESTS_JSONL", "")
    if not material: raise SystemExit("Set AILOOT_BATCH_REQUESTS_JSONL to your actual customer file")
    body = prepare_requests(material)
    key = os.environ.get("AILOOT_API_KEY", "")
    if not key: raise SystemExit("Set AILOOT_API_KEY")
    request = Request("https://api.ailoot.ai/v1/batches", data=json.dumps(body, ensure_ascii=False).encode("utf-8"), headers={"Authorization":"Bearer " + key, "Content-Type":"application/json"}, method="POST")
    with urlopen(request) as response:
        raw = response.read()
        Path("batch-create-response.json").write_bytes(raw)
        print(raw.decode("utf-8"))
import json
from pathlib import Path
raw = Path("batch-status-response.json").read_bytes()
response = json.loads(raw)
if response.get("status") != "completed":
    raise SystemExit("Keep the original operation; read its status without resubmitting")
results = response.get("results")
if not isinstance(results, list) or not results:
    raise SystemExit("Preserve the original response; completed results are missing")
Path("batch-results.jsonl").write_text("".join(json.dumps(item, ensure_ascii=False) + "\n" for item in results), encoding="utf-8")
# Preserve batch-status-response.json with aggregate usage and every result/error.

Receive and save results

Ailoot Ultra · Batch

inline results[].response.body JSON

  • GET /v1/batches/{operation_id}
Check job status
curl · original operation status
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
BATCH_OPERATION_ID="$(python3 - <<'PY_ID'
import json
from pathlib import Path
from urllib.parse import quote
response = json.loads(Path("batch-create-response.json").read_text(encoding="utf-8"))
operation = response.get("id")
if not isinstance(operation, str) or not operation: raise SystemExit("No actual original operation ID; preserve the response and do not resubmit")
print(quote(operation, safe=""))
PY_ID
)"
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/batches/$BATCH_OPERATION_ID" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o batch-status-response.json
Keep all completed results

Keep every complete returned response, file and content part.

Preserve the full original status JSON, every result/custom_id and complete response or error body. Save completed results[] as JSONL without filtering.

If the original response needs checking

Preserve the original operation ID. 503 result_pending_check has X-Should-Retry:false; never resubmit an unknown original batch.

Response fields
FieldType
Fieldresults[].custom_idTypestring
Fieldresults[].response.body.choices[].message.contentTypestring|null
Fieldresults[].errorTypeobject|null
FieldusageTypeobject|null
FieldidTypestring
FieldmodelTypestring
FieldendpointTypestring
FieldstatusTypestring
Fieldrequest_countsTypeobject
Fieldresults[].idTypestring
Fieldresults[].response.status_codeTypeinteger
Fieldresults[].response.request_idTypestring
Errors and next steps
ResponseConditionNext step
Response400 · invalid_request_errorConditionInvalid documented inline envelope, duplicate keys, item identity, or configured model capabilities conflict.Next stepCorrect the indicated fields before any new submission.
Response401 · authentication_errorConditionInvalid API key.Next stepUse the authorized Ailoot key.
Response403 · permission_errorConditionBatch group unavailable.Next stepCheck key/group entitlement.
Response422 · invalid_request_errorConditionBatch uses balance billing; subscription creation is rejected.Next stepUse the authorized balance-billed group.
Response422 · price_unavailableConditionBatch input cannot be quoted.Next stepPreserve response; use documented family input.
Response402 · billing_errorConditionBatch reserve unavailable.Next stepResolve admission before a new request.
Response503 · price_unavailableConditionBatch method price/native rates unavailable.Next stepPreserve response; do not substitute prices.
Response503 · api_errorConditionExact supplier route unavailable.Next stepPreserve response for route repair.
Response503 · result_pending_checkConditionOriginal result requires checking; X-Should-Retry:false.Next stepKeep original operation_id/id and read its status; never repeat original POST.
Response404 · not_foundConditionBatch status operation absent or owned by another identity.Next stepUse exact original id and same user/key/group.

Aliases

Model aliases

Ailoot Ultra anthropic/claude-fable-5.1:batch

Method path aliases

Use the method paths shown above.

Related caller IDs

anthropic/claude-fable-5.1:batch

FAQ · Anthropic: Claude Fable 5.1 (batch)
What inputs and results are available?

POST /v1/batches · anthropic/claude-fable-5.1:batch: text → text

Which fields does the request use?

POST /v1/batches · anthropic/claude-fable-5.1:batch: endpoint, model, requests, completion_window, provider

What limits apply?

POST /v1/batches · anthropic/claude-fable-5.1:batch: requests.min_items: 1

More details

Connect Ailoot to Claude Code, OpenCode, Hermes or your own app.

The company and its project portfolio

The company and its project portfolio: millions of customers; monthly sales in the billions.

Buy tokens at a discount.

Subscription discounts for regular use. Promo codes offer up to 50% off token purchases.

Subscription
Choose a discounted plan for your regular requests.
Promo code: up to 50% off
Enter your code at checkout. The price updates to reflect the current promotion.
Spending in your history
The model, tokens and amount are recorded for each request.

Choose a subscription · View model prices

Connect the API to a product you sell.

Use Ailoot in SaaS, apps and bots under its official service offer and licence agreement. Request a reseller licence for resale.

Commercial application
Add text, image, video and audio generation to paid features in your service.
Reseller licence
Send a description of your project and how you provide access. Request written terms for use and resale.
Documents on the website
The service offer, licence agreement and data processing policy are available before you connect.

Request a reseller licence · Service offer and licence agreement