Batches

创建消息 Batch

post /v1/messages/batches

发送一批消息创建请求。

Message Batches API 可用于一次处理多个 Messages API 请求。消息批处理创建后立即开始处理。批处理最多可能需要 24 小时才能完成。

在我们的用户指南中了解更多关于 Message Batches API 的信息

请求体参数

  • requests: array of object { custom_id, params }

    提示补全请求列表。每个都是创建消息的单独请求。

    • custom_id: string

      开发者为消息批处理中每个请求创建的 ID。用于将结果与请求进行匹配,因为结果可能不按请求顺序给出。

      在消息批处理中,每个请求必须唯一。

    • params: object { max_tokens, messages, model, 15 more }

      单个请求的 Messages API 创建参数。

      详见 Messages API 参考了解可用参数的完整文档。

      • max_tokens: number

        停止前要生成的最大 token 数量。

        请注意,我们的模型可能会在达到此最大值_之前_停止。此参数仅指定要生成的绝对最大 token 数量。

        设置为 0 可以填充提示缓存而不生成响应。

        不同模型对此参数有不同的最大值。详见模型了解详情。

      • messages: array of MessageParam

        输入消息。

        我们的模型经过训练,可处理交替的 userassistant 对话轮次。创建新 Message 时,您通过 messages 参数指定先前的对话轮次,然后模型生成对话中的下一条 Message。请求中连续的 userassistant 轮次将被合并为单个轮次。

        每条输入消息必须是包含 rolecontent 的对象。您可以指定单条 user 角色消息,也可以包含多条 userassistant 消息。

        如果最后一条消息使用 assistant 角色,响应内容将直接从该消息的内容继续。这可用于约束模型的部分响应。

        单条 user 消息示例:

        [{"role": "user", "content": "Hello, Claude"}]
        

        多轮对话示例:

        [
          {"role": "user", "content": "Hello there."},
          {"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"},
          {"role": "user", "content": "Can you explain LLMs in plain English?"},
        ]
        

        Claude 部分填充响应示例:

        [
          {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"},
          {"role": "assistant", "content": "The best answer is ("},
        ]
        

        每条输入消息的 content 可以是单个 string 或内容块数组,每个块具有特定的 type。使用 string 作为 content 是包含一个类型为 "text" 的内容块的数组的简写。以下输入消息是等效的:

        {"role": "user", "content": "Hello, Claude"}
        
        {"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]}
        

        详见输入示例

        请注意,如果您想包含系统提示,可以使用顶级 system 参数 -- Messages API 中输入消息没有 "system" 角色。

        单个请求最多可包含 100,000 条消息。

        • content: string or array of ContentBlockParam

          • string

          • array of ContentBlockParam

            • TextBlockParam object { text, type, cache_control, citations }

              • text: string

              • type: "text"

                • "text"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

                • type: "ephemeral"

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

                  缓存控制断点的生存时间。

                  这可能是以下值之一:

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

                  默认为 5m

                  • "5m"

                  • "1h"

              • citations: optional array of TextCitationParam

                • CitationCharLocationParam object { cited_text, document_index, document_title, 3 more }

                  • cited_text: string

                  • document_index: number

                  • document_title: string

                  • end_char_index: number

                  • start_char_index: number

                  • type: "char_location"

                    • "char_location"
                • CitationPageLocationParam object { cited_text, document_index, document_title, 3 more }

                  • cited_text: string

                  • document_index: number

                  • document_title: string

                  • end_page_number: number

                  • start_page_number: number

                  • type: "page_location"

                    • "page_location"
                • CitationContentBlockLocationParam object { cited_text, document_index, document_title, 3 more }

                  • cited_text: string

                    引用块范围的完整文本,已连接。

                    始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

                  • document_index: number

                  • document_title: string

                  • end_block_index: number

                    content 数组中引用块范围的排他性 0 基结束索引。

                    始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

                  • start_block_index: number

                    content 数组中第一个引用块的 0 基索引。

                  • type: "content_block_location"

                    • "content_block_location"
                • CitationWebSearchResultLocationParam object { cited_text, encrypted_index, title, 2 more }

                  • cited_text: string

                  • encrypted_index: string

                  • title: string

                  • type: "web_search_result_location"

                    • "web_search_result_location"
                  • url: string

                • CitationSearchResultLocationParam object { cited_text, end_block_index, search_result_index, 4 more }

                  • cited_text: string

                    引用块范围的完整文本,已连接。

                    始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

                  • end_block_index: number

                    content 数组中引用块范围的排他性 0 基结束索引。

                    始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

                  • search_result_index: number

                    在请求中所有 search_result 内容块中引用搜索结果的 0 基索引,按其在消息和工具结果中出现的顺序排列。

                    document_index 分开计数;服务器端 Web 搜索结果不包含在此计数中。

                  • source: string

                  • start_block_index: number

                    content 数组中第一个引用块的 0 基索引。

                  • title: string

                  • type: "search_result_location"

                    • "search_result_location"
            • ImageBlockParam object { source, type, cache_control }

              • source: Base64ImageSource or URLImageSource

                • Base64ImageSource object { data, media_type, type }

                  • data: string

                  • media_type: "image/jpeg" or "image/png" or "image/gif" or "image/webp"

                    • "image/jpeg"

                    • "image/png"

                    • "image/gif"

                    • "image/webp"

                  • type: "base64"

                    • "base64"
                • URLImageSource object { type, url }

                  • type: "url"

                    • "url"
                  • url: string

              • type: "image"

                • "image"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

            • DocumentBlockParam object { source, type, cache_control, 3 more }

              • source: Base64PDFSource or PlainTextSource or ContentBlockSource or URLPDFSource

                • Base64PDFSource object { data, media_type, type }

                  • data: string

                  • media_type: "application/pdf"

                    • "application/pdf"
                  • type: "base64"

                    • "base64"
                • PlainTextSource object { data, media_type, type }

                  • data: string

                  • media_type: "text/plain"

                    • "text/plain"
                  • type: "text"

                    • "text"
                • ContentBlockSource object { content, type }

                  • content: string or array of ContentBlockSourceContent

                    • string

                    • ContentBlockSourceContent = array of ContentBlockSourceContent

                      • TextBlockParam object { text, type, cache_control, citations }

                      • ImageBlockParam object { source, type, cache_control }

                  • type: "content"

                    • "content"
                • URLPDFSource object { type, url }

                  • type: "url"

                    • "url"
                  • url: string

              • type: "document"

                • "document"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

              • citations: optional CitationsConfigParam

                • enabled: optional boolean
              • context: optional string

              • title: optional string

            • SearchResultBlockParam object { content, source, title, 3 more }

              • content: array of TextBlockParam

                • text: string

                • type: "text"

                • cache_control: optional CacheControlEphemeral

                  在此内容块创建缓存控制断点。

                • citations: optional array of TextCitationParam

              • source: string

              • title: string

              • type: "search_result"

                • "search_result"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

              • citations: optional CitationsConfigParam

            • ThinkingBlockParam object { signature, thinking, type }

              • signature: string

              • thinking: string

              • type: "thinking"

                • "thinking"
            • RedactedThinkingBlockParam object { data, type }

              • data: string

              • type: "redacted_thinking"

                • "redacted_thinking"
            • ToolUseBlockParam object { id, input, name, 3 more }

              • id: string

              • input: map[unknown]

              • name: string

              • type: "tool_use"

                • "tool_use"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

              • caller: optional DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                  • type: "direct"

                    • "direct"
                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                  • tool_id: string

                  • type: "code_execution_20250825"

                    • "code_execution_20250825"
                • ServerToolCaller20260120 object { tool_id, type }

                  • tool_id: string

                  • type: "code_execution_20260120"

                    • "code_execution_20260120"
            • ToolResultBlockParam object { tool_use_id, type, cache_control, 2 more }

              • tool_use_id: string

              • type: "tool_result"

                • "tool_result"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

              • content: optional string or array of TextBlockParam or ImageBlockParam or SearchResultBlockParam or 2 more

                • string

                • array of TextBlockParam or ImageBlockParam or SearchResultBlockParam or 2 more

                  • TextBlockParam object { text, type, cache_control, citations }

                  • ImageBlockParam object { source, type, cache_control }

                  • SearchResultBlockParam object { content, source, title, 3 more }

                  • DocumentBlockParam object { source, type, cache_control, 3 more }

                  • ToolReferenceBlockParam object { tool_name, type, cache_control }

                    可包含在 tool_result 内容中的工具引用块。

                    • tool_name: string

                    • type: "tool_reference"

                      • "tool_reference"
                    • cache_control: optional CacheControlEphemeral

                      在此内容块创建缓存控制断点。

              • is_error: optional boolean

            • ServerToolUseBlockParam object { id, input, name, 3 more }

              • id: string

              • input: map[unknown]

              • name: "web_search" or "web_fetch" or "code_execution" or 4 more

                • "web_search"

                • "web_fetch"

                • "code_execution"

                • "bash_code_execution"

                • "text_editor_code_execution"

                • "tool_search_tool_regex"

                • "tool_search_tool_bm25"

              • type: "server_tool_use"

                • "server_tool_use"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

              • caller: optional DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

            • WebSearchToolResultBlockParam object { content, tool_use_id, type, 2 more }

              • content: WebSearchToolResultBlockParamContent

                • WebSearchToolResultBlockItem = array of WebSearchResultBlockParam

                  • encrypted_content: string

                  • title: string

                  • type: "web_search_result"

                    • "web_search_result"
                  • url: string

                  • page_age: optional string

                • WebSearchToolRequestError object { error_code, type }

                  • error_code: WebSearchToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "max_uses_exceeded"

                    • "too_many_requests"

                    • "query_too_long"

                    • "request_too_large"

                  • type: "web_search_tool_result_error"

                    • "web_search_tool_result_error"
              • tool_use_id: string

              • type: "web_search_tool_result"

                • "web_search_tool_result"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

              • caller: optional DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

            • WebFetchToolResultBlockParam object { content, tool_use_id, type, 2 more }

              • content: WebFetchToolResultErrorBlockParam or WebFetchBlockParam

                • WebFetchToolResultErrorBlockParam object { error_code, type }

                  • error_code: WebFetchToolResultErrorCode

                    • "invalid_tool_input"

                    • "url_too_long"

                    • "url_not_allowed"

                    • "url_not_accessible"

                    • "unsupported_content_type"

                    • "too_many_requests"

                    • "max_uses_exceeded"

                    • "unavailable"

                  • type: "web_fetch_tool_result_error"

                    • "web_fetch_tool_result_error"
                • WebFetchBlockParam object { content, type, url, retrieved_at }

                  • content: DocumentBlockParam

                  • type: "web_fetch_result"

                    • "web_fetch_result"
                  • url: string

                    获取的内容 URL

                  • retrieved_at: optional string

                    获取内容时的 ISO 8601 时间戳

              • tool_use_id: string

              • type: "web_fetch_tool_result"

                • "web_fetch_tool_result"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

              • caller: optional DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

            • CodeExecutionToolResultBlockParam object { content, tool_use_id, type, cache_control }

              • content: CodeExecutionToolResultBlockParamContent

                PFC + web_search 结果的带加密标准输出的代码执行结果。

                • CodeExecutionToolResultErrorParam object { error_code, type }

                  • error_code: CodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                  • type: "code_execution_tool_result_error"

                    • "code_execution_tool_result_error"
                • CodeExecutionResultBlockParam object { content, return_code, stderr, 2 more }

                  • content: array of CodeExecutionOutputBlockParam

                    • file_id: string

                    • type: "code_execution_output"

                      • "code_execution_output"
                  • return_code: number

                  • stderr: string

                  • stdout: string

                  • type: "code_execution_result"

                    • "code_execution_result"
                • EncryptedCodeExecutionResultBlockParam object { content, encrypted_stdout, return_code, 2 more }

                  PFC + web_search 结果的带加密标准输出的代码执行结果。

                  • content: array of CodeExecutionOutputBlockParam

                    • file_id: string

                    • type: "code_execution_output"

                  • encrypted_stdout: string

                  • return_code: number

                  • stderr: string

                  • type: "encrypted_code_execution_result"

                    • "encrypted_code_execution_result"
              • tool_use_id: string

              • type: "code_execution_tool_result"

                • "code_execution_tool_result"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

            • BashCodeExecutionToolResultBlockParam object { content, tool_use_id, type, cache_control }

              • content: BashCodeExecutionToolResultErrorParam or BashCodeExecutionResultBlockParam

                • BashCodeExecutionToolResultErrorParam object { error_code, type }

                  • error_code: BashCodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                    • "output_file_too_large"

                  • type: "bash_code_execution_tool_result_error"

                    • "bash_code_execution_tool_result_error"
                • BashCodeExecutionResultBlockParam object { content, return_code, stderr, 2 more }

                  • content: array of BashCodeExecutionOutputBlockParam

                    • file_id: string

                    • type: "bash_code_execution_output"

                      • "bash_code_execution_output"
                  • return_code: number

                  • stderr: string

                  • stdout: string

                  • type: "bash_code_execution_result"

                    • "bash_code_execution_result"
              • tool_use_id: string

              • type: "bash_code_execution_tool_result"

                • "bash_code_execution_tool_result"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

            • TextEditorCodeExecutionToolResultBlockParam object { content, tool_use_id, type, cache_control }

              • content: TextEditorCodeExecutionToolResultErrorParam or TextEditorCodeExecutionViewResultBlockParam or TextEditorCodeExecutionCreateResultBlockParam or TextEditorCodeExecutionStrReplaceResultBlockParam

                • TextEditorCodeExecutionToolResultErrorParam object { error_code, type, error_message }

                  • error_code: TextEditorCodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                    • "file_not_found"

                  • type: "text_editor_code_execution_tool_result_error"

                    • "text_editor_code_execution_tool_result_error"
                  • error_message: optional string

                • TextEditorCodeExecutionViewResultBlockParam object { content, file_type, type, 3 more }

                  • content: string

                  • file_type: "text" or "image" or "pdf"

                    • "text"

                    • "image"

                    • "pdf"

                  • type: "text_editor_code_execution_view_result"

                    • "text_editor_code_execution_view_result"
                  • num_lines: optional number

                  • start_line: optional number

                  • total_lines: optional number

                • TextEditorCodeExecutionCreateResultBlockParam object { is_file_update, type }

                  • is_file_update: boolean

                  • type: "text_editor_code_execution_create_result"

                    • "text_editor_code_execution_create_result"
                • TextEditorCodeExecutionStrReplaceResultBlockParam object { type, lines, new_lines, 3 more }

                  • type: "text_editor_code_execution_str_replace_result"

                    • "text_editor_code_execution_str_replace_result"
                  • lines: optional array of string

                  • new_lines: optional number

                  • new_start: optional number

                  • old_lines: optional number

                  • old_start: optional number

              • tool_use_id: string

              • type: "text_editor_code_execution_tool_result"

                • "text_editor_code_execution_tool_result"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

            • ToolSearchToolResultBlockParam object { content, tool_use_id, type, cache_control }

              • content: ToolSearchToolResultErrorParam or ToolSearchToolSearchResultBlockParam

                • ToolSearchToolResultErrorParam object { error_code, type }

                  • error_code: ToolSearchToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                  • type: "tool_search_tool_result_error"

                    • "tool_search_tool_result_error"
                • ToolSearchToolSearchResultBlockParam object { tool_references, type }

                  • tool_references: array of ToolReferenceBlockParam

                    • tool_name: string

                    • type: "tool_reference"

                    • cache_control: optional CacheControlEphemeral

                      在此内容块创建缓存控制断点。

                  • type: "tool_search_tool_search_result"

                    • "tool_search_tool_search_result"
              • tool_use_id: string

              • type: "tool_search_tool_result"

                • "tool_search_tool_result"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

            • ContainerUploadBlockParam object { file_id, type, cache_control }

              表示要上传到容器的文件的内容块 通过此块上传的文件将在容器的输入目录中可用。

              • file_id: string

              • type: "container_upload"

                • "container_upload"
              • cache_control: optional CacheControlEphemeral

                在此内容块创建缓存控制断点。

        • role: "user" or "assistant"

          • "user"

          • "assistant"

      • model: Model

        将完成您的提示的模型。

        详见模型了解更多信息和选项。

        • "claude-opus-4-7" or "claude-mythos-preview" or "claude-opus-4-6" or 14 more

          将完成您的提示的模型。

          详见模型了解更多信息和选项。

          • "claude-opus-4-7"

            用于长时间运行的智能体和编程的前沿智能

          • "claude-mythos-preview"

            新一代智能,在编程和网络安全方面最强

          • "claude-opus-4-6"

            用于长时间运行的智能体和编程的前沿智能

          • "claude-sonnet-4-6"

            速度与智能的最佳组合

          • "claude-haiku-4-5"

            具有接近前沿智能的最快模型

          • "claude-haiku-4-5-20251001"

            具有接近前沿智能的最快模型

          • "claude-opus-4-5"

            结合最高智能与实用性能的高级模型

          • "claude-opus-4-5-20251101"

            结合最高智能与实用性能的高级模型

          • "claude-sonnet-4-5"

            用于智能体和编程的高性能模型

          • "claude-sonnet-4-5-20250929"

            用于智能体和编程的高性能模型

          • "claude-opus-4-1"

            用于专业复杂任务的卓越模型

          • "claude-opus-4-1-20250805"

            用于专业复杂任务的卓越模型

          • "claude-opus-4-0"

            用于复杂任务的强大模型

          • "claude-opus-4-20250514"

            用于复杂任务的强大模型

          • "claude-sonnet-4-0"

            具有扩展思考能力的高性能模型

          • "claude-sonnet-4-20250514"

            具有扩展思考能力的高性能模型

          • "claude-3-haiku-20240307"

            快速且经济高效的模型

        • string

      • cache_control: optional CacheControlEphemeral

        顶级缓存控制自动将 cache_control 标记应用于请求中最后一个可缓存块。

      • container: optional string

        用于跨请求复用的容器标识符。

      • inference_geo: optional string

        指定推理处理的地理区域。如果未指定,则使用工作区的 default_inference_geo

      • metadata: optional Metadata

        描述请求元数据的对象。

        • user_id: optional string

          与请求关联的用户的外部标识符。

          这应该是 uuid、哈希值或其他不透明标识符。Anthropic 可能会使用此 ID 来帮助检测滥用行为。请勿包含任何可识别信息,如姓名、电子邮件地址或电话号码。

      • output_config: optional OutputConfig

        模型输出的配置选项,例如输出格式。

        • effort: optional "low" or "medium" or "high" or 2 more

          所有可用的努力级别。

          • "low"

          • "medium"

          • "high"

          • "xhigh"

          • "max"

        • format: optional JSONOutputFormat

          用于指定 Claude 响应输出格式的模式。详见结构化输出

          • schema: map[unknown]

            格式的 JSON 模式

          • type: "json_schema"

            • "json_schema"
      • service_tier: optional "auto" or "standard_only"

        确定此请求是使用优先容量(如果可用)还是标准容量。

        Anthropic 为您的 API 请求提供不同级别的服务。详见服务层级了解详情。

        • "auto"

        • "standard_only"

      • stop_sequences: optional array of string

        将导致模型停止生成的自定义文本序列。

        我们的模型通常会在自然完成其轮次时停止,这将导致响应 stop_reason"end_turn"

        如果您希望模型在遇到自定义文本字符串时停止生成,可以使用 stop_sequences 参数。如果模型遇到自定义序列之一,响应 stop_reason 值将为 "stop_sequence",响应 stop_sequence 值将包含匹配的停止序列。

      • stream: optional boolean

        是否使用服务器发送事件增量式地流式传输响应。

        详见流式传输了解更多详情。

      • system: optional string or array of TextBlockParam

        系统提示。

        系统提示是一种向 Claude 提供上下文和指令的方式,例如指定特定目标或角色。请参阅我们的系统提示指南

        • string

        • array of TextBlockParam

          • text: string

          • type: "text"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • citations: optional array of TextCitationParam

      • temperature: optional number

        注入响应的随机性程度。

        默认为 1.0。范围从 0.01.0。对于分析/多选任务使用接近 0.0temperature,对于创意和生成任务使用接近 1.0temperature

        请注意,即使 temperature0.0,结果也不会完全确定。

      • thinking: optional ThinkingConfigParam

        启用 Claude 扩展思考的配置。

        启用后,响应包含 thinking 内容块,显示 Claude 在最终答案之前的思考过程。需要最少 1,024 个 token 的预算,并计入您的 max_tokens 限制。

        详见扩展思考了解更多详情。

        • ThinkingConfigEnabled object { budget_tokens, type, display }

          • budget_tokens: number

            确定 Claude 可用于其内部推理过程的 token 数量。较大的预算可以实现对复杂问题的更彻底分析,提高响应质量。

            必须 ≥1024 且小于 max_tokens

            详见扩展思考了解更多详情。

          • type: "enabled"

            • "enabled"
          • display: optional "summarized" or "omitted"

            控制思考内容在响应中的显示方式。设置为 summarized 时,正常返回思考内容。设置为 omitted 时,思考内容被编辑但返回签名以保持多轮连续性。默认为 summarized

            • "summarized"

            • "omitted"

        • ThinkingConfigDisabled object { type }

          • type: "disabled"

            • "disabled"
        • ThinkingConfigAdaptive object { type, display }

          • type: "adaptive"

            • "adaptive"
          • display: optional "summarized" or "omitted"

            控制思考内容在响应中的显示方式。设置为 summarized 时,正常返回思考内容。设置为 omitted 时,思考内容被编辑但返回签名以保持多轮连续性。默认为 summarized

            • "summarized"

            • "omitted"

      • tool_choice: optional ToolChoice

        模型应如何使用提供的工具。模型可以使用特定工具、任何可用工具、自行决定或完全不使用工具。

        • ToolChoiceAuto object { type, disable_parallel_tool_use }

          模型将自动决定是否使用工具。

          • type: "auto"

            • "auto"
          • disable_parallel_tool_use: optional boolean

            是否禁用并行工具使用。

            默认为 false。如果设置为 true,模型将最多输出一个工具使用。

        • ToolChoiceAny object { type, disable_parallel_tool_use }

          模型将使用任何可用工具。

          • type: "any"

            • "any"
          • disable_parallel_tool_use: optional boolean

            是否禁用并行工具使用。

            默认为 false。如果设置为 true,模型将恰好输出一个工具使用。

        • ToolChoiceTool object { name, type, disable_parallel_tool_use }

          模型将使用 tool_choice.name 指定的工具。

          • name: string

            要使用的工具的名称。

          • type: "tool"

            • "tool"
          • disable_parallel_tool_use: optional boolean

            是否禁用并行工具使用。

            默认为 false。如果设置为 true,模型将恰好输出一个工具使用。

        • ToolChoiceNone object { type }

          模型将不被允许使用工具。

          • type: "none"

            • "none"
      • tools: optional array of ToolUnion

        模型可能使用的工具定义。

        如果您在 API 请求中包含 tools,模型可能会返回表示模型使用这些工具的 tool_use 内容块。然后,您可以使用模型生成的工具输入运行这些工具,并可选地使用 tool_result 内容块将结果返回给模型。

        有两种类型的工具:客户端工具服务器端工具。以下描述的行为适用于客户端工具。有关服务器端工具,请参阅其各自的文档,因为每个工具都有自己的行为(例如 Web 搜索工具)。

        每个工具定义包括:

        • name: 工具名称。
        • description: 可选但强烈推荐的工具描述。
        • input_schema:工具 input 形状的 JSON schema,模型将在 tool_use 输出内容块中生成该形状。

        例如,如果您将 tools 定义为:

        [
          {
            "name": "get_stock_price",
            "description": "Get the current stock price for a given ticker symbol.",
            "input_schema": {
              "type": "object",
              "properties": {
                "ticker": {
                  "type": "string",
                  "description": "The stock ticker symbol, e.g. AAPL for Apple Inc."
                }
              },
              "required": ["ticker"]
            }
          }
        ]
        

        然后询问模型"今天标普 500 指数是多少?",模型可能会在响应中生成如下 tool_use 内容块:

        [
          {
            "type": "tool_use",
            "id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV",
            "name": "get_stock_price",
            "input": { "ticker": "^GSPC" }
          }
        ]
        

        然后您可以使用 {"ticker": "^GSPC"} 作为输入运行您的 get_stock_price 工具,并在后续 user 消息中将以下内容返回给模型:

        [
          {
            "type": "tool_result",
            "tool_use_id": "toolu_01D7FLrfh4GYq7yT1ULFeyMV",
            "content": "259.75 USD"
          }
        ]
        

        工具可用于包含运行客户端工具和函数的工作流,或更一般地说,当您希望模型生成特定 JSON 结构的输出时。

        详见我们的指南了解更多详情。

        • Tool object { input_schema, name, allowed_callers, 7 more }

          • input_schema: object { type, properties, required }

            此工具输入的 JSON schema

            这定义了您的工具接受和模型将生成的 input 的形状。

            • type: "object"

              • "object"
            • properties: optional map[unknown]

            • required: optional array of string

          • name: string

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • description: optional string

            此工具的功能描述。

            工具描述应尽可能详细。模型拥有的关于工具功能和使用方式的信息越多,其表现就越好。您可以使用自然语言描述来强调工具输入 JSON 模式的重要方面。

          • eager_input_streaming: optional boolean

            为此工具启用即时输入流。当为 true 时,工具输入参数将在生成时增量流式传输,类型将即时推断,而不是缓冲完整的 JSON 输出。当为 false 时,即使细粒度工具流 beta 处于活动状态,也会禁用此工具的流。当为 null(默认)时,使用基于 beta 头的默认行为。

          • input_examples: optional array of map[unknown]

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

          • type: optional "custom"

            • "custom"
        • ToolBash20250124 object { name, type, allowed_callers, 4 more }

          • name: "bash"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "bash"
          • type: "bash_20250124"

            • "bash_20250124"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • input_examples: optional array of map[unknown]

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • CodeExecutionTool20250522 object { name, type, allowed_callers, 3 more }

          • name: "code_execution"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "code_execution"
          • type: "code_execution_20250522"

            • "code_execution_20250522"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • CodeExecutionTool20250825 object { name, type, allowed_callers, 3 more }

          • name: "code_execution"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "code_execution"
          • type: "code_execution_20250825"

            • "code_execution_20250825"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • CodeExecutionTool20260120 object { name, type, allowed_callers, 3 more }

          具有 REPL 状态持久化的代码执行工具(守护进程模式 + gVisor 检查点)。

          • name: "code_execution"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "code_execution"
          • type: "code_execution_20260120"

            • "code_execution_20260120"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • MemoryTool20250818 object { name, type, allowed_callers, 4 more }

          • name: "memory"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "memory"
          • type: "memory_20250818"

            • "memory_20250818"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • input_examples: optional array of map[unknown]

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • ToolTextEditor20250124 object { name, type, allowed_callers, 4 more }

          • name: "str_replace_editor"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "str_replace_editor"
          • type: "text_editor_20250124"

            • "text_editor_20250124"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • input_examples: optional array of map[unknown]

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • ToolTextEditor20250429 object { name, type, allowed_callers, 4 more }

          • name: "str_replace_based_edit_tool"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "str_replace_based_edit_tool"
          • type: "text_editor_20250429"

            • "text_editor_20250429"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • input_examples: optional array of map[unknown]

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • ToolTextEditor20250728 object { name, type, allowed_callers, 5 more }

          • name: "str_replace_based_edit_tool"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "str_replace_based_edit_tool"
          • type: "text_editor_20250728"

            • "text_editor_20250728"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • input_examples: optional array of map[unknown]

          • max_characters: optional number

            查看文件时显示的最大字符数。如果未指定,默认显示完整文件。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • WebSearchTool20250305 object { name, type, allowed_callers, 7 more }

          • name: "web_search"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "web_search"
          • type: "web_search_20250305"

            • "web_search_20250305"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • allowed_domains: optional array of string

            如果提供,只有这些域名会包含在结果中。不能与 blocked_domains 一起使用。

          • blocked_domains: optional array of string

            如果提供,这些域名永远不会出现在结果中。不能与 allowed_domains 一起使用。

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • max_uses: optional number

            工具在 API 请求中可使用的最大次数。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

          • user_location: optional UserLocation

            用户位置参数。用于提供更相关的搜索结果。

            • type: "approximate"

              • "approximate"
            • city: optional string

              用户的城市。

            • country: optional string

              用户的两字母 ISO 国家代码

            • region: optional string

              用户的区域。

            • timezone: optional string

              用户的 IANA 时区

        • WebFetchTool20250910 object { name, type, allowed_callers, 8 more }

          • name: "web_fetch"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "web_fetch"
          • type: "web_fetch_20250910"

            • "web_fetch_20250910"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • allowed_domains: optional array of string

            允许获取的域名列表

          • blocked_domains: optional array of string

            阻止获取的域名列表

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • citations: optional CitationsConfigParam

            获取文档的引用配置。默认禁用引用。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • max_content_tokens: optional number

            在上下文中包含网页文本内容所使用的最大 token 数量。该限制是近似的,不适用于 PDF 等二进制内容。

          • max_uses: optional number

            工具在 API 请求中可使用的最大次数。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • WebSearchTool20260209 object { name, type, allowed_callers, 7 more }

          • name: "web_search"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "web_search"
          • type: "web_search_20260209"

            • "web_search_20260209"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • allowed_domains: optional array of string

            如果提供,只有这些域名会包含在结果中。不能与 blocked_domains 一起使用。

          • blocked_domains: optional array of string

            如果提供,这些域名永远不会出现在结果中。不能与 allowed_domains 一起使用。

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • max_uses: optional number

            工具在 API 请求中可使用的最大次数。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

          • user_location: optional UserLocation

            用户位置参数。用于提供更相关的搜索结果。

        • WebFetchTool20260209 object { name, type, allowed_callers, 8 more }

          • name: "web_fetch"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "web_fetch"
          • type: "web_fetch_20260209"

            • "web_fetch_20260209"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • allowed_domains: optional array of string

            允许获取的域名列表

          • blocked_domains: optional array of string

            阻止获取的域名列表

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • citations: optional CitationsConfigParam

            获取文档的引用配置。默认禁用引用。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • max_content_tokens: optional number

            在上下文中包含网页文本内容所使用的最大 token 数量。该限制是近似的,不适用于 PDF 等二进制内容。

          • max_uses: optional number

            工具在 API 请求中可使用的最大次数。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • WebFetchTool20260309 object { name, type, allowed_callers, 9 more }

          具有 use_cache 参数的 Web 获取工具,用于绕过缓存内容。

          • name: "web_fetch"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "web_fetch"
          • type: "web_fetch_20260309"

            • "web_fetch_20260309"
          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • allowed_domains: optional array of string

            允许获取的域名列表

          • blocked_domains: optional array of string

            阻止获取的域名列表

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • citations: optional CitationsConfigParam

            获取文档的引用配置。默认禁用引用。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • max_content_tokens: optional number

            在上下文中包含网页文本内容所使用的最大 token 数量。该限制是近似的,不适用于 PDF 等二进制内容。

          • max_uses: optional number

            工具在 API 请求中可使用的最大次数。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

          • use_cache: optional boolean

            是否使用缓存内容。设置为 false 可绕过缓存并获取新内容。仅在用户明确请求新内容或获取快速变化的源时设置为 false。

        • ToolSearchToolBm25_20251119 object { name, type, allowed_callers, 3 more }

          • name: "tool_search_tool_bm25"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "tool_search_tool_bm25"
          • type: "tool_search_tool_bm25_20251119" or "tool_search_tool_bm25"

            • "tool_search_tool_bm25_20251119"

            • "tool_search_tool_bm25"

          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

        • ToolSearchToolRegex20251119 object { name, type, allowed_callers, 3 more }

          • name: "tool_search_tool_regex"

            工具名称。

            这是模型和 tool_use 块中调用工具的方式。

            • "tool_search_tool_regex"
          • type: "tool_search_tool_regex_20251119" or "tool_search_tool_regex"

            • "tool_search_tool_regex_20251119"

            • "tool_search_tool_regex"

          • allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120"

            • "direct"

            • "code_execution_20250825"

            • "code_execution_20260120"

          • cache_control: optional CacheControlEphemeral

            在此内容块创建缓存控制断点。

          • defer_loading: optional boolean

            如果为 true,工具不会包含在初始系统提示中。仅在通过工具搜索的 tool_reference 返回时加载。

          • strict: optional boolean

            当为 true 时,保证对工具名称和输入进行模式验证

      • top_k: optional number

        仅从每个后续 token 的前 K 个选项中采样。

        用于消除"长尾"低概率响应。在此了解更多技术细节

        仅建议高级用例使用。

      • top_p: optional number

        使用核采样。

        在核采样中,我们按概率递减顺序计算所有选项的累积分布,并在达到 top_p 指定的特定概率时截断。

        仅建议高级用例使用。

返回值

  • MessageBatch object { id, archived_at, cancel_initiated_at, 7 more }

    • id: string

      唯一对象标识符。

      ID 的格式和长度可能会随时间变化。

    • archived_at: string

      RFC 3339 日期时间字符串,表示消息批处理被归档且其结果变为不可用的时间。

    • cancel_initiated_at: string

      RFC 3339 日期时间字符串,表示为消息批处理启动取消的时间。仅在启动取消时指定。

    • created_at: string

      RFC 3339 日期时间字符串,表示消息批处理创建的时间。

    • ended_at: string

      RFC 3339 日期时间字符串,表示消息批处理处理结束的时间。仅在处理结束后指定。

      当消息批处理中的每个请求已成功、出错、取消或过期时,处理结束。

    • expires_at: string

      RFC 3339 日期时间字符串,表示消息批处理将过期并结束处理的时间,即创建后 24 小时。

    • processing_status: "in_progress" or "canceling" or "ended"

      消息批处理的处理状态。

      • "in_progress"

      • "canceling"

      • "ended"

    • request_counts: MessageBatchRequestCounts

      按状态分类统计消息批处理中的请求。

      请求从 processing 开始,只有在整个批处理处理结束后才会转移到其他状态。所有值的总和始终与批处理中的请求总数匹配。

      • canceled: number

        消息批处理中已取消的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • errored: number

        消息批处理中遇到错误的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • expired: number

        消息批处理中已过期的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • processing: number

        消息批处理中正在处理的请求数。

      • succeeded: number

        消息批处理中已成功完成的请求数。

        在整个消息批处理处理结束之前,此值为零。

    • results_url: string

      包含消息批处理请求结果的 .jsonl 文件的 URL。仅在处理结束后指定。

      文件中的结果不保证与请求的顺序相同。使用 custom_id 字段将结果与请求进行匹配。

    • type: "message_batch"

      对象类型。

      对于消息批处理,始终为 "message_batch"

      • "message_batch"

Example

curl https://api.anthropic.com/v1/messages/batches \
    -H 'Content-Type: application/json' \
    -H 'anthropic-version: 2023-06-01' \
    -H "X-Api-Key: $ANTHROPIC_API_KEY" \
    -d '{
          "requests": [
            {
              "custom_id": "my-custom-id-1",
              "params": {
                "max_tokens": 1024,
                "messages": [
                  {
                    "content": "Hello, world",
                    "role": "user"
                  }
                ],
                "model": "claude-opus-4-6"
              }
            }
          ]
        }'

响应

{
  "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF",
  "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",
  "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",
  "type": "message_batch"
}

获取消息批处理

get /v1/messages/batches/{message_batch_id}

此端点是幂等的,可用于轮询消息批处理的完成状态。要访问消息批处理的结果,请向响应中的 results_url 字段发出请求。

在我们的用户指南中了解更多关于 Message Batches API 的信息

路径参数

  • message_batch_id: string

    消息批处理的 ID。

返回值

  • MessageBatch object { id, archived_at, cancel_initiated_at, 7 more }

    • id: string

      唯一对象标识符。

      ID 的格式和长度可能会随时间变化。

    • archived_at: string

      RFC 3339 日期时间字符串,表示消息批处理被归档且其结果变为不可用的时间。

    • cancel_initiated_at: string

      RFC 3339 日期时间字符串,表示为消息批处理启动取消的时间。仅在启动取消时指定。

    • created_at: string

      RFC 3339 日期时间字符串,表示消息批处理创建的时间。

    • ended_at: string

      RFC 3339 日期时间字符串,表示消息批处理处理结束的时间。仅在处理结束后指定。

      当消息批处理中的每个请求已成功、出错、取消或过期时,处理结束。

    • expires_at: string

      RFC 3339 日期时间字符串,表示消息批处理将过期并结束处理的时间,即创建后 24 小时。

    • processing_status: "in_progress" or "canceling" or "ended"

      消息批处理的处理状态。

      • "in_progress"

      • "canceling"

      • "ended"

    • request_counts: MessageBatchRequestCounts

      按状态分类统计消息批处理中的请求。

      请求从 processing 开始,只有在整个批处理处理结束后才会转移到其他状态。所有值的总和始终与批处理中的请求总数匹配。

      • canceled: number

        消息批处理中已取消的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • errored: number

        消息批处理中遇到错误的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • expired: number

        消息批处理中已过期的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • processing: number

        消息批处理中正在处理的请求数。

      • succeeded: number

        消息批处理中已成功完成的请求数。

        在整个消息批处理处理结束之前,此值为零。

    • results_url: string

      包含消息批处理请求结果的 .jsonl 文件的 URL。仅在处理结束后指定。

      文件中的结果不保证与请求的顺序相同。使用 custom_id 字段将结果与请求进行匹配。

    • type: "message_batch"

      对象类型。

      对于消息批处理,始终为 "message_batch"

      • "message_batch"

Example

curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID \
    -H 'anthropic-version: 2023-06-01' \
    -H "X-Api-Key: $ANTHROPIC_API_KEY"

响应

{
  "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF",
  "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",
  "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",
  "type": "message_batch"
}

列出消息批处理

get /v1/messages/batches

列出工作区中的所有消息批处理。最近创建的批处理优先返回。

在我们的用户指南中了解更多关于 Message Batches API 的信息

查询参数

  • after_id: optional string

    用作分页游标的对象 ID。提供时,返回此对象之后的结果页。

  • before_id: optional string

    用作分页游标的对象 ID。提供时,返回此对象之前的结果页。

  • limit: optional number

    每页返回的项目数。

    默认为 20。范围从 11000

返回值

  • data: array of MessageBatch

    • id: string

      唯一对象标识符。

      ID 的格式和长度可能会随时间变化。

    • archived_at: string

      RFC 3339 日期时间字符串,表示消息批处理被归档且其结果变为不可用的时间。

    • cancel_initiated_at: string

      RFC 3339 日期时间字符串,表示为消息批处理启动取消的时间。仅在启动取消时指定。

    • created_at: string

      RFC 3339 日期时间字符串,表示消息批处理创建的时间。

    • ended_at: string

      RFC 3339 日期时间字符串,表示消息批处理处理结束的时间。仅在处理结束后指定。

      当消息批处理中的每个请求已成功、出错、取消或过期时,处理结束。

    • expires_at: string

      RFC 3339 日期时间字符串,表示消息批处理将过期并结束处理的时间,即创建后 24 小时。

    • processing_status: "in_progress" or "canceling" or "ended"

      消息批处理的处理状态。

      • "in_progress"

      • "canceling"

      • "ended"

    • request_counts: MessageBatchRequestCounts

      按状态分类统计消息批处理中的请求。

      请求从 processing 开始,只有在整个批处理处理结束后才会转移到其他状态。所有值的总和始终与批处理中的请求总数匹配。

      • canceled: number

        消息批处理中已取消的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • errored: number

        消息批处理中遇到错误的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • expired: number

        消息批处理中已过期的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • processing: number

        消息批处理中正在处理的请求数。

      • succeeded: number

        消息批处理中已成功完成的请求数。

        在整个消息批处理处理结束之前,此值为零。

    • results_url: string

      包含消息批处理请求结果的 .jsonl 文件的 URL。仅在处理结束后指定。

      文件中的结果不保证与请求的顺序相同。使用 custom_id 字段将结果与请求进行匹配。

    • type: "message_batch"

      对象类型。

      对于消息批处理,始终为 "message_batch"

      • "message_batch"
  • first_id: string

    data 列表中的第一个 ID。可用作上一页的 before_id

  • has_more: boolean

    指示在请求的页面方向上是否有更多结果。

  • last_id: string

    data 列表中的最后一个 ID。可用作下一页的 after_id

Example

curl https://api.anthropic.com/v1/messages/batches \
    -H 'anthropic-version: 2023-06-01' \
    -H "X-Api-Key: $ANTHROPIC_API_KEY"

响应

{
  "data": [
    {
      "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF",
      "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",
      "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",
      "type": "message_batch"
    }
  ],
  "first_id": "first_id",
  "has_more": true,
  "last_id": "last_id"
}

取消消息批处理

post /v1/messages/batches/{message_batch_id}/cancel

批处理可在处理结束前的任何时候取消。一旦启动取消,批处理进入 canceling 状态,此时系统可能会在最终确定取消之前完成任何正在进行的、不可中断的请求。

已取消的请求数量在 request_counts 中指定。要确定哪些请求被取消,请检查批处理中的各个结果。请注意,如果请求不可中断,取消操作可能不会导致任何请求被取消。

在我们的用户指南中了解更多关于 Message Batches API 的信息

路径参数

  • message_batch_id: string

    消息批处理的 ID。

返回值

  • MessageBatch object { id, archived_at, cancel_initiated_at, 7 more }

    • id: string

      唯一对象标识符。

      ID 的格式和长度可能会随时间变化。

    • archived_at: string

      RFC 3339 日期时间字符串,表示消息批处理被归档且其结果变为不可用的时间。

    • cancel_initiated_at: string

      RFC 3339 日期时间字符串,表示为消息批处理启动取消的时间。仅在启动取消时指定。

    • created_at: string

      RFC 3339 日期时间字符串,表示消息批处理创建的时间。

    • ended_at: string

      RFC 3339 日期时间字符串,表示消息批处理处理结束的时间。仅在处理结束后指定。

      当消息批处理中的每个请求已成功、出错、取消或过期时,处理结束。

    • expires_at: string

      RFC 3339 日期时间字符串,表示消息批处理将过期并结束处理的时间,即创建后 24 小时。

    • processing_status: "in_progress" or "canceling" or "ended"

      消息批处理的处理状态。

      • "in_progress"

      • "canceling"

      • "ended"

    • request_counts: MessageBatchRequestCounts

      按状态分类统计消息批处理中的请求。

      请求从 processing 开始,只有在整个批处理处理结束后才会转移到其他状态。所有值的总和始终与批处理中的请求总数匹配。

      • canceled: number

        消息批处理中已取消的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • errored: number

        消息批处理中遇到错误的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • expired: number

        消息批处理中已过期的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • processing: number

        消息批处理中正在处理的请求数。

      • succeeded: number

        消息批处理中已成功完成的请求数。

        在整个消息批处理处理结束之前,此值为零。

    • results_url: string

      包含消息批处理请求结果的 .jsonl 文件的 URL。仅在处理结束后指定。

      文件中的结果不保证与请求的顺序相同。使用 custom_id 字段将结果与请求进行匹配。

    • type: "message_batch"

      对象类型。

      对于消息批处理,始终为 "message_batch"

      • "message_batch"

Example

curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/cancel \
    -X POST \
    -H 'anthropic-version: 2023-06-01' \
    -H "X-Api-Key: $ANTHROPIC_API_KEY"

响应

{
  "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF",
  "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",
  "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",
  "type": "message_batch"
}

删除消息批处理

delete /v1/messages/batches/{message_batch_id}

删除消息批处理。

消息批处理只能在完成处理后删除。如果您想删除正在处理的批处理,必须先取消它。

在我们的用户指南中了解更多关于 Message Batches API 的信息

路径参数

  • message_batch_id: string

    消息批处理的 ID。

返回值

  • DeletedMessageBatch object { id, type }

    • id: string

      消息批处理的 ID。

    • type: "message_batch_deleted"

      Deleted object type.

      对于消息批处理,始终为 "message_batch_deleted"

      • "message_batch_deleted"

Example

curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID \
    -X DELETE \
    -H 'anthropic-version: 2023-06-01' \
    -H "X-Api-Key: $ANTHROPIC_API_KEY"

响应

{
  "id": "msgbatch_013Zva2CMHLNnXjNJJKqJ2EF",
  "type": "message_batch_deleted"
}

获取消息批处理结果

get /v1/messages/batches/{message_batch_id}/results

.jsonl 文件流式传输消息批处理的结果。

文件中的每一行都是一个 JSON 对象,包含消息批处理中单个请求的结果。结果不保证与请求的顺序相同。使用 custom_id 字段将结果与请求进行匹配。

在我们的用户指南中了解更多关于 Message Batches API 的信息

路径参数

  • message_batch_id: string

    消息批处理的 ID。

返回值

  • MessageBatchIndividualResponse object { custom_id, result }

    这是响应 .jsonl 文件中的单行,并不代表整个响应。

    • custom_id: string

      开发者为消息批处理中每个请求创建的 ID。用于将结果与请求进行匹配,因为结果可能不按请求顺序给出。

      在消息批处理中,每个请求必须唯一。

    • result: MessageBatchResult

      此请求的处理结果。

      如果处理成功则包含消息输出,如果处理失败则包含错误响应,或未尝试处理的原因(如取消或过期)。

      • MessageBatchSucceededResult object { message, type }

        • message: Message

          • id: string

            唯一对象标识符。

            ID 的格式和长度可能会随时间变化。

          • container: Container

            请求中使用的容器信息(用于代码执行工具)

            • id: string

              此请求中使用的容器标识符

            • expires_at: string

              容器将过期的时间。

          • content: array of ContentBlock

            模型生成的内容。

            这是一个内容块数组,每个块都有一个 type 来决定其形状。

            Example:

            [{"type": "text", "text": "Hi, I'm Claude."}]
            

            如果请求输入 messagesassistant 轮次结束,则响应 content 将直接从该轮次继续。您可以使用此来约束模型的输出。

            例如,如果输入 messages 为:

            [
              {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"},
              {"role": "assistant", "content": "The best answer is ("}
            ]
            

            则响应 content 可能为:

            [{"type": "text", "text": "B)"}]
            
            • TextBlock object { citations, text, type }

              • citations: array of TextCitation

                支持文本块的引用。

                返回的引用类型取决于被引用文档的类型。引用 PDF 会产生 page_location, plain text results in char_location, and content document results in content_block_location.

                • CitationCharLocation object { cited_text, document_index, document_title, 4 more }

                  • cited_text: string

                  • document_index: number

                  • document_title: string

                  • end_char_index: number

                  • file_id: string

                  • start_char_index: number

                  • type: "char_location"

                    • "char_location"
                • CitationPageLocation object { cited_text, document_index, document_title, 4 more }

                  • cited_text: string

                  • document_index: number

                  • document_title: string

                  • end_page_number: number

                  • file_id: string

                  • start_page_number: number

                  • type: "page_location"

                    • "page_location"
                • CitationContentBlockLocation object { cited_text, document_index, document_title, 4 more }

                  • cited_text: string

                    引用块范围的完整文本,已连接。

                    始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

                  • document_index: number

                  • document_title: string

                  • end_block_index: number

                    content 数组中引用块范围的排他性 0 基结束索引。

                    始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

                  • file_id: string

                  • start_block_index: number

                    content 数组中第一个引用块的 0 基索引。

                  • type: "content_block_location"

                    • "content_block_location"
                • CitationsWebSearchResultLocation object { cited_text, encrypted_index, title, 2 more }

                  • cited_text: string

                  • encrypted_index: string

                  • title: string

                  • type: "web_search_result_location"

                    • "web_search_result_location"
                  • url: string

                • CitationsSearchResultLocation object { cited_text, end_block_index, search_result_index, 4 more }

                  • cited_text: string

                    引用块范围的完整文本,已连接。

                    始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

                  • end_block_index: number

                    content 数组中引用块范围的排他性 0 基结束索引。

                    始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

                  • search_result_index: number

                    在请求中所有 search_result 内容块中引用搜索结果的 0 基索引,按其在消息和工具结果中出现的顺序排列。

                    document_index 分开计数;服务器端 Web 搜索结果不包含在此计数中。

                  • source: string

                  • start_block_index: number

                    content 数组中第一个引用块的 0 基索引。

                  • title: string

                  • type: "search_result_location"

                    • "search_result_location"
              • text: string

              • type: "text"

                • "text"
            • ThinkingBlock object { signature, thinking, type }

              • signature: string

              • thinking: string

              • type: "thinking"

                • "thinking"
            • RedactedThinkingBlock object { data, type }

              • data: string

              • type: "redacted_thinking"

                • "redacted_thinking"
            • ToolUseBlock object { id, caller, input, 2 more }

              • id: string

              • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                  • type: "direct"

                    • "direct"
                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                  • tool_id: string

                  • type: "code_execution_20250825"

                    • "code_execution_20250825"
                • ServerToolCaller20260120 object { tool_id, type }

                  • tool_id: string

                  • type: "code_execution_20260120"

                    • "code_execution_20260120"
              • input: map[unknown]

              • name: string

              • type: "tool_use"

                • "tool_use"
            • ServerToolUseBlock object { id, caller, input, 2 more }

              • id: string

              • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

              • input: map[unknown]

              • name: "web_search" or "web_fetch" or "code_execution" or 4 more

                • "web_search"

                • "web_fetch"

                • "code_execution"

                • "bash_code_execution"

                • "text_editor_code_execution"

                • "tool_search_tool_regex"

                • "tool_search_tool_bm25"

              • type: "server_tool_use"

                • "server_tool_use"
            • WebSearchToolResultBlock object { caller, content, tool_use_id, type }

              • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

              • content: WebSearchToolResultBlockContent

                • WebSearchToolResultError object { error_code, type }

                  • error_code: WebSearchToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "max_uses_exceeded"

                    • "too_many_requests"

                    • "query_too_long"

                    • "request_too_large"

                  • type: "web_search_tool_result_error"

                    • "web_search_tool_result_error"
                • array of WebSearchResultBlock

                  • encrypted_content: string

                  • page_age: string

                  • title: string

                  • type: "web_search_result"

                    • "web_search_result"
                  • url: string

              • tool_use_id: string

              • type: "web_search_tool_result"

                • "web_search_tool_result"
            • WebFetchToolResultBlock object { caller, content, tool_use_id, type }

              • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

              • content: WebFetchToolResultErrorBlock or WebFetchBlock

                • WebFetchToolResultErrorBlock object { error_code, type }

                  • error_code: WebFetchToolResultErrorCode

                    • "invalid_tool_input"

                    • "url_too_long"

                    • "url_not_allowed"

                    • "url_not_accessible"

                    • "unsupported_content_type"

                    • "too_many_requests"

                    • "max_uses_exceeded"

                    • "unavailable"

                  • type: "web_fetch_tool_result_error"

                    • "web_fetch_tool_result_error"
                • WebFetchBlock object { content, retrieved_at, type, url }

                  • content: DocumentBlock

                    • citations: CitationsConfig

                      文档的引用配置

                      • enabled: boolean
                    • source: Base64PDFSource or PlainTextSource

                      • Base64PDFSource object { data, media_type, type }

                        • data: string

                        • media_type: "application/pdf"

                          • "application/pdf"
                        • type: "base64"

                          • "base64"
                      • PlainTextSource object { data, media_type, type }

                        • data: string

                        • media_type: "text/plain"

                          • "text/plain"
                        • type: "text"

                          • "text"
                    • title: string

                      文档标题

                    • type: "document"

                      • "document"
                  • retrieved_at: string

                    获取内容时的 ISO 8601 时间戳

                  • type: "web_fetch_result"

                    • "web_fetch_result"
                  • url: string

                    获取的内容 URL

              • tool_use_id: string

              • type: "web_fetch_tool_result"

                • "web_fetch_tool_result"
            • CodeExecutionToolResultBlock object { content, tool_use_id, type }

              • content: CodeExecutionToolResultBlockContent

                PFC + web_search 结果的带加密标准输出的代码执行结果。

                • CodeExecutionToolResultError object { error_code, type }

                  • error_code: CodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                  • type: "code_execution_tool_result_error"

                    • "code_execution_tool_result_error"
                • CodeExecutionResultBlock object { content, return_code, stderr, 2 more }

                  • content: array of CodeExecutionOutputBlock

                    • file_id: string

                    • type: "code_execution_output"

                      • "code_execution_output"
                  • return_code: number

                  • stderr: string

                  • stdout: string

                  • type: "code_execution_result"

                    • "code_execution_result"
                • EncryptedCodeExecutionResultBlock object { content, encrypted_stdout, return_code, 2 more }

                  PFC + web_search 结果的带加密标准输出的代码执行结果。

                  • content: array of CodeExecutionOutputBlock

                    • file_id: string

                    • type: "code_execution_output"

                  • encrypted_stdout: string

                  • return_code: number

                  • stderr: string

                  • type: "encrypted_code_execution_result"

                    • "encrypted_code_execution_result"
              • tool_use_id: string

              • type: "code_execution_tool_result"

                • "code_execution_tool_result"
            • BashCodeExecutionToolResultBlock object { content, tool_use_id, type }

              • content: BashCodeExecutionToolResultError or BashCodeExecutionResultBlock

                • BashCodeExecutionToolResultError object { error_code, type }

                  • error_code: BashCodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                    • "output_file_too_large"

                  • type: "bash_code_execution_tool_result_error"

                    • "bash_code_execution_tool_result_error"
                • BashCodeExecutionResultBlock object { content, return_code, stderr, 2 more }

                  • content: array of BashCodeExecutionOutputBlock

                    • file_id: string

                    • type: "bash_code_execution_output"

                      • "bash_code_execution_output"
                  • return_code: number

                  • stderr: string

                  • stdout: string

                  • type: "bash_code_execution_result"

                    • "bash_code_execution_result"
              • tool_use_id: string

              • type: "bash_code_execution_tool_result"

                • "bash_code_execution_tool_result"
            • TextEditorCodeExecutionToolResultBlock object { content, tool_use_id, type }

              • content: TextEditorCodeExecutionToolResultError or TextEditorCodeExecutionViewResultBlock or TextEditorCodeExecutionCreateResultBlock or TextEditorCodeExecutionStrReplaceResultBlock

                • TextEditorCodeExecutionToolResultError object { error_code, error_message, type }

                  • error_code: TextEditorCodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                    • "file_not_found"

                  • error_message: string

                  • type: "text_editor_code_execution_tool_result_error"

                    • "text_editor_code_execution_tool_result_error"
                • TextEditorCodeExecutionViewResultBlock object { content, file_type, num_lines, 3 more }

                  • content: string

                  • file_type: "text" or "image" or "pdf"

                    • "text"

                    • "image"

                    • "pdf"

                  • num_lines: number

                  • start_line: number

                  • total_lines: number

                  • type: "text_editor_code_execution_view_result"

                    • "text_editor_code_execution_view_result"
                • TextEditorCodeExecutionCreateResultBlock object { is_file_update, type }

                  • is_file_update: boolean

                  • type: "text_editor_code_execution_create_result"

                    • "text_editor_code_execution_create_result"
                • TextEditorCodeExecutionStrReplaceResultBlock object { lines, new_lines, new_start, 3 more }

                  • lines: array of string

                  • new_lines: number

                  • new_start: number

                  • old_lines: number

                  • old_start: number

                  • type: "text_editor_code_execution_str_replace_result"

                    • "text_editor_code_execution_str_replace_result"
              • tool_use_id: string

              • type: "text_editor_code_execution_tool_result"

                • "text_editor_code_execution_tool_result"
            • ToolSearchToolResultBlock object { content, tool_use_id, type }

              • content: ToolSearchToolResultError or ToolSearchToolSearchResultBlock

                • ToolSearchToolResultError object { error_code, error_message, type }

                  • error_code: ToolSearchToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                  • error_message: string

                  • type: "tool_search_tool_result_error"

                    • "tool_search_tool_result_error"
                • ToolSearchToolSearchResultBlock object { tool_references, type }

                  • tool_references: array of ToolReferenceBlock

                    • tool_name: string

                    • type: "tool_reference"

                      • "tool_reference"
                  • type: "tool_search_tool_search_result"

                    • "tool_search_tool_search_result"
              • tool_use_id: string

              • type: "tool_search_tool_result"

                • "tool_search_tool_result"
            • ContainerUploadBlock object { file_id, type }

              上传到容器的文件的响应模型。

              • file_id: string

              • type: "container_upload"

                • "container_upload"
          • model: Model

            将完成您的提示的模型。

            详见模型了解更多信息和选项。

            • "claude-opus-4-7" or "claude-mythos-preview" or "claude-opus-4-6" or 14 more

              将完成您的提示的模型。

              详见模型了解更多信息和选项。

              • "claude-opus-4-7"

                用于长时间运行的智能体和编程的前沿智能

              • "claude-mythos-preview"

                新一代智能,在编程和网络安全方面最强

              • "claude-opus-4-6"

                用于长时间运行的智能体和编程的前沿智能

              • "claude-sonnet-4-6"

                速度与智能的最佳组合

              • "claude-haiku-4-5"

                具有接近前沿智能的最快模型

              • "claude-haiku-4-5-20251001"

                具有接近前沿智能的最快模型

              • "claude-opus-4-5"

                结合最高智能与实用性能的高级模型

              • "claude-opus-4-5-20251101"

                结合最高智能与实用性能的高级模型

              • "claude-sonnet-4-5"

                用于智能体和编程的高性能模型

              • "claude-sonnet-4-5-20250929"

                用于智能体和编程的高性能模型

              • "claude-opus-4-1"

                用于专业复杂任务的卓越模型

              • "claude-opus-4-1-20250805"

                用于专业复杂任务的卓越模型

              • "claude-opus-4-0"

                用于复杂任务的强大模型

              • "claude-opus-4-20250514"

                用于复杂任务的强大模型

              • "claude-sonnet-4-0"

                具有扩展思考能力的高性能模型

              • "claude-sonnet-4-20250514"

                具有扩展思考能力的高性能模型

              • "claude-3-haiku-20240307"

                快速且经济高效的模型

            • string

          • role: "assistant"

            生成消息的对话角色。

            这将始终为 "assistant"

            • "assistant"
          • stop_details: RefusalStopDetails

            关于拒绝的结构化信息。

            • category: "cyber" or "bio"

              触发拒绝的策略类别。

              当拒绝未映射到命名类别时为 null

              • "cyber"

              • "bio"

            • explanation: string

              拒绝的人类可读解释。

              此文本不保证稳定。当该类别没有可用解释时为 null

            • type: "refusal"

              • "refusal"
          • stop_reason: StopReason

            停止的原因。

            这可能是以下值之一:

            • "end_turn": 模型到达自然停止点
            • "max_tokens": 我们超过了请求的 max_tokens 或模型的最大值
            • "stop_sequence": 生成了您提供的自定义 stop_sequences 之一
            • "tool_use": 模型调用了一个或多个工具
            • "pause_turn": 我们暂停了一个长时间运行的轮次。您可以在后续请求中原样提供响应,让模型继续。
            • "refusal": 当流式分类器介入处理潜在策略违规时

            在非流式模式下,此值始终非空。在流式模式下,message_start 事件中为 null,其他情况下非空。

            • "end_turn"

            • "max_tokens"

            • "stop_sequence"

            • "tool_use"

            • "pause_turn"

            • "refusal"

          • stop_sequence: string

            生成了哪个自定义停止序列(如果有)。

            如果生成了您的自定义停止序列之一,此值将为非空字符串。

          • type: "message"

            对象类型。

            对于消息,始终为 "message"

            • "message"
          • usage: Usage

            计费和速率限制使用情况。

            Anthropic 的 API 按 token 计数计费和限制速率,因为 token 代表了我们系统的底层成本。

            在底层,API 将请求转换为适合模型的格式。然后模型的输出经过解析阶段,成为 API 响应。因此,usage 中的 token 计数不会与 API 请求或响应的确切可见内容一一对应。

            例如,即使 Claude 返回空字符串响应,output_tokens 也不会为零。

            请求中的总输入 token 数是 input_tokenscache_creation_input_tokenscache_read_input_tokens 的总和。

            • cache_creation: CacheCreation

              按 TTL 分解的缓存 token

              • ephemeral_1h_input_tokens: number

                用于创建 1 小时缓存条目的输入 token 数量。

              • ephemeral_5m_input_tokens: number

                用于创建 5 分钟缓存条目的输入 token 数量。

            • cache_creation_input_tokens: number

              用于创建缓存条目的输入 token 数量。

            • cache_read_input_tokens: number

              从缓存中读取的输入 token 数量。

            • inference_geo: string

              此请求执行推理的地理区域。

            • input_tokens: number

              使用的输入 token 数量。

            • output_tokens: number

              使用的输出 token 数量。

            • server_tool_use: ServerToolUsage

              服务器工具请求数量。

              • web_fetch_requests: number

                Web 获取工具请求数量。

              • web_search_requests: number

                Web 搜索工具请求数量。

            • service_tier: "standard" or "priority" or "batch"

              请求是否使用了优先级、标准或批处理层级。

              • "standard"

              • "priority"

              • "batch"

        • type: "succeeded"

          • "succeeded"
      • MessageBatchErroredResult object { error, type }

        • error: ErrorResponse

          • error: ErrorObject

            • InvalidRequestError object { message, type }

              • message: string

              • type: "invalid_request_error"

                • "invalid_request_error"
            • AuthenticationError object { message, type }

              • message: string

              • type: "authentication_error"

                • "authentication_error"
            • BillingError object { message, type }

              • message: string

              • type: "billing_error"

                • "billing_error"
            • PermissionError object { message, type }

              • message: string

              • type: "permission_error"

                • "permission_error"
            • NotFoundError object { message, type }

              • message: string

              • type: "not_found_error"

                • "not_found_error"
            • RateLimitError object { message, type }

              • message: string

              • type: "rate_limit_error"

                • "rate_limit_error"
            • GatewayTimeoutError object { message, type }

              • message: string

              • type: "timeout_error"

                • "timeout_error"
            • APIErrorObject object { message, type }

              • message: string

              • type: "api_error"

                • "api_error"
            • OverloadedError object { message, type }

              • message: string

              • type: "overloaded_error"

                • "overloaded_error"
          • request_id: string

          • type: "error"

            • "error"
        • type: "errored"

          • "errored"
      • MessageBatchCanceledResult object { type }

        • type: "canceled"

          • "canceled"
      • MessageBatchExpiredResult object { type }

        • type: "expired"

          • "expired"

Example

curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \
    -H 'anthropic-version: 2023-06-01' \
    -H "X-Api-Key: $ANTHROPIC_API_KEY"

领域类型

Deleted Message Batch

  • DeletedMessageBatch object { id, type }

    • id: string

      消息批处理的 ID。

    • type: "message_batch_deleted"

      Deleted object type.

      对于消息批处理,始终为 "message_batch_deleted"

      • "message_batch_deleted"

Message Batch

  • MessageBatch object { id, archived_at, cancel_initiated_at, 7 more }

    • id: string

      唯一对象标识符。

      ID 的格式和长度可能会随时间变化。

    • archived_at: string

      RFC 3339 日期时间字符串,表示消息批处理被归档且其结果变为不可用的时间。

    • cancel_initiated_at: string

      RFC 3339 日期时间字符串,表示为消息批处理启动取消的时间。仅在启动取消时指定。

    • created_at: string

      RFC 3339 日期时间字符串,表示消息批处理创建的时间。

    • ended_at: string

      RFC 3339 日期时间字符串,表示消息批处理处理结束的时间。仅在处理结束后指定。

      当消息批处理中的每个请求已成功、出错、取消或过期时,处理结束。

    • expires_at: string

      RFC 3339 日期时间字符串,表示消息批处理将过期并结束处理的时间,即创建后 24 小时。

    • processing_status: "in_progress" or "canceling" or "ended"

      消息批处理的处理状态。

      • "in_progress"

      • "canceling"

      • "ended"

    • request_counts: MessageBatchRequestCounts

      按状态分类统计消息批处理中的请求。

      请求从 processing 开始,只有在整个批处理处理结束后才会转移到其他状态。所有值的总和始终与批处理中的请求总数匹配。

      • canceled: number

        消息批处理中已取消的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • errored: number

        消息批处理中遇到错误的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • expired: number

        消息批处理中已过期的请求数。

        在整个消息批处理处理结束之前,此值为零。

      • processing: number

        消息批处理中正在处理的请求数。

      • succeeded: number

        消息批处理中已成功完成的请求数。

        在整个消息批处理处理结束之前,此值为零。

    • results_url: string

      包含消息批处理请求结果的 .jsonl 文件的 URL。仅在处理结束后指定。

      文件中的结果不保证与请求的顺序相同。使用 custom_id 字段将结果与请求进行匹配。

    • type: "message_batch"

      对象类型。

      对于消息批处理,始终为 "message_batch"

      • "message_batch"

Message Batch Canceled Result

  • MessageBatchCanceledResult object { type }

    • type: "canceled"

      • "canceled"

Message Batch Errored Result

  • MessageBatchErroredResult object { error, type }

    • error: ErrorResponse

      • error: ErrorObject

        • InvalidRequestError object { message, type }

          • message: string

          • type: "invalid_request_error"

            • "invalid_request_error"
        • AuthenticationError object { message, type }

          • message: string

          • type: "authentication_error"

            • "authentication_error"
        • BillingError object { message, type }

          • message: string

          • type: "billing_error"

            • "billing_error"
        • PermissionError object { message, type }

          • message: string

          • type: "permission_error"

            • "permission_error"
        • NotFoundError object { message, type }

          • message: string

          • type: "not_found_error"

            • "not_found_error"
        • RateLimitError object { message, type }

          • message: string

          • type: "rate_limit_error"

            • "rate_limit_error"
        • GatewayTimeoutError object { message, type }

          • message: string

          • type: "timeout_error"

            • "timeout_error"
        • APIErrorObject object { message, type }

          • message: string

          • type: "api_error"

            • "api_error"
        • OverloadedError object { message, type }

          • message: string

          • type: "overloaded_error"

            • "overloaded_error"
      • request_id: string

      • type: "error"

        • "error"
    • type: "errored"

      • "errored"

Message Batch Expired Result

  • MessageBatchExpiredResult object { type }

    • type: "expired"

      • "expired"

Message Batch Individual Response

  • MessageBatchIndividualResponse object { custom_id, result }

    这是响应 .jsonl 文件中的单行,并不代表整个响应。

    • custom_id: string

      开发者为消息批处理中每个请求创建的 ID。用于将结果与请求进行匹配,因为结果可能不按请求顺序给出。

      在消息批处理中,每个请求必须唯一。

    • result: MessageBatchResult

      此请求的处理结果。

      如果处理成功则包含消息输出,如果处理失败则包含错误响应,或未尝试处理的原因(如取消或过期)。

      • MessageBatchSucceededResult object { message, type }

        • message: Message

          • id: string

            唯一对象标识符。

            ID 的格式和长度可能会随时间变化。

          • container: Container

            请求中使用的容器信息(用于代码执行工具)

            • id: string

              此请求中使用的容器标识符

            • expires_at: string

              容器将过期的时间。

          • content: array of ContentBlock

            模型生成的内容。

            这是一个内容块数组,每个块都有一个 type 来决定其形状。

            Example:

            [{"type": "text", "text": "Hi, I'm Claude."}]
            

            如果请求输入 messagesassistant 轮次结束,则响应 content 将直接从该轮次继续。您可以使用此来约束模型的输出。

            例如,如果输入 messages 为:

            [
              {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"},
              {"role": "assistant", "content": "The best answer is ("}
            ]
            

            则响应 content 可能为:

            [{"type": "text", "text": "B)"}]
            
            • TextBlock object { citations, text, type }

              • citations: array of TextCitation

                支持文本块的引用。

                返回的引用类型取决于被引用文档的类型。引用 PDF 会产生 page_location, plain text results in char_location, and content document results in content_block_location.

                • CitationCharLocation object { cited_text, document_index, document_title, 4 more }

                  • cited_text: string

                  • document_index: number

                  • document_title: string

                  • end_char_index: number

                  • file_id: string

                  • start_char_index: number

                  • type: "char_location"

                    • "char_location"
                • CitationPageLocation object { cited_text, document_index, document_title, 4 more }

                  • cited_text: string

                  • document_index: number

                  • document_title: string

                  • end_page_number: number

                  • file_id: string

                  • start_page_number: number

                  • type: "page_location"

                    • "page_location"
                • CitationContentBlockLocation object { cited_text, document_index, document_title, 4 more }

                  • cited_text: string

                    引用块范围的完整文本,已连接。

                    始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

                  • document_index: number

                  • document_title: string

                  • end_block_index: number

                    content 数组中引用块范围的排他性 0 基结束索引。

                    始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

                  • file_id: string

                  • start_block_index: number

                    content 数组中第一个引用块的 0 基索引。

                  • type: "content_block_location"

                    • "content_block_location"
                • CitationsWebSearchResultLocation object { cited_text, encrypted_index, title, 2 more }

                  • cited_text: string

                  • encrypted_index: string

                  • title: string

                  • type: "web_search_result_location"

                    • "web_search_result_location"
                  • url: string

                • CitationsSearchResultLocation object { cited_text, end_block_index, search_result_index, 4 more }

                  • cited_text: string

                    引用块范围的完整文本,已连接。

                    始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

                  • end_block_index: number

                    content 数组中引用块范围的排他性 0 基结束索引。

                    始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

                  • search_result_index: number

                    在请求中所有 search_result 内容块中引用搜索结果的 0 基索引,按其在消息和工具结果中出现的顺序排列。

                    document_index 分开计数;服务器端 Web 搜索结果不包含在此计数中。

                  • source: string

                  • start_block_index: number

                    content 数组中第一个引用块的 0 基索引。

                  • title: string

                  • type: "search_result_location"

                    • "search_result_location"
              • text: string

              • type: "text"

                • "text"
            • ThinkingBlock object { signature, thinking, type }

              • signature: string

              • thinking: string

              • type: "thinking"

                • "thinking"
            • RedactedThinkingBlock object { data, type }

              • data: string

              • type: "redacted_thinking"

                • "redacted_thinking"
            • ToolUseBlock object { id, caller, input, 2 more }

              • id: string

              • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                  • type: "direct"

                    • "direct"
                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                  • tool_id: string

                  • type: "code_execution_20250825"

                    • "code_execution_20250825"
                • ServerToolCaller20260120 object { tool_id, type }

                  • tool_id: string

                  • type: "code_execution_20260120"

                    • "code_execution_20260120"
              • input: map[unknown]

              • name: string

              • type: "tool_use"

                • "tool_use"
            • ServerToolUseBlock object { id, caller, input, 2 more }

              • id: string

              • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

              • input: map[unknown]

              • name: "web_search" or "web_fetch" or "code_execution" or 4 more

                • "web_search"

                • "web_fetch"

                • "code_execution"

                • "bash_code_execution"

                • "text_editor_code_execution"

                • "tool_search_tool_regex"

                • "tool_search_tool_bm25"

              • type: "server_tool_use"

                • "server_tool_use"
            • WebSearchToolResultBlock object { caller, content, tool_use_id, type }

              • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

              • content: WebSearchToolResultBlockContent

                • WebSearchToolResultError object { error_code, type }

                  • error_code: WebSearchToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "max_uses_exceeded"

                    • "too_many_requests"

                    • "query_too_long"

                    • "request_too_large"

                  • type: "web_search_tool_result_error"

                    • "web_search_tool_result_error"
                • array of WebSearchResultBlock

                  • encrypted_content: string

                  • page_age: string

                  • title: string

                  • type: "web_search_result"

                    • "web_search_result"
                  • url: string

              • tool_use_id: string

              • type: "web_search_tool_result"

                • "web_search_tool_result"
            • WebFetchToolResultBlock object { caller, content, tool_use_id, type }

              • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

                直接来自模型的工具调用。

                • DirectCaller object { type }

                  直接来自模型的工具调用。

                • ServerToolCaller object { tool_id, type }

                  由服务器端工具生成的工具调用。

                • ServerToolCaller20260120 object { tool_id, type }

              • content: WebFetchToolResultErrorBlock or WebFetchBlock

                • WebFetchToolResultErrorBlock object { error_code, type }

                  • error_code: WebFetchToolResultErrorCode

                    • "invalid_tool_input"

                    • "url_too_long"

                    • "url_not_allowed"

                    • "url_not_accessible"

                    • "unsupported_content_type"

                    • "too_many_requests"

                    • "max_uses_exceeded"

                    • "unavailable"

                  • type: "web_fetch_tool_result_error"

                    • "web_fetch_tool_result_error"
                • WebFetchBlock object { content, retrieved_at, type, url }

                  • content: DocumentBlock

                    • citations: CitationsConfig

                      文档的引用配置

                      • enabled: boolean
                    • source: Base64PDFSource or PlainTextSource

                      • Base64PDFSource object { data, media_type, type }

                        • data: string

                        • media_type: "application/pdf"

                          • "application/pdf"
                        • type: "base64"

                          • "base64"
                      • PlainTextSource object { data, media_type, type }

                        • data: string

                        • media_type: "text/plain"

                          • "text/plain"
                        • type: "text"

                          • "text"
                    • title: string

                      文档标题

                    • type: "document"

                      • "document"
                  • retrieved_at: string

                    获取内容时的 ISO 8601 时间戳

                  • type: "web_fetch_result"

                    • "web_fetch_result"
                  • url: string

                    获取的内容 URL

              • tool_use_id: string

              • type: "web_fetch_tool_result"

                • "web_fetch_tool_result"
            • CodeExecutionToolResultBlock object { content, tool_use_id, type }

              • content: CodeExecutionToolResultBlockContent

                PFC + web_search 结果的带加密标准输出的代码执行结果。

                • CodeExecutionToolResultError object { error_code, type }

                  • error_code: CodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                  • type: "code_execution_tool_result_error"

                    • "code_execution_tool_result_error"
                • CodeExecutionResultBlock object { content, return_code, stderr, 2 more }

                  • content: array of CodeExecutionOutputBlock

                    • file_id: string

                    • type: "code_execution_output"

                      • "code_execution_output"
                  • return_code: number

                  • stderr: string

                  • stdout: string

                  • type: "code_execution_result"

                    • "code_execution_result"
                • EncryptedCodeExecutionResultBlock object { content, encrypted_stdout, return_code, 2 more }

                  PFC + web_search 结果的带加密标准输出的代码执行结果。

                  • content: array of CodeExecutionOutputBlock

                    • file_id: string

                    • type: "code_execution_output"

                  • encrypted_stdout: string

                  • return_code: number

                  • stderr: string

                  • type: "encrypted_code_execution_result"

                    • "encrypted_code_execution_result"
              • tool_use_id: string

              • type: "code_execution_tool_result"

                • "code_execution_tool_result"
            • BashCodeExecutionToolResultBlock object { content, tool_use_id, type }

              • content: BashCodeExecutionToolResultError or BashCodeExecutionResultBlock

                • BashCodeExecutionToolResultError object { error_code, type }

                  • error_code: BashCodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                    • "output_file_too_large"

                  • type: "bash_code_execution_tool_result_error"

                    • "bash_code_execution_tool_result_error"
                • BashCodeExecutionResultBlock object { content, return_code, stderr, 2 more }

                  • content: array of BashCodeExecutionOutputBlock

                    • file_id: string

                    • type: "bash_code_execution_output"

                      • "bash_code_execution_output"
                  • return_code: number

                  • stderr: string

                  • stdout: string

                  • type: "bash_code_execution_result"

                    • "bash_code_execution_result"
              • tool_use_id: string

              • type: "bash_code_execution_tool_result"

                • "bash_code_execution_tool_result"
            • TextEditorCodeExecutionToolResultBlock object { content, tool_use_id, type }

              • content: TextEditorCodeExecutionToolResultError or TextEditorCodeExecutionViewResultBlock or TextEditorCodeExecutionCreateResultBlock or TextEditorCodeExecutionStrReplaceResultBlock

                • TextEditorCodeExecutionToolResultError object { error_code, error_message, type }

                  • error_code: TextEditorCodeExecutionToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                    • "file_not_found"

                  • error_message: string

                  • type: "text_editor_code_execution_tool_result_error"

                    • "text_editor_code_execution_tool_result_error"
                • TextEditorCodeExecutionViewResultBlock object { content, file_type, num_lines, 3 more }

                  • content: string

                  • file_type: "text" or "image" or "pdf"

                    • "text"

                    • "image"

                    • "pdf"

                  • num_lines: number

                  • start_line: number

                  • total_lines: number

                  • type: "text_editor_code_execution_view_result"

                    • "text_editor_code_execution_view_result"
                • TextEditorCodeExecutionCreateResultBlock object { is_file_update, type }

                  • is_file_update: boolean

                  • type: "text_editor_code_execution_create_result"

                    • "text_editor_code_execution_create_result"
                • TextEditorCodeExecutionStrReplaceResultBlock object { lines, new_lines, new_start, 3 more }

                  • lines: array of string

                  • new_lines: number

                  • new_start: number

                  • old_lines: number

                  • old_start: number

                  • type: "text_editor_code_execution_str_replace_result"

                    • "text_editor_code_execution_str_replace_result"
              • tool_use_id: string

              • type: "text_editor_code_execution_tool_result"

                • "text_editor_code_execution_tool_result"
            • ToolSearchToolResultBlock object { content, tool_use_id, type }

              • content: ToolSearchToolResultError or ToolSearchToolSearchResultBlock

                • ToolSearchToolResultError object { error_code, error_message, type }

                  • error_code: ToolSearchToolResultErrorCode

                    • "invalid_tool_input"

                    • "unavailable"

                    • "too_many_requests"

                    • "execution_time_exceeded"

                  • error_message: string

                  • type: "tool_search_tool_result_error"

                    • "tool_search_tool_result_error"
                • ToolSearchToolSearchResultBlock object { tool_references, type }

                  • tool_references: array of ToolReferenceBlock

                    • tool_name: string

                    • type: "tool_reference"

                      • "tool_reference"
                  • type: "tool_search_tool_search_result"

                    • "tool_search_tool_search_result"
              • tool_use_id: string

              • type: "tool_search_tool_result"

                • "tool_search_tool_result"
            • ContainerUploadBlock object { file_id, type }

              上传到容器的文件的响应模型。

              • file_id: string

              • type: "container_upload"

                • "container_upload"
          • model: Model

            将完成您的提示的模型。

            详见模型了解更多信息和选项。

            • "claude-opus-4-7" or "claude-mythos-preview" or "claude-opus-4-6" or 14 more

              将完成您的提示的模型。

              详见模型了解更多信息和选项。

              • "claude-opus-4-7"

                用于长时间运行的智能体和编程的前沿智能

              • "claude-mythos-preview"

                新一代智能,在编程和网络安全方面最强

              • "claude-opus-4-6"

                用于长时间运行的智能体和编程的前沿智能

              • "claude-sonnet-4-6"

                速度与智能的最佳组合

              • "claude-haiku-4-5"

                具有接近前沿智能的最快模型

              • "claude-haiku-4-5-20251001"

                具有接近前沿智能的最快模型

              • "claude-opus-4-5"

                结合最高智能与实用性能的高级模型

              • "claude-opus-4-5-20251101"

                结合最高智能与实用性能的高级模型

              • "claude-sonnet-4-5"

                用于智能体和编程的高性能模型

              • "claude-sonnet-4-5-20250929"

                用于智能体和编程的高性能模型

              • "claude-opus-4-1"

                用于专业复杂任务的卓越模型

              • "claude-opus-4-1-20250805"

                用于专业复杂任务的卓越模型

              • "claude-opus-4-0"

                用于复杂任务的强大模型

              • "claude-opus-4-20250514"

                用于复杂任务的强大模型

              • "claude-sonnet-4-0"

                具有扩展思考能力的高性能模型

              • "claude-sonnet-4-20250514"

                具有扩展思考能力的高性能模型

              • "claude-3-haiku-20240307"

                快速且经济高效的模型

            • string

          • role: "assistant"

            生成消息的对话角色。

            这将始终为 "assistant"

            • "assistant"
          • stop_details: RefusalStopDetails

            关于拒绝的结构化信息。

            • category: "cyber" or "bio"

              触发拒绝的策略类别。

              当拒绝未映射到命名类别时为 null

              • "cyber"

              • "bio"

            • explanation: string

              拒绝的人类可读解释。

              此文本不保证稳定。当该类别没有可用解释时为 null

            • type: "refusal"

              • "refusal"
          • stop_reason: StopReason

            停止的原因。

            这可能是以下值之一:

            • "end_turn": 模型到达自然停止点
            • "max_tokens": 我们超过了请求的 max_tokens 或模型的最大值
            • "stop_sequence": 生成了您提供的自定义 stop_sequences 之一
            • "tool_use": 模型调用了一个或多个工具
            • "pause_turn": 我们暂停了一个长时间运行的轮次。您可以在后续请求中原样提供响应,让模型继续。
            • "refusal": 当流式分类器介入处理潜在策略违规时

            在非流式模式下,此值始终非空。在流式模式下,message_start 事件中为 null,其他情况下非空。

            • "end_turn"

            • "max_tokens"

            • "stop_sequence"

            • "tool_use"

            • "pause_turn"

            • "refusal"

          • stop_sequence: string

            生成了哪个自定义停止序列(如果有)。

            如果生成了您的自定义停止序列之一,此值将为非空字符串。

          • type: "message"

            对象类型。

            对于消息,始终为 "message"

            • "message"
          • usage: Usage

            计费和速率限制使用情况。

            Anthropic 的 API 按 token 计数计费和限制速率,因为 token 代表了我们系统的底层成本。

            在底层,API 将请求转换为适合模型的格式。然后模型的输出经过解析阶段,成为 API 响应。因此,usage 中的 token 计数不会与 API 请求或响应的确切可见内容一一对应。

            例如,即使 Claude 返回空字符串响应,output_tokens 也不会为零。

            请求中的总输入 token 数是 input_tokenscache_creation_input_tokenscache_read_input_tokens 的总和。

            • cache_creation: CacheCreation

              按 TTL 分解的缓存 token

              • ephemeral_1h_input_tokens: number

                用于创建 1 小时缓存条目的输入 token 数量。

              • ephemeral_5m_input_tokens: number

                用于创建 5 分钟缓存条目的输入 token 数量。

            • cache_creation_input_tokens: number

              用于创建缓存条目的输入 token 数量。

            • cache_read_input_tokens: number

              从缓存中读取的输入 token 数量。

            • inference_geo: string

              此请求执行推理的地理区域。

            • input_tokens: number

              使用的输入 token 数量。

            • output_tokens: number

              使用的输出 token 数量。

            • server_tool_use: ServerToolUsage

              服务器工具请求数量。

              • web_fetch_requests: number

                Web 获取工具请求数量。

              • web_search_requests: number

                Web 搜索工具请求数量。

            • service_tier: "standard" or "priority" or "batch"

              请求是否使用了优先级、标准或批处理层级。

              • "standard"

              • "priority"

              • "batch"

        • type: "succeeded"

          • "succeeded"
      • MessageBatchErroredResult object { error, type }

        • error: ErrorResponse

          • error: ErrorObject

            • InvalidRequestError object { message, type }

              • message: string

              • type: "invalid_request_error"

                • "invalid_request_error"
            • AuthenticationError object { message, type }

              • message: string

              • type: "authentication_error"

                • "authentication_error"
            • BillingError object { message, type }

              • message: string

              • type: "billing_error"

                • "billing_error"
            • PermissionError object { message, type }

              • message: string

              • type: "permission_error"

                • "permission_error"
            • NotFoundError object { message, type }

              • message: string

              • type: "not_found_error"

                • "not_found_error"
            • RateLimitError object { message, type }

              • message: string

              • type: "rate_limit_error"

                • "rate_limit_error"
            • GatewayTimeoutError object { message, type }

              • message: string

              • type: "timeout_error"

                • "timeout_error"
            • APIErrorObject object { message, type }

              • message: string

              • type: "api_error"

                • "api_error"
            • OverloadedError object { message, type }

              • message: string

              • type: "overloaded_error"

                • "overloaded_error"
          • request_id: string

          • type: "error"

            • "error"
        • type: "errored"

          • "errored"
      • MessageBatchCanceledResult object { type }

        • type: "canceled"

          • "canceled"
      • MessageBatchExpiredResult object { type }

        • type: "expired"

          • "expired"

Message Batch Request Counts

  • MessageBatchRequestCounts object { canceled, errored, expired, 2 more }

    • canceled: number

      消息批处理中已取消的请求数。

      在整个消息批处理处理结束之前,此值为零。

    • errored: number

      消息批处理中遇到错误的请求数。

      在整个消息批处理处理结束之前,此值为零。

    • expired: number

      消息批处理中已过期的请求数。

      在整个消息批处理处理结束之前,此值为零。

    • processing: number

      消息批处理中正在处理的请求数。

    • succeeded: number

      消息批处理中已成功完成的请求数。

      在整个消息批处理处理结束之前,此值为零。

Message Batch Result

  • MessageBatchResult = MessageBatchSucceededResult or MessageBatchErroredResult or MessageBatchCanceledResult or MessageBatchExpiredResult

    此请求的处理结果。

    如果处理成功则包含消息输出,如果处理失败则包含错误响应,或未尝试处理的原因(如取消或过期)。

    • MessageBatchSucceededResult object { message, type }

      • message: Message

        • id: string

          唯一对象标识符。

          ID 的格式和长度可能会随时间变化。

        • container: Container

          请求中使用的容器信息(用于代码执行工具)

          • id: string

            此请求中使用的容器标识符

          • expires_at: string

            容器将过期的时间。

        • content: array of ContentBlock

          模型生成的内容。

          这是一个内容块数组,每个块都有一个 type 来决定其形状。

          Example:

          [{"type": "text", "text": "Hi, I'm Claude."}]
          

          如果请求输入 messagesassistant 轮次结束,则响应 content 将直接从该轮次继续。您可以使用此来约束模型的输出。

          例如,如果输入 messages 为:

          [
            {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"},
            {"role": "assistant", "content": "The best answer is ("}
          ]
          

          则响应 content 可能为:

          [{"type": "text", "text": "B)"}]
          
          • TextBlock object { citations, text, type }

            • citations: array of TextCitation

              支持文本块的引用。

              返回的引用类型取决于被引用文档的类型。引用 PDF 会产生 page_location, plain text results in char_location, and content document results in content_block_location.

              • CitationCharLocation object { cited_text, document_index, document_title, 4 more }

                • cited_text: string

                • document_index: number

                • document_title: string

                • end_char_index: number

                • file_id: string

                • start_char_index: number

                • type: "char_location"

                  • "char_location"
              • CitationPageLocation object { cited_text, document_index, document_title, 4 more }

                • cited_text: string

                • document_index: number

                • document_title: string

                • end_page_number: number

                • file_id: string

                • start_page_number: number

                • type: "page_location"

                  • "page_location"
              • CitationContentBlockLocation object { cited_text, document_index, document_title, 4 more }

                • cited_text: string

                  引用块范围的完整文本,已连接。

                  始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

                • document_index: number

                • document_title: string

                • end_block_index: number

                  content 数组中引用块范围的排他性 0 基结束索引。

                  始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

                • file_id: string

                • start_block_index: number

                  content 数组中第一个引用块的 0 基索引。

                • type: "content_block_location"

                  • "content_block_location"
              • CitationsWebSearchResultLocation object { cited_text, encrypted_index, title, 2 more }

                • cited_text: string

                • encrypted_index: string

                • title: string

                • type: "web_search_result_location"

                  • "web_search_result_location"
                • url: string

              • CitationsSearchResultLocation object { cited_text, end_block_index, search_result_index, 4 more }

                • cited_text: string

                  引用块范围的完整文本,已连接。

                  始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

                • end_block_index: number

                  content 数组中引用块范围的排他性 0 基结束索引。

                  始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

                • search_result_index: number

                  在请求中所有 search_result 内容块中引用搜索结果的 0 基索引,按其在消息和工具结果中出现的顺序排列。

                  document_index 分开计数;服务器端 Web 搜索结果不包含在此计数中。

                • source: string

                • start_block_index: number

                  content 数组中第一个引用块的 0 基索引。

                • title: string

                • type: "search_result_location"

                  • "search_result_location"
            • text: string

            • type: "text"

              • "text"
          • ThinkingBlock object { signature, thinking, type }

            • signature: string

            • thinking: string

            • type: "thinking"

              • "thinking"
          • RedactedThinkingBlock object { data, type }

            • data: string

            • type: "redacted_thinking"

              • "redacted_thinking"
          • ToolUseBlock object { id, caller, input, 2 more }

            • id: string

            • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

              直接来自模型的工具调用。

              • DirectCaller object { type }

                直接来自模型的工具调用。

                • type: "direct"

                  • "direct"
              • ServerToolCaller object { tool_id, type }

                由服务器端工具生成的工具调用。

                • tool_id: string

                • type: "code_execution_20250825"

                  • "code_execution_20250825"
              • ServerToolCaller20260120 object { tool_id, type }

                • tool_id: string

                • type: "code_execution_20260120"

                  • "code_execution_20260120"
            • input: map[unknown]

            • name: string

            • type: "tool_use"

              • "tool_use"
          • ServerToolUseBlock object { id, caller, input, 2 more }

            • id: string

            • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

              直接来自模型的工具调用。

              • DirectCaller object { type }

                直接来自模型的工具调用。

              • ServerToolCaller object { tool_id, type }

                由服务器端工具生成的工具调用。

              • ServerToolCaller20260120 object { tool_id, type }

            • input: map[unknown]

            • name: "web_search" or "web_fetch" or "code_execution" or 4 more

              • "web_search"

              • "web_fetch"

              • "code_execution"

              • "bash_code_execution"

              • "text_editor_code_execution"

              • "tool_search_tool_regex"

              • "tool_search_tool_bm25"

            • type: "server_tool_use"

              • "server_tool_use"
          • WebSearchToolResultBlock object { caller, content, tool_use_id, type }

            • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

              直接来自模型的工具调用。

              • DirectCaller object { type }

                直接来自模型的工具调用。

              • ServerToolCaller object { tool_id, type }

                由服务器端工具生成的工具调用。

              • ServerToolCaller20260120 object { tool_id, type }

            • content: WebSearchToolResultBlockContent

              • WebSearchToolResultError object { error_code, type }

                • error_code: WebSearchToolResultErrorCode

                  • "invalid_tool_input"

                  • "unavailable"

                  • "max_uses_exceeded"

                  • "too_many_requests"

                  • "query_too_long"

                  • "request_too_large"

                • type: "web_search_tool_result_error"

                  • "web_search_tool_result_error"
              • array of WebSearchResultBlock

                • encrypted_content: string

                • page_age: string

                • title: string

                • type: "web_search_result"

                  • "web_search_result"
                • url: string

            • tool_use_id: string

            • type: "web_search_tool_result"

              • "web_search_tool_result"
          • WebFetchToolResultBlock object { caller, content, tool_use_id, type }

            • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

              直接来自模型的工具调用。

              • DirectCaller object { type }

                直接来自模型的工具调用。

              • ServerToolCaller object { tool_id, type }

                由服务器端工具生成的工具调用。

              • ServerToolCaller20260120 object { tool_id, type }

            • content: WebFetchToolResultErrorBlock or WebFetchBlock

              • WebFetchToolResultErrorBlock object { error_code, type }

                • error_code: WebFetchToolResultErrorCode

                  • "invalid_tool_input"

                  • "url_too_long"

                  • "url_not_allowed"

                  • "url_not_accessible"

                  • "unsupported_content_type"

                  • "too_many_requests"

                  • "max_uses_exceeded"

                  • "unavailable"

                • type: "web_fetch_tool_result_error"

                  • "web_fetch_tool_result_error"
              • WebFetchBlock object { content, retrieved_at, type, url }

                • content: DocumentBlock

                  • citations: CitationsConfig

                    文档的引用配置

                    • enabled: boolean
                  • source: Base64PDFSource or PlainTextSource

                    • Base64PDFSource object { data, media_type, type }

                      • data: string

                      • media_type: "application/pdf"

                        • "application/pdf"
                      • type: "base64"

                        • "base64"
                    • PlainTextSource object { data, media_type, type }

                      • data: string

                      • media_type: "text/plain"

                        • "text/plain"
                      • type: "text"

                        • "text"
                  • title: string

                    文档标题

                  • type: "document"

                    • "document"
                • retrieved_at: string

                  获取内容时的 ISO 8601 时间戳

                • type: "web_fetch_result"

                  • "web_fetch_result"
                • url: string

                  获取的内容 URL

            • tool_use_id: string

            • type: "web_fetch_tool_result"

              • "web_fetch_tool_result"
          • CodeExecutionToolResultBlock object { content, tool_use_id, type }

            • content: CodeExecutionToolResultBlockContent

              PFC + web_search 结果的带加密标准输出的代码执行结果。

              • CodeExecutionToolResultError object { error_code, type }

                • error_code: CodeExecutionToolResultErrorCode

                  • "invalid_tool_input"

                  • "unavailable"

                  • "too_many_requests"

                  • "execution_time_exceeded"

                • type: "code_execution_tool_result_error"

                  • "code_execution_tool_result_error"
              • CodeExecutionResultBlock object { content, return_code, stderr, 2 more }

                • content: array of CodeExecutionOutputBlock

                  • file_id: string

                  • type: "code_execution_output"

                    • "code_execution_output"
                • return_code: number

                • stderr: string

                • stdout: string

                • type: "code_execution_result"

                  • "code_execution_result"
              • EncryptedCodeExecutionResultBlock object { content, encrypted_stdout, return_code, 2 more }

                PFC + web_search 结果的带加密标准输出的代码执行结果。

                • content: array of CodeExecutionOutputBlock

                  • file_id: string

                  • type: "code_execution_output"

                • encrypted_stdout: string

                • return_code: number

                • stderr: string

                • type: "encrypted_code_execution_result"

                  • "encrypted_code_execution_result"
            • tool_use_id: string

            • type: "code_execution_tool_result"

              • "code_execution_tool_result"
          • BashCodeExecutionToolResultBlock object { content, tool_use_id, type }

            • content: BashCodeExecutionToolResultError or BashCodeExecutionResultBlock

              • BashCodeExecutionToolResultError object { error_code, type }

                • error_code: BashCodeExecutionToolResultErrorCode

                  • "invalid_tool_input"

                  • "unavailable"

                  • "too_many_requests"

                  • "execution_time_exceeded"

                  • "output_file_too_large"

                • type: "bash_code_execution_tool_result_error"

                  • "bash_code_execution_tool_result_error"
              • BashCodeExecutionResultBlock object { content, return_code, stderr, 2 more }

                • content: array of BashCodeExecutionOutputBlock

                  • file_id: string

                  • type: "bash_code_execution_output"

                    • "bash_code_execution_output"
                • return_code: number

                • stderr: string

                • stdout: string

                • type: "bash_code_execution_result"

                  • "bash_code_execution_result"
            • tool_use_id: string

            • type: "bash_code_execution_tool_result"

              • "bash_code_execution_tool_result"
          • TextEditorCodeExecutionToolResultBlock object { content, tool_use_id, type }

            • content: TextEditorCodeExecutionToolResultError or TextEditorCodeExecutionViewResultBlock or TextEditorCodeExecutionCreateResultBlock or TextEditorCodeExecutionStrReplaceResultBlock

              • TextEditorCodeExecutionToolResultError object { error_code, error_message, type }

                • error_code: TextEditorCodeExecutionToolResultErrorCode

                  • "invalid_tool_input"

                  • "unavailable"

                  • "too_many_requests"

                  • "execution_time_exceeded"

                  • "file_not_found"

                • error_message: string

                • type: "text_editor_code_execution_tool_result_error"

                  • "text_editor_code_execution_tool_result_error"
              • TextEditorCodeExecutionViewResultBlock object { content, file_type, num_lines, 3 more }

                • content: string

                • file_type: "text" or "image" or "pdf"

                  • "text"

                  • "image"

                  • "pdf"

                • num_lines: number

                • start_line: number

                • total_lines: number

                • type: "text_editor_code_execution_view_result"

                  • "text_editor_code_execution_view_result"
              • TextEditorCodeExecutionCreateResultBlock object { is_file_update, type }

                • is_file_update: boolean

                • type: "text_editor_code_execution_create_result"

                  • "text_editor_code_execution_create_result"
              • TextEditorCodeExecutionStrReplaceResultBlock object { lines, new_lines, new_start, 3 more }

                • lines: array of string

                • new_lines: number

                • new_start: number

                • old_lines: number

                • old_start: number

                • type: "text_editor_code_execution_str_replace_result"

                  • "text_editor_code_execution_str_replace_result"
            • tool_use_id: string

            • type: "text_editor_code_execution_tool_result"

              • "text_editor_code_execution_tool_result"
          • ToolSearchToolResultBlock object { content, tool_use_id, type }

            • content: ToolSearchToolResultError or ToolSearchToolSearchResultBlock

              • ToolSearchToolResultError object { error_code, error_message, type }

                • error_code: ToolSearchToolResultErrorCode

                  • "invalid_tool_input"

                  • "unavailable"

                  • "too_many_requests"

                  • "execution_time_exceeded"

                • error_message: string

                • type: "tool_search_tool_result_error"

                  • "tool_search_tool_result_error"
              • ToolSearchToolSearchResultBlock object { tool_references, type }

                • tool_references: array of ToolReferenceBlock

                  • tool_name: string

                  • type: "tool_reference"

                    • "tool_reference"
                • type: "tool_search_tool_search_result"

                  • "tool_search_tool_search_result"
            • tool_use_id: string

            • type: "tool_search_tool_result"

              • "tool_search_tool_result"
          • ContainerUploadBlock object { file_id, type }

            上传到容器的文件的响应模型。

            • file_id: string

            • type: "container_upload"

              • "container_upload"
        • model: Model

          将完成您的提示的模型。

          详见模型了解更多信息和选项。

          • "claude-opus-4-7" or "claude-mythos-preview" or "claude-opus-4-6" or 14 more

            将完成您的提示的模型。

            详见模型了解更多信息和选项。

            • "claude-opus-4-7"

              用于长时间运行的智能体和编程的前沿智能

            • "claude-mythos-preview"

              新一代智能,在编程和网络安全方面最强

            • "claude-opus-4-6"

              用于长时间运行的智能体和编程的前沿智能

            • "claude-sonnet-4-6"

              速度与智能的最佳组合

            • "claude-haiku-4-5"

              具有接近前沿智能的最快模型

            • "claude-haiku-4-5-20251001"

              具有接近前沿智能的最快模型

            • "claude-opus-4-5"

              结合最高智能与实用性能的高级模型

            • "claude-opus-4-5-20251101"

              结合最高智能与实用性能的高级模型

            • "claude-sonnet-4-5"

              用于智能体和编程的高性能模型

            • "claude-sonnet-4-5-20250929"

              用于智能体和编程的高性能模型

            • "claude-opus-4-1"

              用于专业复杂任务的卓越模型

            • "claude-opus-4-1-20250805"

              用于专业复杂任务的卓越模型

            • "claude-opus-4-0"

              用于复杂任务的强大模型

            • "claude-opus-4-20250514"

              用于复杂任务的强大模型

            • "claude-sonnet-4-0"

              具有扩展思考能力的高性能模型

            • "claude-sonnet-4-20250514"

              具有扩展思考能力的高性能模型

            • "claude-3-haiku-20240307"

              快速且经济高效的模型

          • string

        • role: "assistant"

          生成消息的对话角色。

          这将始终为 "assistant"

          • "assistant"
        • stop_details: RefusalStopDetails

          关于拒绝的结构化信息。

          • category: "cyber" or "bio"

            触发拒绝的策略类别。

            当拒绝未映射到命名类别时为 null

            • "cyber"

            • "bio"

          • explanation: string

            拒绝的人类可读解释。

            此文本不保证稳定。当该类别没有可用解释时为 null

          • type: "refusal"

            • "refusal"
        • stop_reason: StopReason

          停止的原因。

          这可能是以下值之一:

          • "end_turn": 模型到达自然停止点
          • "max_tokens": 我们超过了请求的 max_tokens 或模型的最大值
          • "stop_sequence": 生成了您提供的自定义 stop_sequences 之一
          • "tool_use": 模型调用了一个或多个工具
          • "pause_turn": 我们暂停了一个长时间运行的轮次。您可以在后续请求中原样提供响应,让模型继续。
          • "refusal": 当流式分类器介入处理潜在策略违规时

          在非流式模式下,此值始终非空。在流式模式下,message_start 事件中为 null,其他情况下非空。

          • "end_turn"

          • "max_tokens"

          • "stop_sequence"

          • "tool_use"

          • "pause_turn"

          • "refusal"

        • stop_sequence: string

          生成了哪个自定义停止序列(如果有)。

          如果生成了您的自定义停止序列之一,此值将为非空字符串。

        • type: "message"

          对象类型。

          对于消息,始终为 "message"

          • "message"
        • usage: Usage

          计费和速率限制使用情况。

          Anthropic 的 API 按 token 计数计费和限制速率,因为 token 代表了我们系统的底层成本。

          在底层,API 将请求转换为适合模型的格式。然后模型的输出经过解析阶段,成为 API 响应。因此,usage 中的 token 计数不会与 API 请求或响应的确切可见内容一一对应。

          例如,即使 Claude 返回空字符串响应,output_tokens 也不会为零。

          请求中的总输入 token 数是 input_tokenscache_creation_input_tokenscache_read_input_tokens 的总和。

          • cache_creation: CacheCreation

            按 TTL 分解的缓存 token

            • ephemeral_1h_input_tokens: number

              用于创建 1 小时缓存条目的输入 token 数量。

            • ephemeral_5m_input_tokens: number

              用于创建 5 分钟缓存条目的输入 token 数量。

          • cache_creation_input_tokens: number

            用于创建缓存条目的输入 token 数量。

          • cache_read_input_tokens: number

            从缓存中读取的输入 token 数量。

          • inference_geo: string

            此请求执行推理的地理区域。

          • input_tokens: number

            使用的输入 token 数量。

          • output_tokens: number

            使用的输出 token 数量。

          • server_tool_use: ServerToolUsage

            服务器工具请求数量。

            • web_fetch_requests: number

              Web 获取工具请求数量。

            • web_search_requests: number

              Web 搜索工具请求数量。

          • service_tier: "standard" or "priority" or "batch"

            请求是否使用了优先级、标准或批处理层级。

            • "standard"

            • "priority"

            • "batch"

      • type: "succeeded"

        • "succeeded"
    • MessageBatchErroredResult object { error, type }

      • error: ErrorResponse

        • error: ErrorObject

          • InvalidRequestError object { message, type }

            • message: string

            • type: "invalid_request_error"

              • "invalid_request_error"
          • AuthenticationError object { message, type }

            • message: string

            • type: "authentication_error"

              • "authentication_error"
          • BillingError object { message, type }

            • message: string

            • type: "billing_error"

              • "billing_error"
          • PermissionError object { message, type }

            • message: string

            • type: "permission_error"

              • "permission_error"
          • NotFoundError object { message, type }

            • message: string

            • type: "not_found_error"

              • "not_found_error"
          • RateLimitError object { message, type }

            • message: string

            • type: "rate_limit_error"

              • "rate_limit_error"
          • GatewayTimeoutError object { message, type }

            • message: string

            • type: "timeout_error"

              • "timeout_error"
          • APIErrorObject object { message, type }

            • message: string

            • type: "api_error"

              • "api_error"
          • OverloadedError object { message, type }

            • message: string

            • type: "overloaded_error"

              • "overloaded_error"
        • request_id: string

        • type: "error"

          • "error"
      • type: "errored"

        • "errored"
    • MessageBatchCanceledResult object { type }

      • type: "canceled"

        • "canceled"
    • MessageBatchExpiredResult object { type }

      • type: "expired"

        • "expired"

Message Batch Succeeded Result

  • MessageBatchSucceededResult object { message, type }

    • message: Message

      • id: string

        唯一对象标识符。

        ID 的格式和长度可能会随时间变化。

      • container: Container

        请求中使用的容器信息(用于代码执行工具)

        • id: string

          此请求中使用的容器标识符

        • expires_at: string

          容器将过期的时间。

      • content: array of ContentBlock

        模型生成的内容。

        这是一个内容块数组,每个块都有一个 type 来决定其形状。

        Example:

        [{"type": "text", "text": "Hi, I'm Claude."}]
        

        如果请求输入 messagesassistant 轮次结束,则响应 content 将直接从该轮次继续。您可以使用此来约束模型的输出。

        例如,如果输入 messages 为:

        [
          {"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"},
          {"role": "assistant", "content": "The best answer is ("}
        ]
        

        则响应 content 可能为:

        [{"type": "text", "text": "B)"}]
        
        • TextBlock object { citations, text, type }

          • citations: array of TextCitation

            支持文本块的引用。

            返回的引用类型取决于被引用文档的类型。引用 PDF 会产生 page_location, plain text results in char_location, and content document results in content_block_location.

            • CitationCharLocation object { cited_text, document_index, document_title, 4 more }

              • cited_text: string

              • document_index: number

              • document_title: string

              • end_char_index: number

              • file_id: string

              • start_char_index: number

              • type: "char_location"

                • "char_location"
            • CitationPageLocation object { cited_text, document_index, document_title, 4 more }

              • cited_text: string

              • document_index: number

              • document_title: string

              • end_page_number: number

              • file_id: string

              • start_page_number: number

              • type: "page_location"

                • "page_location"
            • CitationContentBlockLocation object { cited_text, document_index, document_title, 4 more }

              • cited_text: string

                引用块范围的完整文本,已连接。

                始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

              • document_index: number

              • document_title: string

              • end_block_index: number

                content 数组中引用块范围的排他性 0 基结束索引。

                始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

              • file_id: string

              • start_block_index: number

                content 数组中第一个引用块的 0 基索引。

              • type: "content_block_location"

                • "content_block_location"
            • CitationsWebSearchResultLocation object { cited_text, encrypted_index, title, 2 more }

              • cited_text: string

              • encrypted_index: string

              • title: string

              • type: "web_search_result_location"

                • "web_search_result_location"
              • url: string

            • CitationsSearchResultLocation object { cited_text, end_block_index, search_result_index, 4 more }

              • cited_text: string

                引用块范围的完整文本,已连接。

                始终等于 content[start_block_index:end_block_index] 内容的连接。文本块是最小可引用单元;此字段永远不会是单个块的子字符串。不计入输出 token,在后续轮次中发回时也不计入输入 token。

              • end_block_index: number

                content 数组中引用块范围的排他性 0 基结束索引。

                始终大于 start_block_index;单块引用的 end_block_index = start_block_index + 1

              • search_result_index: number

                在请求中所有 search_result 内容块中引用搜索结果的 0 基索引,按其在消息和工具结果中出现的顺序排列。

                document_index 分开计数;服务器端 Web 搜索结果不包含在此计数中。

              • source: string

              • start_block_index: number

                content 数组中第一个引用块的 0 基索引。

              • title: string

              • type: "search_result_location"

                • "search_result_location"
          • text: string

          • type: "text"

            • "text"
        • ThinkingBlock object { signature, thinking, type }

          • signature: string

          • thinking: string

          • type: "thinking"

            • "thinking"
        • RedactedThinkingBlock object { data, type }

          • data: string

          • type: "redacted_thinking"

            • "redacted_thinking"
        • ToolUseBlock object { id, caller, input, 2 more }

          • id: string

          • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

            直接来自模型的工具调用。

            • DirectCaller object { type }

              直接来自模型的工具调用。

              • type: "direct"

                • "direct"
            • ServerToolCaller object { tool_id, type }

              由服务器端工具生成的工具调用。

              • tool_id: string

              • type: "code_execution_20250825"

                • "code_execution_20250825"
            • ServerToolCaller20260120 object { tool_id, type }

              • tool_id: string

              • type: "code_execution_20260120"

                • "code_execution_20260120"
          • input: map[unknown]

          • name: string

          • type: "tool_use"

            • "tool_use"
        • ServerToolUseBlock object { id, caller, input, 2 more }

          • id: string

          • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

            直接来自模型的工具调用。

            • DirectCaller object { type }

              直接来自模型的工具调用。

            • ServerToolCaller object { tool_id, type }

              由服务器端工具生成的工具调用。

            • ServerToolCaller20260120 object { tool_id, type }

          • input: map[unknown]

          • name: "web_search" or "web_fetch" or "code_execution" or 4 more

            • "web_search"

            • "web_fetch"

            • "code_execution"

            • "bash_code_execution"

            • "text_editor_code_execution"

            • "tool_search_tool_regex"

            • "tool_search_tool_bm25"

          • type: "server_tool_use"

            • "server_tool_use"
        • WebSearchToolResultBlock object { caller, content, tool_use_id, type }

          • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

            直接来自模型的工具调用。

            • DirectCaller object { type }

              直接来自模型的工具调用。

            • ServerToolCaller object { tool_id, type }

              由服务器端工具生成的工具调用。

            • ServerToolCaller20260120 object { tool_id, type }

          • content: WebSearchToolResultBlockContent

            • WebSearchToolResultError object { error_code, type }

              • error_code: WebSearchToolResultErrorCode

                • "invalid_tool_input"

                • "unavailable"

                • "max_uses_exceeded"

                • "too_many_requests"

                • "query_too_long"

                • "request_too_large"

              • type: "web_search_tool_result_error"

                • "web_search_tool_result_error"
            • array of WebSearchResultBlock

              • encrypted_content: string

              • page_age: string

              • title: string

              • type: "web_search_result"

                • "web_search_result"
              • url: string

          • tool_use_id: string

          • type: "web_search_tool_result"

            • "web_search_tool_result"
        • WebFetchToolResultBlock object { caller, content, tool_use_id, type }

          • caller: DirectCaller or ServerToolCaller or ServerToolCaller20260120

            直接来自模型的工具调用。

            • DirectCaller object { type }

              直接来自模型的工具调用。

            • ServerToolCaller object { tool_id, type }

              由服务器端工具生成的工具调用。

            • ServerToolCaller20260120 object { tool_id, type }

          • content: WebFetchToolResultErrorBlock or WebFetchBlock

            • WebFetchToolResultErrorBlock object { error_code, type }

              • error_code: WebFetchToolResultErrorCode

                • "invalid_tool_input"

                • "url_too_long"

                • "url_not_allowed"

                • "url_not_accessible"

                • "unsupported_content_type"

                • "too_many_requests"

                • "max_uses_exceeded"

                • "unavailable"

              • type: "web_fetch_tool_result_error"

                • "web_fetch_tool_result_error"
            • WebFetchBlock object { content, retrieved_at, type, url }

              • content: DocumentBlock

                • citations: CitationsConfig

                  文档的引用配置

                  • enabled: boolean
                • source: Base64PDFSource or PlainTextSource

                  • Base64PDFSource object { data, media_type, type }

                    • data: string

                    • media_type: "application/pdf"

                      • "application/pdf"
                    • type: "base64"

                      • "base64"
                  • PlainTextSource object { data, media_type, type }

                    • data: string

                    • media_type: "text/plain"

                      • "text/plain"
                    • type: "text"

                      • "text"
                • title: string

                  文档标题

                • type: "document"

                  • "document"
              • retrieved_at: string

                获取内容时的 ISO 8601 时间戳

              • type: "web_fetch_result"

                • "web_fetch_result"
              • url: string

                获取的内容 URL

          • tool_use_id: string

          • type: "web_fetch_tool_result"

            • "web_fetch_tool_result"
        • CodeExecutionToolResultBlock object { content, tool_use_id, type }

          • content: CodeExecutionToolResultBlockContent

            PFC + web_search 结果的带加密标准输出的代码执行结果。

            • CodeExecutionToolResultError object { error_code, type }

              • error_code: CodeExecutionToolResultErrorCode

                • "invalid_tool_input"

                • "unavailable"

                • "too_many_requests"

                • "execution_time_exceeded"

              • type: "code_execution_tool_result_error"

                • "code_execution_tool_result_error"
            • CodeExecutionResultBlock object { content, return_code, stderr, 2 more }

              • content: array of CodeExecutionOutputBlock

                • file_id: string

                • type: "code_execution_output"

                  • "code_execution_output"
              • return_code: number

              • stderr: string

              • stdout: string

              • type: "code_execution_result"

                • "code_execution_result"
            • EncryptedCodeExecutionResultBlock object { content, encrypted_stdout, return_code, 2 more }

              PFC + web_search 结果的带加密标准输出的代码执行结果。

              • content: array of CodeExecutionOutputBlock

                • file_id: string

                • type: "code_execution_output"

              • encrypted_stdout: string

              • return_code: number

              • stderr: string

              • type: "encrypted_code_execution_result"

                • "encrypted_code_execution_result"
          • tool_use_id: string

          • type: "code_execution_tool_result"

            • "code_execution_tool_result"
        • BashCodeExecutionToolResultBlock object { content, tool_use_id, type }

          • content: BashCodeExecutionToolResultError or BashCodeExecutionResultBlock

            • BashCodeExecutionToolResultError object { error_code, type }

              • error_code: BashCodeExecutionToolResultErrorCode

                • "invalid_tool_input"

                • "unavailable"

                • "too_many_requests"

                • "execution_time_exceeded"

                • "output_file_too_large"

              • type: "bash_code_execution_tool_result_error"

                • "bash_code_execution_tool_result_error"
            • BashCodeExecutionResultBlock object { content, return_code, stderr, 2 more }

              • content: array of BashCodeExecutionOutputBlock

                • file_id: string

                • type: "bash_code_execution_output"

                  • "bash_code_execution_output"
              • return_code: number

              • stderr: string

              • stdout: string

              • type: "bash_code_execution_result"

                • "bash_code_execution_result"
          • tool_use_id: string

          • type: "bash_code_execution_tool_result"

            • "bash_code_execution_tool_result"
        • TextEditorCodeExecutionToolResultBlock object { content, tool_use_id, type }

          • content: TextEditorCodeExecutionToolResultError or TextEditorCodeExecutionViewResultBlock or TextEditorCodeExecutionCreateResultBlock or TextEditorCodeExecutionStrReplaceResultBlock

            • TextEditorCodeExecutionToolResultError object { error_code, error_message, type }

              • error_code: TextEditorCodeExecutionToolResultErrorCode

                • "invalid_tool_input"

                • "unavailable"

                • "too_many_requests"

                • "execution_time_exceeded"

                • "file_not_found"

              • error_message: string

              • type: "text_editor_code_execution_tool_result_error"

                • "text_editor_code_execution_tool_result_error"
            • TextEditorCodeExecutionViewResultBlock object { content, file_type, num_lines, 3 more }

              • content: string

              • file_type: "text" or "image" or "pdf"

                • "text"

                • "image"

                • "pdf"

              • num_lines: number

              • start_line: number

              • total_lines: number

              • type: "text_editor_code_execution_view_result"

                • "text_editor_code_execution_view_result"
            • TextEditorCodeExecutionCreateResultBlock object { is_file_update, type }

              • is_file_update: boolean

              • type: "text_editor_code_execution_create_result"

                • "text_editor_code_execution_create_result"
            • TextEditorCodeExecutionStrReplaceResultBlock object { lines, new_lines, new_start, 3 more }

              • lines: array of string

              • new_lines: number

              • new_start: number

              • old_lines: number

              • old_start: number

              • type: "text_editor_code_execution_str_replace_result"

                • "text_editor_code_execution_str_replace_result"
          • tool_use_id: string

          • type: "text_editor_code_execution_tool_result"

            • "text_editor_code_execution_tool_result"
        • ToolSearchToolResultBlock object { content, tool_use_id, type }

          • content: ToolSearchToolResultError or ToolSearchToolSearchResultBlock

            • ToolSearchToolResultError object { error_code, error_message, type }

              • error_code: ToolSearchToolResultErrorCode

                • "invalid_tool_input"

                • "unavailable"

                • "too_many_requests"

                • "execution_time_exceeded"

              • error_message: string

              • type: "tool_search_tool_result_error"

                • "tool_search_tool_result_error"
            • ToolSearchToolSearchResultBlock object { tool_references, type }

              • tool_references: array of ToolReferenceBlock

                • tool_name: string

                • type: "tool_reference"

                  • "tool_reference"
              • type: "tool_search_tool_search_result"

                • "tool_search_tool_search_result"
          • tool_use_id: string

          • type: "tool_search_tool_result"

            • "tool_search_tool_result"
        • ContainerUploadBlock object { file_id, type }

          上传到容器的文件的响应模型。

          • file_id: string

          • type: "container_upload"

            • "container_upload"
      • model: Model

        将完成您的提示的模型。

        详见模型了解更多信息和选项。

        • "claude-opus-4-7" or "claude-mythos-preview" or "claude-opus-4-6" or 14 more

          将完成您的提示的模型。

          详见模型了解更多信息和选项。

          • "claude-opus-4-7"

            用于长时间运行的智能体和编程的前沿智能

          • "claude-mythos-preview"

            新一代智能,在编程和网络安全方面最强

          • "claude-opus-4-6"

            用于长时间运行的智能体和编程的前沿智能

          • "claude-sonnet-4-6"

            速度与智能的最佳组合

          • "claude-haiku-4-5"

            具有接近前沿智能的最快模型

          • "claude-haiku-4-5-20251001"

            具有接近前沿智能的最快模型

          • "claude-opus-4-5"

            结合最高智能与实用性能的高级模型

          • "claude-opus-4-5-20251101"

            结合最高智能与实用性能的高级模型

          • "claude-sonnet-4-5"

            用于智能体和编程的高性能模型

          • "claude-sonnet-4-5-20250929"

            用于智能体和编程的高性能模型

          • "claude-opus-4-1"

            用于专业复杂任务的卓越模型

          • "claude-opus-4-1-20250805"

            用于专业复杂任务的卓越模型

          • "claude-opus-4-0"

            用于复杂任务的强大模型

          • "claude-opus-4-20250514"

            用于复杂任务的强大模型

          • "claude-sonnet-4-0"

            具有扩展思考能力的高性能模型

          • "claude-sonnet-4-20250514"

            具有扩展思考能力的高性能模型

          • "claude-3-haiku-20240307"

            快速且经济高效的模型

        • string

      • role: "assistant"

        生成消息的对话角色。

        这将始终为 "assistant"

        • "assistant"
      • stop_details: RefusalStopDetails

        关于拒绝的结构化信息。

        • category: "cyber" or "bio"

          触发拒绝的策略类别。

          当拒绝未映射到命名类别时为 null

          • "cyber"

          • "bio"

        • explanation: string

          拒绝的人类可读解释。

          此文本不保证稳定。当该类别没有可用解释时为 null

        • type: "refusal"

          • "refusal"
      • stop_reason: StopReason

        停止的原因。

        这可能是以下值之一:

        • "end_turn": 模型到达自然停止点
        • "max_tokens": 我们超过了请求的 max_tokens 或模型的最大值
        • "stop_sequence": 生成了您提供的自定义 stop_sequences 之一
        • "tool_use": 模型调用了一个或多个工具
        • "pause_turn": 我们暂停了一个长时间运行的轮次。您可以在后续请求中原样提供响应,让模型继续。
        • "refusal": 当流式分类器介入处理潜在策略违规时

        在非流式模式下,此值始终非空。在流式模式下,message_start 事件中为 null,其他情况下非空。

        • "end_turn"

        • "max_tokens"

        • "stop_sequence"

        • "tool_use"

        • "pause_turn"

        • "refusal"

      • stop_sequence: string

        生成了哪个自定义停止序列(如果有)。

        如果生成了您的自定义停止序列之一,此值将为非空字符串。

      • type: "message"

        对象类型。

        对于消息,始终为 "message"

        • "message"
      • usage: Usage

        计费和速率限制使用情况。

        Anthropic 的 API 按 token 计数计费和限制速率,因为 token 代表了我们系统的底层成本。

        在底层,API 将请求转换为适合模型的格式。然后模型的输出经过解析阶段,成为 API 响应。因此,usage 中的 token 计数不会与 API 请求或响应的确切可见内容一一对应。

        例如,即使 Claude 返回空字符串响应,output_tokens 也不会为零。

        请求中的总输入 token 数是 input_tokenscache_creation_input_tokenscache_read_input_tokens 的总和。

        • cache_creation: CacheCreation

          按 TTL 分解的缓存 token

          • ephemeral_1h_input_tokens: number

            用于创建 1 小时缓存条目的输入 token 数量。

          • ephemeral_5m_input_tokens: number

            用于创建 5 分钟缓存条目的输入 token 数量。

        • cache_creation_input_tokens: number

          用于创建缓存条目的输入 token 数量。

        • cache_read_input_tokens: number

          从缓存中读取的输入 token 数量。

        • inference_geo: string

          此请求执行推理的地理区域。

        • input_tokens: number

          使用的输入 token 数量。

        • output_tokens: number

          使用的输出 token 数量。

        • server_tool_use: ServerToolUsage

          服务器工具请求数量。

          • web_fetch_requests: number

            Web 获取工具请求数量。

          • web_search_requests: number

            Web 搜索工具请求数量。

        • service_tier: "standard" or "priority" or "batch"

          请求是否使用了优先级、标准或批处理层级。

          • "standard"

          • "priority"

          • "batch"

    • type: "succeeded"

      • "succeeded"