v49

latestOpenAPI 3.1.0raw.githubusercontent.com2026-07-261319281.7 MB

Create a Message Batch

Send a batch of Message creation requests.

The Message Batches API can be used to process multiple Messages API requests at once. Once a Message Batch is created, it begins processing immediately. Batches can take up to 24 hours to complete.

Learn more about the Message Batches API in our user guide

post/v1/messages/batches

Headers

anthropic-versionstring

The version of the Claude API you want to use.

Read more about versioning and our version history here.

The version of the Claude API you want to use.

Read more about versioning and our version history here.

anthropic-user-profile-idstring

The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the user-profiles beta header. Applies to every request in the batch; an individual request whose user_profile_id body field conflicts with this header is errored.

The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the user-profiles beta header. Applies to every request in the batch; an individual request whose user_profile_id body field conflicts with this header is errored.

Request body

Example request

{
  "requests": [
    {
      "custom_id": "my-custom-id-1",
      "params": {
        "max_tokens": 1024,
        "messages": [
          {
            "content": "Hello, world",
            "role": "user"
          }
        ],
        "model": "claude-opus-4-6"
      }
    }
  ]
}

Response

Successful Response

archived_atstring date-time nullable required

RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable.

cancel_initiated_atstring date-time nullable required

RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated.

created_atstring date-time required

RFC 3339 datetime string representing the time at which the Message Batch was created.

ended_atstring date-time nullable required

RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends.

Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired.

expires_atstring date-time required

RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation.

idstring required

Unique object identifier.

The format and length of IDs may change over time.

processing_status'in_progress' | 'canceling' | 'ended' required

Processing status of the Message Batch.

results_urlstring nullable required

URL to a .jsonl file containing the results of the Message Batch requests. Specified only once processing ends.

Results in the file are not guaranteed to be in the same order as requests. Use the custom_id field to match results to requests.

type'message_batch' required

Object type.

For Message Batches, this is always "message_batch".

Example response

{
  "archived_at": "2024-08-20T18:37:24.100435Z",
  "cancel_initiated_at": "2024-08-20T18:37:24.100435Z",
  "created_at": "2024-08-20T18:37:24.100435Z",
  "ended_at": "2024-08-20T18:37:24.100435Z",
  "expires_at": "2024-08-20T18:37:24.100435Z",
  "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF",
  "processing_status": "in_progress",
  "request_counts": {
    "canceled": 10,
    "errored": 30,
    "expired": 10,
    "processing": 100,
    "succeeded": 50
  },
  "results_url": "https://api.anthropic.com/v1/messages/batches/msgbatch_013Zva2CMHLNnXjNJJKqJ2EF/results"
}