Claude Platform Docs

Messages

Create a Message
POST/v1/messages
Count tokens in a Message
POST/v1/messages/count_tokens
Models
Base64ImageSource object{ data, media_type, type }
data: string
formatbyte
media_type: "image/jpeg" or "image/png" or "image/gif" or "image/webp"
One of the following:
"image/jpeg"
"image/png"
"image/gif"
"image/webp"
type: "base64"
Base64PDFSource object{ data, media_type, type }
data: string
formatbyte
media_type: "application/pdf"
type: "base64"
BashCodeExecutionOutputBlock object{ file_id, type }
file_id: string
type: "bash_code_execution_output"
defaultbash_code_execution_output
BashCodeExecutionOutputBlockParam object{ file_id, type }
file_id: string
type: "bash_code_execution_output"
BashCodeExecutionResultBlock object{ content, return_code, stderr, 2 more }
content: array of BashCodeExecutionOutputBlock { file_id, type }
file_id: string
type: "bash_code_execution_output"
defaultbash_code_execution_output
return_code: number
stderr: string
stdout: string
type: "bash_code_execution_result"
defaultbash_code_execution_result
BashCodeExecutionResultBlockParam object{ content, return_code, stderr, 2 more }
content: array of BashCodeExecutionOutputBlockParam { file_id, type }
file_id: string
type: "bash_code_execution_output"
return_code: number
stderr: string
stdout: string
type: "bash_code_execution_result"
BashCodeExecutionToolResultBlock object{ content, tool_use_id, type }
BashCodeExecutionToolResultBlockParam object{ content, tool_use_id, type, cache_control }
BashCodeExecutionToolResultError object{ error_code, type }
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
"output_file_too_large"
type: "bash_code_execution_tool_result_error"
defaultbash_code_execution_tool_result_error
BashCodeExecutionToolResultErrorCode = "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
"output_file_too_large"
BashCodeExecutionToolResultErrorParam object{ error_code, type }
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
"output_file_too_large"
type: "bash_code_execution_tool_result_error"
BrowserCloseTabConfig object{ defer_loading, enabled }

close_tab's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserDoubleClickConfig object{ defer_loading, enabled }

double_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserFileUploadConfig object{ defer_loading, enabled }

file_upload's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserFindConfig object{ defer_loading, enabled }

find's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserFormInputConfig object{ defer_loading, enabled }

form_input's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserGetPageTextConfig object{ defer_loading, enabled }

get_page_text's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserHoldKeyConfig object{ defer_loading, enabled }

hold_key's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserHoverConfig object{ defer_loading, enabled }

hover's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserJavascriptExecConfig object{ defer_loading, enabled }

javascript_exec's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserKeyConfig object{ defer_loading, enabled }

key's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserLeftClickConfig object{ defer_loading, enabled }

left_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserLeftClickDragConfig object{ defer_loading, enabled }

left_click_drag's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserLeftMouseDownConfig object{ defer_loading, enabled }

left_mouse_down's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserLeftMouseUpConfig object{ defer_loading, enabled }

left_mouse_up's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserListTabsConfig object{ defer_loading, enabled }

list_tabs's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserMiddleClickConfig object{ defer_loading, enabled }

middle_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserMouseMoveConfig object{ defer_loading, enabled }

mouse_move's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserNavigateConfig object{ defer_loading, enabled }

navigate's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserNewTabConfig object{ defer_loading, enabled }

new_tab's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserReadConsoleConfig object{ defer_loading, enabled }

read_console's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserReadNetworkConfig object{ defer_loading, enabled }

read_network's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserReadPageConfig object{ defer_loading, enabled }

read_page's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserRightClickConfig object{ defer_loading, enabled }

right_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserScreenshotConfig object{ defer_loading, enabled }

screenshot's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserScrollConfig object{ defer_loading, enabled }

scroll's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserScrollToConfig object{ defer_loading, enabled }

scroll_to's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserStateBlockParam object{ tabs, type, cache_control, state_changes }

The caller's browser state after a browser toolset member call — the full inventory of open tabs, which tab is active, and any side effects (tabs opened, download state changes) the call produced.

At most one per tool_result, only on a non-error result answering a browser toolset member tool_use. The server renders the model-visible text from it; the model never sees the raw fields.

BrowserStateChange = BrowserStateChangeTabOpened { tab_id, type } or BrowserStateChangeDownloadStarted { download_id, type, url } or BrowserStateChangeDownloadCompleted { download_id, type, url, 2 more } or BrowserStateChangeDownloadFailed { download_id, type, url, error }

A tab this call's execution opened that remains open at its end — the creation delta of the tabs inventory, not an event log.

Carries only the tab_id; the tab's title and url live on its tabs entry, which must include the same tab_id. A tab opened during a failed call gets no deferred tab_opened; it simply appears in the next result's tabs inventory.

One of the following:
BrowserStateChangeDownloadCompleted object{ download_id, type, url, 2 more }

A file download that finished during this call, reported with the same download_id as its download_started — or without a prior download_started, when the download finished during the call that started it (at most one state change per download_id per result).

download_id: string

The caller-assigned identifier for this download, stable across the state changes reporting it.

maxLength4096
minLength1
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
type: "download_completed"
url: string

The final post-redirect URL the download was served from.

maxLength4096
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
path: optional string or null

Where the executor saved the file, on the executor's filesystem. Only included when another tool in the same environment can read the file at that path.

pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
maxLength4096
size_bytes: optional number or null

The completed download's size.

minimum0
BrowserStateChangeDownloadFailed object{ download_id, type, url, error }

A file download that failed — or was cancelled — during this call.

download_id: string

The caller-assigned identifier for this download, stable across the state changes reporting it.

maxLength4096
minLength1
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
type: "download_failed"
url: string

The final post-redirect URL the download was served from.

maxLength4096
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
error: optional string or null

The failure or cancellation detail, when known.

pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
maxLength4096
BrowserStateChangeDownloadStarted object{ download_id, type, url }

A file download that started during this call.

download_id: string

The caller-assigned identifier for this download, stable across the state changes reporting it.

maxLength4096
minLength1
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
type: "download_started"
url: string

The final post-redirect URL the download was served from.

maxLength4096
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
BrowserStateChangeTabOpened object{ tab_id, type }

A tab this call's execution opened that remains open at its end — the creation delta of the tabs inventory, not an event log.

Carries only the tab_id; the tab's title and url live on its tabs entry, which must include the same tab_id. A tab opened during a failed call gets no deferred tab_opened; it simply appears in the next result's tabs inventory.

tab_id: string

The tab_id of the opened tab, present in tabs.

maxLength4096
minLength1
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
type: "tab_opened"
BrowserStateTabEntry object{ tab_id, title, url, active }

One open browser tab reported in a browser_state block's tabs inventory.

tab_id is the caller-assigned identifier for the tab; title and url describe the page the tab is currently showing and may be empty strings (a blank tab legitimately has both empty). active marks the tab that is active after this call; whenever tabs is non-empty, exactly one entry is marked.

tab_id: string

The caller-assigned identifier for this tab, unique within the inventory.

maxLength4096
minLength1
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
title: string

The title of the page the tab is showing. May be empty.

maxLength4096
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
url: string

The URL of the page the tab is showing. May be empty.

maxLength4096
pattern^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
active: optional boolean

Whether this tab is the active tab after this call. Whenever tabs is non-empty, exactly one entry is marked active: true.

BrowserSwitchTabConfig object{ defer_loading, enabled }

switch_tab's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserToolset20260801 object{ type, allowed_callers, cache_control, configs }

The browser toolset: a single tools[] entry (carrying no name) that declares the browser tool family. The model is served the family's tool with any members disabled via configs removed from its schema.

BrowserToolsetConfigs object{ close_tab, double_click, file_upload, 28 more }

Per-member configuration for browser_toolset_20260801: one optional field per member tool, keyed by the member name — the same name the member's tool_use blocks carry. Every member is an accepted key, and a member's defaults apply wherever its key is absent. Unknown keys are rejected: the field set is this toolset version's complete member set.

BrowserTripleClickConfig object{ defer_loading, enabled }

triple_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserTypeConfig object{ defer_loading, enabled }

type's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserWaitConfig object{ defer_loading, enabled }

wait's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

BrowserZoomConfig object{ defer_loading, enabled }

zoom's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

CacheControlEphemeral object{ type, ttl }
type: "ephemeral"
ttl: optional "5m" or "1h"

The time-to-live for the cache control breakpoint.

This may be one the following values:

  • 5m: 5 minutes
  • 1h: 1 hour

Defaults to 5m. See prompt caching pricing for details.

One of the following:
"5m"
"1h"
CacheCreation object{ ephemeral_1h_input_tokens, ephemeral_5m_input_tokens }
ephemeral_1h_input_tokens: number

The number of input tokens used to create the 1 hour cache entry.

default0
minimum0
ephemeral_5m_input_tokens: number

The number of input tokens used to create the 5 minute cache entry.

default0
minimum0
CitationCharLocation object{ cited_text, document_index, document_title, 4 more }
cited_text: string
document_index: number
minimum0
document_title: string or null
end_char_index: number
file_id: string or null
start_char_index: number
minimum0
type: "char_location"
defaultchar_location
CitationCharLocationParam object{ cited_text, document_index, document_title, 3 more }
cited_text: string
document_index: number
minimum0
document_title: string or null
maxLength500
minLength1
end_char_index: number
start_char_index: number
minimum0
type: "char_location"
CitationContentBlockLocation object{ cited_text, document_index, document_title, 4 more }
cited_text: string

The full text of the cited block range, concatenated.

Always equals the contents of content[start_block_index:end_block_index] joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns.

document_index: number
minimum0
document_title: string or null
end_block_index: number

Exclusive 0-based end index of the cited block range in the source's content array.

Always greater than start_block_index; a single-block citation has end_block_index = start_block_index + 1.

file_id: string or null
start_block_index: number

0-based index of the first cited block in the source's content array.

minimum0
type: "content_block_location"
defaultcontent_block_location
CitationContentBlockLocationParam object{ cited_text, document_index, document_title, 3 more }
cited_text: string

The full text of the cited block range, concatenated.

Always equals the contents of content[start_block_index:end_block_index] joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns.

document_index: number
minimum0
document_title: string or null
maxLength500
minLength1
end_block_index: number

Exclusive 0-based end index of the cited block range in the source's content array.

Always greater than start_block_index; a single-block citation has end_block_index = start_block_index + 1.

start_block_index: number

0-based index of the first cited block in the source's content array.

minimum0
type: "content_block_location"
CitationPageLocation object{ cited_text, document_index, document_title, 4 more }
cited_text: string
document_index: number
minimum0
document_title: string or null
end_page_number: number
file_id: string or null
start_page_number: number
minimum1
type: "page_location"
defaultpage_location
CitationPageLocationParam object{ cited_text, document_index, document_title, 3 more }
cited_text: string
document_index: number
minimum0
document_title: string or null
maxLength500
minLength1
end_page_number: number
start_page_number: number
minimum1
type: "page_location"
CitationSearchResultLocationParam object{ cited_text, end_block_index, search_result_index, 4 more }
cited_text: string

The full text of the cited block range, concatenated.

Always equals the contents of content[start_block_index:end_block_index] joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns.

end_block_index: number

Exclusive 0-based end index of the cited block range in the source's content array.

Always greater than start_block_index; a single-block citation has end_block_index = start_block_index + 1.

search_result_index: number

0-based index of the cited search result among all search_result content blocks in the request, in the order they appear across messages and tool results.

Counted separately from document_index; server-side web search results are not included in this count.

minimum0
source: string
start_block_index: number

0-based index of the first cited block in the source's content array.

minimum0
title: string or null
type: "search_result_location"
CitationWebSearchResultLocationParam object{ cited_text, encrypted_index, title, 2 more }
cited_text: string
encrypted_index: string
title: string or null
maxLength512
minLength1
type: "web_search_result_location"
url: string
minLength1
CitationsConfig object{ enabled }
enabled: boolean
defaultfalse
CitationsConfigParam object{ enabled }
enabled: optional boolean
CitationsDelta object{ citation, type }
CitationsSearchResultLocation object{ cited_text, end_block_index, search_result_index, 4 more }
cited_text: string

The full text of the cited block range, concatenated.

Always equals the contents of content[start_block_index:end_block_index] joined together. The text block is the minimal citable unit; this field is never a substring of a single block. Not counted toward output tokens, and not counted toward input tokens when sent back in subsequent turns.

end_block_index: number

Exclusive 0-based end index of the cited block range in the source's content array.

Always greater than start_block_index; a single-block citation has end_block_index = start_block_index + 1.

search_result_index: number

0-based index of the cited search result among all search_result content blocks in the request, in the order they appear across messages and tool results.

Counted separately from document_index; server-side web search results are not included in this count.

minimum0
source: string
start_block_index: number

0-based index of the first cited block in the source's content array.

minimum0
title: string or null
type: "search_result_location"
defaultsearch_result_location
CitationsWebSearchResultLocation object{ cited_text, encrypted_index, title, 2 more }
cited_text: string
encrypted_index: string
title: string or null
maxLength512
type: "web_search_result_location"
defaultweb_search_result_location
url: string
CodeExecutionOutputBlock object{ file_id, type }
file_id: string
type: "code_execution_output"
defaultcode_execution_output
CodeExecutionOutputBlockParam object{ file_id, type }
file_id: string
type: "code_execution_output"
CodeExecutionResultBlock object{ content, return_code, stderr, 2 more }
content: array of CodeExecutionOutputBlock { file_id, type }
file_id: string
type: "code_execution_output"
defaultcode_execution_output
return_code: number
stderr: string
stdout: string
type: "code_execution_result"
defaultcode_execution_result
CodeExecutionResultBlockParam object{ content, return_code, stderr, 2 more }
content: array of CodeExecutionOutputBlockParam { file_id, type }
file_id: string
type: "code_execution_output"
return_code: number
stderr: string
stdout: string
type: "code_execution_result"
CodeExecutionTool20250522 object{ name, type, allowed_callers, 3 more }
CodeExecutionTool20250825 object{ name, type, allowed_callers, 3 more }
CodeExecutionTool20260120 object{ name, type, allowed_callers, 3 more }

Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).

CodeExecutionTool20260521 object{ name, type, allowed_callers, 3 more }

Code execution tool with REPL state persistence.

CodeExecutionToolResultBlock object{ content, tool_use_id, type }

Code execution result with encrypted stdout for PFC + web_search results.

One of the following:
tool_use_id: string
pattern^srvtoolu_[a-zA-Z0-9_]+$
type: "code_execution_tool_result"
defaultcode_execution_tool_result
CodeExecutionToolResultBlockContent = CodeExecutionToolResultError { error_code, type } or CodeExecutionResultBlock { content, return_code, stderr, 2 more } or EncryptedCodeExecutionResultBlock { content, encrypted_stdout, return_code, 2 more }

Code execution result with encrypted stdout for PFC + web_search results.

One of the following:
CodeExecutionToolResultBlockParam object{ content, tool_use_id, type, cache_control }

Code execution result with encrypted stdout for PFC + web_search results.

One of the following:
tool_use_id: string
pattern^srvtoolu_[a-zA-Z0-9_]+$
type: "code_execution_tool_result"
cache_control: optional CacheControlEphemeral { type, ttl } or null

Create a cache control breakpoint at this content block.

type: "ephemeral"
ttl: optional "5m" or "1h"

The time-to-live for the cache control breakpoint.

This may be one the following values:

  • 5m: 5 minutes
  • 1h: 1 hour

Defaults to 5m. See prompt caching pricing for details.

One of the following:
"5m"
"1h"
CodeExecutionToolResultBlockParamContent = CodeExecutionToolResultErrorParam { error_code, type } or CodeExecutionResultBlockParam { content, return_code, stderr, 2 more } or EncryptedCodeExecutionResultBlockParam { content, encrypted_stdout, return_code, 2 more }

Code execution result with encrypted stdout for PFC + web_search results.

One of the following:
CodeExecutionToolResultError object{ error_code, type }
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
type: "code_execution_tool_result_error"
defaultcode_execution_tool_result_error
CodeExecutionToolResultErrorCode = "invalid_tool_input" or "unavailable" or "too_many_requests" or "execution_time_exceeded"
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
CodeExecutionToolResultErrorParam object{ error_code, type }
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
type: "code_execution_tool_result_error"
ComputerCursorPositionConfig object{ defer_loading, enabled }

cursor_position's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerDoubleClickConfig object{ defer_loading, enabled }

double_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerHoldKeyConfig object{ defer_loading, enabled }

hold_key's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerKeyConfig object{ defer_loading, enabled }

key's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerLeftClickConfig object{ defer_loading, enabled }

left_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerLeftClickDragConfig object{ defer_loading, enabled }

left_click_drag's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerLeftMouseDownConfig object{ defer_loading, enabled }

left_mouse_down's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerLeftMouseUpConfig object{ defer_loading, enabled }

left_mouse_up's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerMiddleClickConfig object{ defer_loading, enabled }

middle_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerMouseMoveConfig object{ defer_loading, enabled }

mouse_move's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerRightClickConfig object{ defer_loading, enabled }

right_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerScreenshotConfig object{ defer_loading, enabled }

screenshot's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerScrollConfig object{ defer_loading, enabled }

scroll's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerToolset20260801 object{ type, allowed_callers, cache_control, configs }

The computer toolset: a single tools[] entry (carrying no name) that declares the computer tool family. The model is served the family's tool with any members disabled via configs removed from its schema. Every member is enabled by default, zoom included. The single-tool options display_number and enable_zoom are not fields of a toolset entry — it carries only type, configs, and cache_control; zoom is controlled via configs.zoom.enabled.

ComputerToolsetConfigs object{ cursor_position, double_click, hold_key, 14 more }

Per-member configuration for computer_toolset_20260801: one optional field per member tool, keyed by the member name — the same name the member's tool_use blocks carry. Every member is an accepted key, and a member's defaults apply wherever its key is absent. Unknown keys are rejected: the field set is this toolset version's complete member set.

ComputerTripleClickConfig object{ defer_loading, enabled }

triple_click's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerTypeConfig object{ defer_loading, enabled }

type's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerWaitConfig object{ defer_loading, enabled }

wait's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

ComputerZoomConfig object{ defer_loading, enabled }

zoom's config overrides.

defer_loading: optional boolean or null

Defer loading for this member. Must resolve to the same value on every enabled member of the toolset.

enabled: optional boolean or null

Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.

Container object{ id, expires_at, skills }

Information about the container used in the request (for the code execution tool)

id: string

Identifier for the container used in this request

expires_at: string

The time at which the container will expire.

formatdate-time
skills: array of ContainerSkill { skill_id, type, version } or null

Skills loaded in the container

skill_id: string

Skill ID

maxLength64
minLength1
type: "anthropic" or "custom"

Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)

One of the following:
"anthropic"
"custom"
version: string

The resolved version: a skill version ID for custom skills.

maxLength64
minLength1
ContainerParams object{ id, skills }

Container parameters with skills to be loaded.

id: optional string or null

Container id

skills: optional array of SkillParams { skill_id, type, version } or null

List of skills to load in the container

maxItems20
skill_id: string

Skill ID

maxLength64
minLength1
type: "anthropic" or "custom"

Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)

One of the following:
"anthropic"
"custom"
version: optional string

Skill version or 'latest' for most recent version

maxLength64
minLength1
ContainerSkill object{ skill_id, type, version }

A skill that was loaded in a container (response model).

skill_id: string

Skill ID

maxLength64
minLength1
type: "anthropic" or "custom"

Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)

One of the following:
"anthropic"
"custom"
version: string

The resolved version: a skill version ID for custom skills.

maxLength64
minLength1
ContainerUploadBlock object{ file_id, type }

Response model for a file uploaded to the container.

file_id: string
type: "container_upload"
defaultcontainer_upload
ContainerUploadBlockParam object{ file_id, type, cache_control }

A content block that represents a file to be uploaded to the container Files uploaded via this block will be available in the container's input directory.

file_id: string
type: "container_upload"
cache_control: optional CacheControlEphemeral { type, ttl } or null

Create a cache control breakpoint at this content block.

type: "ephemeral"
ttl: optional "5m" or "1h"

The time-to-live for the cache control breakpoint.

This may be one the following values:

  • 5m: 5 minutes
  • 1h: 1 hour

Defaults to 5m. See prompt caching pricing for details.

One of the following:
"5m"
"1h"
ContentBlock = TextBlock { citations, text, type } or ThinkingBlock { signature, thinking, type } or RedactedThinkingBlock { data, type } or 9 more

Response model for a file uploaded to the container.

One of the following:
ContentBlockParam = TextBlockParam { text, type, cache_control, citations } or ImageBlockParam { source, type, cache_control, transformations } or DocumentBlockParam { source, type, cache_control, 3 more } or 13 more

Regular text content.

One of the following:
ContentBlockSource object{ content, type }
content: string or array of ContentBlockSourceContent
One of the following:
string
ContentBlockSourceContent = array of ContentBlockSourceContent
One of the following:
TextBlockParam object{ text, type, cache_control, citations }
ImageBlockParam object{ source, type, cache_control, transformations }
type: "content"
ContentBlockSourceContent = TextBlockParam { text, type, cache_control, citations } or ImageBlockParam { source, type, cache_control, transformations }
One of the following:
TextBlockParam object{ text, type, cache_control, citations }
ImageBlockParam object{ source, type, cache_control, transformations }
DirectCaller object{ type }

Tool invocation directly from the model.

type: "direct"
DocumentBlock object{ citations, source, title, type }
DocumentBlockParam object{ source, type, cache_control, 3 more }
EncryptedCodeExecutionResultBlock object{ content, encrypted_stdout, return_code, 2 more }

Code execution result with encrypted stdout for PFC + web_search results.

content: array of CodeExecutionOutputBlock { file_id, type }
file_id: string
type: "code_execution_output"
defaultcode_execution_output
encrypted_stdout: string
return_code: number
stderr: string
type: "encrypted_code_execution_result"
defaultencrypted_code_execution_result
EncryptedCodeExecutionResultBlockParam object{ content, encrypted_stdout, return_code, 2 more }

Code execution result with encrypted stdout for PFC + web_search results.

content: array of CodeExecutionOutputBlockParam { file_id, type }
file_id: string
type: "code_execution_output"
encrypted_stdout: string
return_code: number
stderr: string
type: "encrypted_code_execution_result"
FileDocumentSource object{ file_id, type }
file_id: string
type: "file"
FileImageSource object{ file_id, type }
file_id: string
type: "file"
ImageBlockParam object{ source, type, cache_control, transformations }
ImageTransformationsParam object{ oversized_image }

Configures the transformations the server applies to this image before the model observes it. Each key names a condition the server transforms images for; its value selects the transformation applied. Omitted keys keep their default behavior, and an empty object is equivalent to omitting the field.

oversized_image: optional "downsize" or "error"

What the server does when this image exceeds the model's maximum image size. "downsize" (the default) scales the image down to fit, which changes the dimensions the model observes without telling you. "error" instead rejects the request with a 400 error naming the image's dimensions and the largest dimensions that fit, so you can scale the image deliberately — your image is never silently scaled down.

One of the following:
"downsize"
"error"
InputJSONDelta object{ partial_json, type }
partial_json: string
type: "input_json_delta"
defaultinput_json_delta
JSONOutputFormat object{ schema, type }
schema: map[unknown]

The JSON schema of the format

type: "json_schema"
MemoryTool20250818 object{ name, type, allowed_callers, 4 more }
Message object{ id, container, content, 7 more }
MessageCountTokensTool = Tool { input_schema, name, allowed_callers, 7 more } or ToolBash20250124 { name, type, allowed_callers, 4 more } or CodeExecutionTool20250522 { name, type, allowed_callers, 3 more } or 18 more

Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).

One of the following:
MessageCreateParamsContainer = ContainerParams { id, skills } or string

Container identifier for reuse across requests.

One of the following:
ContainerParams object{ id, skills }

Container parameters with skills to be loaded.

id: optional string or null

Container id

skills: optional array of SkillParams { skill_id, type, version } or null

List of skills to load in the container

maxItems20
skill_id: string

Skill ID

maxLength64
minLength1
type: "anthropic" or "custom"

Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)

One of the following:
"anthropic"
"custom"
version: optional string

Skill version or 'latest' for most recent version

maxLength64
minLength1
string
MessageDeltaUsage object{ cache_creation_input_tokens, cache_read_input_tokens, input_tokens, 3 more }
MessageParam object{ content, role }
MessageTokensCount object{ input_tokens }
input_tokens: number

The total number of tokens across the provided list of messages, system prompt, and tools.

Metadata object{ user_id }
user_id: optional string or null

An external identifier for the user who is associated with the request.

This should be a uuid, hash value, or other opaque identifier. Anthropic may use this id to help detect abuse. Do not include any identifying information such as name, email address, or phone number.

maxLength512
Model = "claude-sonnet-5" or "claude-fable-5" or "claude-mythos-5" or 12 more or string

The model that will complete your prompt.

See models for additional details and options.

One of the following:
OutputConfig object{ effort, format }
effort: optional "low" or "medium" or "high" or 2 more or null

All possible effort levels.

One of the following:
"low"
"medium"
"high"
"xhigh"
"max"
format: optional JSONOutputFormat { schema, type } or null

A schema to specify Claude's output format in responses. See structured outputs

schema: map[unknown]

The JSON schema of the format

type: "json_schema"
OutputTokensDetails object{ thinking_tokens }
thinking_tokens: number

Number of output tokens the model generated as internal reasoning, including the thinking-block delimiter tokens.

Reflects the raw reasoning the model produced, not the (possibly shorter) summarized thinking text returned in the response body. Computed by re-tokenizing the raw reasoning text, so it may differ from the model's exact generation count by a small number of tokens. Always ≤ output_tokens; output_tokens - thinking_tokens approximates the non-reasoning output.

default0
minimum0
PlainTextSource object{ data, media_type, type }
data: string
media_type: "text/plain"
type: "text"
RawContentBlockDelta = TextDelta { text, type } or InputJSONDelta { partial_json, type } or CitationsDelta { citation, type } or 2 more
One of the following:
RawContentBlockDeltaEvent object{ delta, index, type }
One of the following:
index: number
type: "content_block_delta"
defaultcontent_block_delta
RawContentBlockStartEvent object{ content_block, index, type }
RawContentBlockStopEvent object{ index, type }
index: number
type: "content_block_stop"
defaultcontent_block_stop
RawMessageDeltaEvent object{ delta, type, usage }
RawMessageStartEvent object{ message, type }
message: Message { id, container, content, 7 more }
type: "message_start"
defaultmessage_start
RawMessageStopEvent object{ type }
type: "message_stop"
defaultmessage_stop
RawMessageStreamEvent = RawMessageStartEvent { message, type } or RawMessageDeltaEvent { delta, type, usage } or RawMessageStopEvent { type } or 3 more
One of the following:
RedactedThinkingBlock object{ data, type }
data: string

The contents of this redacted thinking block, returned when portions of the model's thinking were safety-redacted. This field is opaque and encrypted, with no readable content.

Pass redacted_thinking blocks back to the API unchanged when continuing a multi-turn conversation.

See extended thinking for details.

type: "redacted_thinking"
defaultredacted_thinking
RedactedThinkingBlockParam object{ data, type }
data: string

The data value of this redacted thinking block, exactly as returned by the API in a previous response. Opaque and encrypted; pass it back unchanged.

type: "redacted_thinking"
RefusalStopDetails object{ category, explanation, type }

Structured information about a refusal.

category: "cyber" or "bio" or "frontier_llm" or 2 more or null

The policy category that triggered a refusal.

One of the following:
"cyber"

The request could enable cyber harm, such as malware or exploit development. Benign cybersecurity work can also trigger this category.

"bio"

The request could enable biological harm, such as dangerous lab methods. Beneficial life sciences work can also trigger this category.

"frontier_llm"

The request could assist the development of competing AI models, which is restricted under Anthropic's commercial terms. Benign machine learning work can also trigger this category.

"reasoning_extraction"

The request asks the model to reproduce its internal reasoning in the response text. To get reasoning in a structured form instead, use adaptive thinking.

"general_harms"

The request could be related to an area that was determined as harmful. Benign work might sometimes trigger this category.

explanation: string or null

Human-readable explanation of the refusal.

This text is not guaranteed to be stable. null when no explanation is available for the category.

type: "refusal"
defaultrefusal
SearchResultBlockParam object{ content, source, title, 3 more }
ServerToolCaller object{ tool_id, type }

Tool invocation generated by a server-side tool.

tool_id: string
pattern^srvtoolu_[a-zA-Z0-9_]+$
type: "code_execution_20250825"
ServerToolCaller20260120 object{ tool_id, type }
tool_id: string
pattern^srvtoolu_[a-zA-Z0-9_]+$
type: "code_execution_20260120"
ServerToolUsage object{ web_fetch_requests, web_search_requests }
web_fetch_requests: number

The number of web fetch tool requests.

default0
minimum0
web_search_requests: number

The number of web search tool requests.

default0
minimum0
ServerToolUseBlock object{ id, caller, input, 2 more }
ServerToolUseBlockParam object{ id, input, name, 3 more }
SignatureDelta object{ signature, type }
signature: string

The signature for this thinking block: an opaque value used to verify that the block was generated by Claude when it is passed back to the API. Delivered in a signature_delta event just before the block's content_block_stop event.

type: "signature_delta"
defaultsignature_delta
SkillParams object{ skill_id, type, version }

Specification for a skill to be loaded in a container (request model).

skill_id: string

Skill ID

maxLength64
minLength1
type: "anthropic" or "custom"

Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)

One of the following:
"anthropic"
"custom"
version: optional string

Skill version or 'latest' for most recent version

maxLength64
minLength1
StopReason = "end_turn" or "max_tokens" or "stop_sequence" or 4 more
One of the following:
"end_turn"
"max_tokens"
"stop_sequence"
"tool_use"
"pause_turn"
"refusal"
"model_context_window_exceeded"
TextBlock object{ citations, text, type }
TextBlockParam object{ text, type, cache_control, citations }
TextCitation = CitationCharLocation { cited_text, document_index, document_title, 4 more } or CitationPageLocation { cited_text, document_index, document_title, 4 more } or CitationContentBlockLocation { cited_text, document_index, document_title, 4 more } or 2 more
One of the following:
TextCitationParam = CitationCharLocationParam { cited_text, document_index, document_title, 3 more } or CitationPageLocationParam { cited_text, document_index, document_title, 3 more } or CitationContentBlockLocationParam { cited_text, document_index, document_title, 3 more } or 2 more
One of the following:
TextDelta object{ text, type }
text: string
type: "text_delta"
defaulttext_delta
TextEditorCodeExecutionCreateResultBlock object{ is_file_update, type }
is_file_update: boolean
type: "text_editor_code_execution_create_result"
defaulttext_editor_code_execution_create_result
TextEditorCodeExecutionCreateResultBlockParam object{ is_file_update, type }
is_file_update: boolean
type: "text_editor_code_execution_create_result"
TextEditorCodeExecutionStrReplaceResultBlock object{ lines, new_lines, new_start, 3 more }
lines: array of string or null
new_lines: number or null
new_start: number or null
old_lines: number or null
old_start: number or null
type: "text_editor_code_execution_str_replace_result"
defaulttext_editor_code_execution_str_replace_result
TextEditorCodeExecutionStrReplaceResultBlockParam object{ type, lines, new_lines, 3 more }
type: "text_editor_code_execution_str_replace_result"
lines: optional array of string or null
new_lines: optional number or null
new_start: optional number or null
old_lines: optional number or null
old_start: optional number or null
TextEditorCodeExecutionToolResultBlock object{ content, tool_use_id, type }
TextEditorCodeExecutionToolResultBlockParam object{ content, tool_use_id, type, cache_control }
TextEditorCodeExecutionToolResultError object{ error_code, error_message, type }
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
"file_not_found"
error_message: string or null
type: "text_editor_code_execution_tool_result_error"
defaulttext_editor_code_execution_tool_result_error
TextEditorCodeExecutionToolResultErrorCode = "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
"file_not_found"
TextEditorCodeExecutionToolResultErrorParam object{ error_code, type, error_message }
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
"file_not_found"
type: "text_editor_code_execution_tool_result_error"
error_message: optional string or null
TextEditorCodeExecutionViewResultBlock object{ content, file_type, num_lines, 3 more }
content: string
file_type: "text" or "image" or "pdf"
One of the following:
"text"
"image"
"pdf"
num_lines: number or null
start_line: number or null
total_lines: number or null
type: "text_editor_code_execution_view_result"
defaulttext_editor_code_execution_view_result
TextEditorCodeExecutionViewResultBlockParam object{ content, file_type, type, 3 more }
content: string
file_type: "text" or "image" or "pdf"
One of the following:
"text"
"image"
"pdf"
type: "text_editor_code_execution_view_result"
num_lines: optional number or null
start_line: optional number or null
total_lines: optional number or null
ThinkingBlock object{ signature, thinking, type }
signature: string

A value used to verify that this thinking block was generated by Claude when it is passed back to the API.

This is an opaque field and should not be interpreted or parsed. When passing thinking blocks back to the API (required when using tools with extended thinking), pass them back exactly as received, with this field intact.

See extended thinking for details.

thinking: string

The text of Claude's thinking process for this block.

type: "thinking"
defaultthinking
ThinkingBlockParam object{ signature, thinking, type }
signature: string

The signature value of this thinking block, exactly as returned by the API in a previous response. Used to verify that the block was generated by Claude.

Thinking blocks must be passed back unmodified and in their original order; a modified block results in a 400 invalid_request_error.

thinking: string

The thinking text of this block as returned by the API.

type: "thinking"
ThinkingConfigAdaptive object{ type, display }
type: "adaptive"
display: optional "summarized" or "omitted" or null

Controls how thinking content appears in the response. When set to summarized, thinking is returned normally. When set to omitted, thinking content is redacted but a signature is returned for multi-turn continuity. Defaults to summarized.

One of the following:
"summarized"
"omitted"
ThinkingConfigDisabled object{ type }
type: "disabled"
ThinkingConfigEnabled object{ budget_tokens, type, display }
budget_tokens: number

Determines how many tokens Claude can use for its internal reasoning process. Larger budgets can enable more thorough analysis for complex problems, improving response quality.

Must be ≥1024 and less than max_tokens.

See extended thinking for details.

minimum1024
type: "enabled"
display: optional "summarized" or "omitted" or null

Controls how thinking content appears in the response. When set to summarized, thinking is returned normally. When set to omitted, thinking content is redacted but a signature is returned for multi-turn continuity. Defaults to summarized.

One of the following:
"summarized"
"omitted"
ThinkingConfigParam = ThinkingConfigEnabled { budget_tokens, type, display } or ThinkingConfigDisabled { type } or ThinkingConfigAdaptive { type, display }

Configuration for enabling Claude's extended thinking.

When enabled, responses include thinking content blocks showing Claude's thinking process before the final answer. Requires a minimum budget of 1,024 tokens and counts towards your max_tokens limit.

See extended thinking for details.

One of the following:
ThinkingDelta object{ thinking, type }
thinking: string

The incremental thinking text for this content block. Concatenate the thinking values of successive thinking_delta events to assemble the block's full thinking value.

type: "thinking_delta"
defaultthinking_delta
Tool object{ input_schema, name, allowed_callers, 7 more }
ToolBash20250124 object{ name, type, allowed_callers, 4 more }
ToolChoice = ToolChoiceAuto { type, disable_parallel_tool_use } or ToolChoiceAny { type, disable_parallel_tool_use } or ToolChoiceTool { name, type, disable_parallel_tool_use } or ToolChoiceNone { type }

How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all.

One of the following:
ToolChoiceAny object{ type, disable_parallel_tool_use }

The model will use any available tools.

type: "any"
disable_parallel_tool_use: optional boolean

Whether to disable parallel tool use.

Defaults to false. If set to true, the model will output exactly one tool use.

ToolChoiceAuto object{ type, disable_parallel_tool_use }

The model will automatically decide whether to use tools.

type: "auto"
disable_parallel_tool_use: optional boolean

Whether to disable parallel tool use.

Defaults to false. If set to true, the model will output at most one tool use.

ToolChoiceNone object{ type }

The model will not be allowed to use tools.

type: "none"
ToolChoiceTool object{ name, type, disable_parallel_tool_use }

The model will use the specified tool with tool_choice.name.

name: string

The name of the tool to use.

type: "tool"
disable_parallel_tool_use: optional boolean

Whether to disable parallel tool use.

Defaults to false. If set to true, the model will output exactly one tool use.

ToolReferenceBlock object{ tool_name, type }
tool_name: string
maxLength256
minLength1
pattern^[a-zA-Z0-9_-]{1,256}$
type: "tool_reference"
defaulttool_reference
ToolReferenceBlockParam object{ tool_name, type, cache_control }

Tool reference block that can be included in tool_result content.

tool_name: string
maxLength256
minLength1
pattern^[a-zA-Z0-9_-]{1,256}$
type: "tool_reference"
cache_control: optional CacheControlEphemeral { type, ttl } or null

Create a cache control breakpoint at this content block.

type: "ephemeral"
ttl: optional "5m" or "1h"

The time-to-live for the cache control breakpoint.

This may be one the following values:

  • 5m: 5 minutes
  • 1h: 1 hour

Defaults to 5m. See prompt caching pricing for details.

One of the following:
"5m"
"1h"
ToolResultBlockParam object{ tool_use_id, type, cache_control, 3 more }
ToolSearchToolBm25_20251119 object{ name, type, allowed_callers, 3 more }
ToolSearchToolRegex20251119 object{ name, type, allowed_callers, 3 more }
ToolSearchToolResultBlock object{ content, tool_use_id, type }
ToolSearchToolResultBlockParam object{ content, tool_use_id, type, cache_control }
ToolSearchToolResultError object{ error_code, error_message, type }
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
error_message: string or null
type: "tool_search_tool_result_error"
defaulttool_search_tool_result_error
ToolSearchToolResultErrorCode = "invalid_tool_input" or "unavailable" or "too_many_requests" or "execution_time_exceeded"
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
ToolSearchToolResultErrorParam object{ error_code, type, error_message }
One of the following:
"invalid_tool_input"
"unavailable"
"too_many_requests"
"execution_time_exceeded"
type: "tool_search_tool_result_error"
error_message: optional string or null
ToolSearchToolSearchResultBlock object{ tool_references, type }
tool_references: array of ToolReferenceBlock { tool_name, type }
tool_name: string
maxLength256
minLength1
pattern^[a-zA-Z0-9_-]{1,256}$
type: "tool_reference"
defaulttool_reference
type: "tool_search_tool_search_result"
defaulttool_search_tool_search_result
ToolSearchToolSearchResultBlockParam object{ tool_references, type }
ToolTextEditor20250124 object{ name, type, allowed_callers, 4 more }
ToolTextEditor20250429 object{ name, type, allowed_callers, 4 more }
ToolTextEditor20250728 object{ name, type, allowed_callers, 5 more }
ToolUnion = Tool { input_schema, name, allowed_callers, 7 more } or ToolBash20250124 { name, type, allowed_callers, 4 more } or CodeExecutionTool20250522 { name, type, allowed_callers, 3 more } or 18 more

Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).

One of the following:
ToolUseBlock object{ id, caller, input, 3 more }
ToolUseBlockParam object{ id, input, name, 4 more }
URLImageSource object{ type, url }
type: "url"
url: string
URLPDFSource object{ type, url }
type: "url"
url: string
Usage object{ cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 6 more }
UserLocation object{ type, city, country, 2 more }
type: "approximate"
city: optional string or null

The city of the user.

maxLength255
minLength1
country: optional string or null

The two letter ISO country code of the user.

maxLength2
minLength2
region: optional string or null

The region of the user.

maxLength255
minLength1
timezone: optional string or null

The IANA timezone of the user.

maxLength255
minLength1
WebFetchBlock object{ content, retrieved_at, type, url }
content: DocumentBlock { citations, source, title, type }
retrieved_at: string or null

ISO 8601 timestamp when the content was retrieved

type: "web_fetch_result"
defaultweb_fetch_result
url: string

Fetched content URL

WebFetchBlockParam object{ content, type, url, retrieved_at }
content: DocumentBlockParam { source, type, cache_control, 3 more }
type: "web_fetch_result"
url: string

Fetched content URL

retrieved_at: optional string or null

ISO 8601 timestamp when the content was retrieved

WebFetchTool20250910 object{ name, type, allowed_callers, 8 more }
WebFetchTool20260209 object{ name, type, allowed_callers, 8 more }
WebFetchTool20260309 object{ name, type, allowed_callers, 9 more }

Web fetch tool with use_cache parameter for bypassing cached content.

WebFetchTool20260318 object{ name, type, allowed_callers, 10 more }
WebFetchToolResultBlock object{ caller, content, tool_use_id, type }
WebFetchToolResultBlockParam object{ content, tool_use_id, type, 2 more }
WebFetchToolResultErrorBlock object{ error_code, type }
One of the following:
"invalid_tool_input"
"url_too_long"
"url_not_allowed"
"url_not_in_prior_context"
"url_not_accessible"
"unsupported_content_type"
"too_many_requests"
"max_uses_exceeded"
"unavailable"
type: "web_fetch_tool_result_error"
defaultweb_fetch_tool_result_error
WebFetchToolResultErrorBlockParam object{ error_code, type }
One of the following:
"invalid_tool_input"
"url_too_long"
"url_not_allowed"
"url_not_in_prior_context"
"url_not_accessible"
"unsupported_content_type"
"too_many_requests"
"max_uses_exceeded"
"unavailable"
type: "web_fetch_tool_result_error"
WebFetchToolResultErrorCode = "invalid_tool_input" or "url_too_long" or "url_not_allowed" or 6 more
One of the following:
"invalid_tool_input"
"url_too_long"
"url_not_allowed"
"url_not_in_prior_context"
"url_not_accessible"
"unsupported_content_type"
"too_many_requests"
"max_uses_exceeded"
"unavailable"
WebSearchResultBlock object{ encrypted_content, page_age, title, 2 more }
encrypted_content: string
page_age: string or null
title: string
type: "web_search_result"
defaultweb_search_result
url: string
WebSearchResultBlockParam object{ encrypted_content, title, type, 2 more }
encrypted_content: string
title: string
type: "web_search_result"
url: string
page_age: optional string or null
WebSearchTool20250305 object{ name, type, allowed_callers, 7 more }
WebSearchTool20260209 object{ name, type, allowed_callers, 7 more }
WebSearchTool20260318 object{ name, type, allowed_callers, 8 more }
WebSearchToolRequestError object{ error_code, type }
One of the following:
"invalid_tool_input"
"unavailable"
"max_uses_exceeded"
"too_many_requests"
"query_too_long"
"request_too_large"
type: "web_search_tool_result_error"
WebSearchToolResultBlock object{ caller, content, tool_use_id, type }
WebSearchToolResultBlockContent = WebSearchToolResultError { error_code, type } or array of WebSearchResultBlock { encrypted_content, page_age, title, 2 more }
One of the following:
WebSearchToolResultBlockParam object{ content, tool_use_id, type, 2 more }
WebSearchToolResultBlockParamContent = array of WebSearchResultBlockParam { encrypted_content, title, type, 2 more } or WebSearchToolRequestError { error_code, type }
One of the following:
WebSearchToolResultError object{ error_code, type }
One of the following:
"invalid_tool_input"
"unavailable"
"max_uses_exceeded"
"too_many_requests"
"query_too_long"
"request_too_large"
type: "web_search_tool_result_error"
defaultweb_search_tool_result_error
WebSearchToolResultErrorCode = "invalid_tool_input" or "unavailable" or "max_uses_exceeded" or 3 more
One of the following:
"invalid_tool_input"
"unavailable"
"max_uses_exceeded"
"too_many_requests"
"query_too_long"
"request_too_large"

MessagesBatches

Create a Message Batch
POST/v1/messages/batches
Retrieve a Message Batch
GET/v1/messages/batches/{message_batch_id}
List Message Batches
GET/v1/messages/batches
Cancel a Message Batch
POST/v1/messages/batches/{message_batch_id}/cancel
Delete a Message Batch
DELETE/v1/messages/batches/{message_batch_id}
Retrieve Message Batch results
GET/v1/messages/batches/{message_batch_id}/results