Messages

messages

Methods

Create A Message -> { id, content, model, 5 more... }
post/v1/messages

Send a structured list of input messages with text and/or image content, and the model will generate the next message in the conversation.

The Messages API can be used for either single queries or stateless multi-turn conversations.

Learn more about the Messages API in our user guide

Count Tokens In A Message -> { input_tokens }
post/v1/messages/count_tokens

Count the number of tokens in a Message.

The Token Count API can be used to count the number of tokens in a Message, including tools, images, and documents, without creating it.

Learn more about token counting in our user guide

Count Tokens In A Message -> { input_tokens }
post/v1/messages/count_tokens?beta=true

Count the number of tokens in a Message.

The Token Count API can be used to count the number of tokens in a Message, including tools, images, and documents, without creating it.

Learn more about token counting in our user guide

Messages

Batches

messages.batches

Methods

Create A Message Batch -> { id, archived_at, cancel_initiated_at, 7 more... }
post/v1/messages/batches

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

List Message Batches -> { data, first_id, has_more, 1 more... }
get/v1/messages/batches

List all Message Batches within a Workspace. Most recently created batches are returned first.

Learn more about the Message Batches API in our user guide

Retrieve A Message Batch -> { id, archived_at, cancel_initiated_at, 7 more... }
get/v1/messages/batches/{message_batch_id}

This endpoint is idempotent and can be used to poll for Message Batch completion. To access the results of a Message Batch, make a request to the results_url field in the response.

Learn more about the Message Batches API in our user guide

path Parameters
message_batch_id: string

ID of the Message Batch.

header Parameters
anthropic-beta: Array<string>
Optional

Optional header to specify the beta version(s) you want to use.

To use multiple betas, use a comma separated list like beta1,beta2 or specify the header multiple times for each beta.

anthropic-version: string
Optional

The version of the Anthropic API you want to use.

Read more about versioning and our version history here.

x-api-key: string
Optional

Your unique API key for authentication.

This key is required in the header of all API requests, to authenticate your account and access Anthropic's services. Get your API key through the Console. Each key is scoped to a Workspace.

Response fields
id: string

Unique object identifier.

The format and length of IDs may change over time.

archived_at: string
Nullable
(format: date-time)

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

cancel_initiated_at: string
Nullable
(format: date-time)

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

created_at: string
(format: date-time)

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

ended_at: string
Nullable
(format: date-time)

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_at: string
(format: date-time)

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

processing_status: "in_progress" | "canceling" | "ended"

Processing status of the Message Batch.

request_counts: { canceled, errored, expired, 2 more... }

Tallies requests within the Message Batch, categorized by their status.

Requests start as processing and move to one of the other statuses only once processing of the entire batch ends. The sum of all values always matches the total number of requests in the batch.

results_url: string
Nullable

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"
(default: "message_batch")

Object type.

For Message Batches, this is always "message_batch".

Request example
200Example
Delete A Message Batch -> { id, type }
delete/v1/messages/batches/{message_batch_id}

Delete a Message Batch.

Message Batches can only be deleted once they've finished processing. If you'd like to delete an in-progress batch, you must first cancel it.

Learn more about the Message Batches API in our user guide

Cancel A Message Batch -> { id, archived_at, cancel_initiated_at, 7 more... }
post/v1/messages/batches/{message_batch_id}/cancel

Batches may be canceled any time before processing ends. Once cancellation is initiated, the batch enters a canceling state, at which time the system may complete any in-progress, non-interruptible requests before finalizing cancellation.

The number of canceled requests is specified in request_counts. To determine which requests were canceled, check the individual results within the batch. Note that cancellation may not result in any canceled requests if they were non-interruptible.

Learn more about the Message Batches API in our user guide

Retrieve Message Batch Results -> { custom_id, result }
get/v1/messages/batches/{message_batch_id}/results

Streams the results of a Message Batch as a .jsonl file.

Each line in the file is a JSON object containing the result of a single request in the Message Batch. Results are not guaranteed to be in the same order as requests. Use the custom_id field to match results to requests.

Learn more about the Message Batches API in our user guide

Cancel A Message Batch -> { id, archived_at, cancel_initiated_at, 7 more... }
post/v1/messages/batches/{message_batch_id}/cancel?beta=true

Batches may be canceled any time before processing ends. Once cancellation is initiated, the batch enters a canceling state, at which time the system may complete any in-progress, non-interruptible requests before finalizing cancellation.

The number of canceled requests is specified in request_counts. To determine which requests were canceled, check the individual results within the batch. Note that cancellation may not result in any canceled requests if they were non-interruptible.

Learn more about the Message Batches API in our user guide

Retrieve Message Batch Results -> { custom_id, result }
get/v1/messages/batches/{message_batch_id}/results?beta=true

Streams the results of a Message Batch as a .jsonl file.

Each line in the file is a JSON object containing the result of a single request in the Message Batch. Results are not guaranteed to be in the same order as requests. Use the custom_id field to match results to requests.

Learn more about the Message Batches API in our user guide

messages.batches.beta_true

Methods

Retrieve A Message Batch -> { id, archived_at, cancel_initiated_at, 7 more... }
get/v1/messages/batches/{message_batch_id}?beta=true

This endpoint is idempotent and can be used to poll for Message Batch completion. To access the results of a Message Batch, make a request to the results_url field in the response.

Learn more about the Message Batches API in our user guide

Delete A Message Batch -> { id, type }
delete/v1/messages/batches/{message_batch_id}?beta=true

Delete a Message Batch.

Message Batches can only be deleted once they've finished processing. If you'd like to delete an in-progress batch, you must first cancel it.

Learn more about the Message Batches API in our user guide

Messages

Batches Beta True

messages.batches_beta_true

Methods

Create A Message Batch -> { id, archived_at, cancel_initiated_at, 7 more... }
post/v1/messages/batches?beta=true

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

List Message Batches -> { data, first_id, has_more, 1 more... }
get/v1/messages/batches?beta=true

List all Message Batches within a Workspace. Most recently created batches are returned first.

Learn more about the Message Batches API in our user guide