POST
POST /v1/messages/batches — Claude API
Anthropic API key (required); https://api.anthropic.com
Claude APICreate a Message Batch
Keep the batch id from the response. Use it to retrieve the batch and check processing_status and request_counts. The results_url is null while processing; only when it is available after processing ends, retrieve the results. Match JSONL results to requests by custom_id. See the Anthropic Create Message Batch reference.
- Base URL
- https://api.anthropic.com
- Auth
- x-api-key: <ANTHROPIC_API_KEY>
- Last verified
- 2026-10-20 · upstream hash matched
Actions Try in browser→
Agents: curl -H "Accept: text/markdown" this URL
→ 283 tokens · Vary: Accept
→ 283 tokens · Vary: Accept
Critical gotchas
Authentication uses the x-api-key header and requests also require an anthropic-version header.
The official OpenAPI URL is discovered from the SDK repository manifest and must remain under Anthropic's trusted Stainless storage prefix.
cURL
curl -X POST 'https://api.anthropic.com/v1/messages/batches' \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H 'anthropic-version: 2023-06-01' \ -H 'Content-Type: application/json' \ -d '{ "requests": [ { "custom_id": "example-custom-id", "params": { "max_tokens": 1024, "messages": [ { "content": "Hello, world", "role": "user" } ], "model": "claude-opus-5" } } ]}'
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| requests | body | object[] | Yes | List of requests for prompt completion. Each is an individual request to create a Message. |
Response 200 OK
{
"id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF",
"type": "message_batch",
"processing_status": "in_progress",
"request_counts": {
"processing": 1,
"succeeded": 0,
"errored": 0,
"canceled": 0,
"expired": 0
},
"results_url": null
} Get a free Claude API key → sponsored Affiliate link - we may earn a commission, at no extra cost to you.