Source Intelligence
Sweep 28 Aug 2026 · 00:00Z Build v2.1.250 478 read Stable v2.1.236 Latest v2.1.250 Next v2.1.250 Feeds RSS JSON llms.txt

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

One change

Batches

api/beta/messages/batches

first seen The page's own history The capture it came from

Nearest release: v2.1.245, published an hour after this site recorded the change. Shown because the two are within 24 hours of each other. Nothing here says the release caused the edit.

api/beta/messages/batches Changed · +1988 / -1419 lines

### Headers ### Body parameters #### Response (200) ### Path parameters ### Headers #### Response (200) ### Query parameters ### Headers #### Response (200) ### Path parameters ### Headers #### Response (200) ### Path parameters ### Headers #### Response (200) ### Path parameters ### Headers ## Domain types ### Header Parameters ### Body Parameters #### Response ### Path Parameters ### Header Parameters #### Response ### Query Parameters ### Header Parameters #### Response ### Path Parameters ### Header Parameters #### Response ### Path Parameters ### Header Parameters #### Response ### Path Parameters ### Header Parameters ## Domain Types

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

The two sides of this change are too far apart to line up, so this is the differ's own diff of it.

from line 1
----
-title: Batches
-url: https://platform.claude.com/docs/en/api/beta/messages/batches
----
-
 # Batches
 
 ## Create a Message Batch
 
-**post** `/v1/messages/batches`
+**POST** `/v1/messages/batches`
 
 Send a batch of Message creation requests.
 
from line 10
 
 Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)
 
-### Header Parameters
+### Headers
 
 - `"anthropic-beta": optional array of AnthropicBeta`
 
from line 92
 
   The user profile ID to attribute the requests in this batch to. Use when acting on behalf of a party other than your organization. Requires the `user-profiles` beta header. Applies to every request in the batch; an individual request whose `user_profile_id` body field conflicts with this header is errored.
 
-### Body Parameters
-
-- `requests: array of object { custom_id, params }`
+### Body parameters
+
+- `requests: array of object`
 
   List of requests for prompt completion. Each is an individual request to create a Message.
 
+  maxItems: 100000, minItems: 1
+
   - `custom_id: string`
 
     Developer-provided ID created for each request in a Message Batch. Useful for matching results to requests, as results may be given out of request order.
 
     Must be unique for each request within the Message Batch.
 
-  - `params: object { max_tokens, messages, model, 22 more }`
+    maxLength: 64, minLength: 1, pattern: ^[a-zA-Z0-9_-]{1,64}$
+
+  - `params: object`
 
     Messages API creation parameters for the individual request.
 
from line 123
       Set to `0` to populate the [prompt cache](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#pre-warming-the-cache) without generating a response.
 
       Different models have different maximum values for this parameter.  See [models](https://platform.claude.com/docs/en/about-claude/models/overview) for details.
+
+      minimum: 0
 
     - `messages: array of BetaMessageParam`
 
from line 183
 
         - `array of BetaContentBlockParam`
 
-          - `BetaTextBlockParam object { text, type, cache_control, citations }`
+          - `BetaTextBlockParam object`
 
             - `text: string`
 
+              minLength: 1
+
             - `type: "text"`
 
-              - `"text"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
               - `type: "ephemeral"`
-
-                - `"ephemeral"`
 
               - `ttl: optional "5m" or "1h"`
 
from line 214
 
             - `citations: optional array of BetaTextCitationParam or null`
 
-              - `BetaCitationCharLocationParam object { cited_text, document_index, document_title, 3 more }`
+              - `BetaCitationCharLocationParam object`
 
                 - `cited_text: string`
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
+                  maxLength: 500, minLength: 1
+
                 - `end_char_index: number`
 
                 - `start_char_index: number`
 
+                  minimum: 0
+
                 - `type: "char_location"`
 
-                  - `"char_location"`
-
-              - `BetaCitationPageLocationParam object { cited_text, document_index, document_title, 3 more }`
+              - `BetaCitationPageLocationParam object`
 
                 - `cited_text: string`
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
+                  maxLength: 500, minLength: 1
+
                 - `end_page_number: number`
 
                 - `start_page_number: number`
 
+                  minimum: 1
+
                 - `type: "page_location"`
 
-                  - `"page_location"`
-
-              - `BetaCitationContentBlockLocationParam object { cited_text, document_index, document_title, 3 more }`
+              - `BetaCitationContentBlockLocationParam object`
 
                 - `cited_text: string`
 
from line 264
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
+                  maxLength: 500, minLength: 1
+
                 - `end_block_index: number`
 
                   Exclusive 0-based end index of the cited block range in the source's `content` array.
from line 280
 
                   0-based index of the first cited block in the source's `content` array.
 
+                  minimum: 0
+
                 - `type: "content_block_location"`
 
-                  - `"content_block_location"`
-
-              - `BetaCitationWebSearchResultLocationParam object { cited_text, encrypted_index, title, 2 more }`
+              - `BetaCitationWebSearchResultLocationParam object`
 
                 - `cited_text: string`
 
from line 292
 
                 - `title: string or null`
 
+                  maxLength: 512, minLength: 1
+
                 - `type: "web_search_result_location"`
 
-                  - `"web_search_result_location"`
-
                 - `url: string`
 
-              - `BetaCitationSearchResultLocationParam object { cited_text, end_block_index, search_result_index, 4 more }`
+                  minLength: 1
+
+              - `BetaCitationSearchResultLocationParam object`
 
                 - `cited_text: string`
 
from line 320
 
                   Counted separately from `document_index`; server-side web search results are not included in this count.
 
+                  minimum: 0
+
                 - `source: string`
 
                 - `start_block_index: number`
 
                   0-based index of the first cited block in the source's `content` array.
 
+                  minimum: 0
+
                 - `title: string or null`
 
                 - `type: "search_result_location"`
 
-                  - `"search_result_location"`
-
-          - `BetaImageBlockParam object { source, type, cache_control, transformations }`
+          - `BetaImageBlockParam object`
 
             - `source: BetaBase64ImageSource or BetaURLImageSource or BetaFileImageSource`
 
-              - `BetaBase64ImageSource object { data, media_type, type }`
+              - `BetaBase64ImageSource object`
 
                 - `data: string`
 
+                  format: byte
+
                 - `media_type: "image/jpeg" or "image/png" or "image/gif" or "image/webp"`
 
                   - `"image/jpeg"`
from line 356
 
                 - `type: "base64"`
 
-                  - `"base64"`
-
-              - `BetaURLImageSource object { type, url }`
+              - `BetaURLImageSource object`
 
                 - `type: "url"`
 
-                  - `"url"`
-
                 - `url: string`
 
-              - `BetaFileImageSource object { file_id, type }`
+              - `BetaFileImageSource object`
 
                 - `file_id: string`
 
                 - `type: "file"`
 
-                  - `"file"`
-
             - `type: "image"`
 
-              - `"image"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 386
 
                 - `"error"`
 
-          - `BetaRequestDocumentBlock object { source, type, cache_control, 3 more }`
+          - `BetaRequestDocumentBlock object`
 
             - `source: BetaBase64PDFSource or BetaPlainTextSource or BetaContentBlockSource or 2 more`
 
-              - `BetaBase64PDFSource object { data, media_type, type }`
+              - `BetaBase64PDFSource object`
 
                 - `data: string`
 
+                  format: byte
+
                 - `media_type: "application/pdf"`
 
-                  - `"application/pdf"`
-
                 - `type: "base64"`
 
-                  - `"base64"`
-
-              - `BetaPlainTextSource object { data, media_type, type }`
+              - `BetaPlainTextSource object`
 
                 - `data: string`
 
                 - `media_type: "text/plain"`
 
-                  - `"text/plain"`
-
                 - `type: "text"`
 
-                  - `"text"`
-
-              - `BetaContentBlockSource object { content, type }`
+              - `BetaContentBlockSource object`
 
                 - `content: string or array of BetaContentBlockSourceContent`
 
from line 416
 
                   - `BetaContentBlockSourceContent = array of BetaContentBlockSourceContent`
 
-                    - `BetaTextBlockParam object { text, type, cache_control, citations }`
-
-                    - `BetaImageBlockParam object { source, type, cache_control, transformations }`
+                    - `BetaTextBlockParam object`
+
+                    - `BetaImageBlockParam object`
 
                 - `type: "content"`
 
-                  - `"content"`
-
-              - `BetaURLPDFSource object { type, url }`
+              - `BetaURLPDFSource object`
 
                 - `type: "url"`
 
-                  - `"url"`
-
                 - `url: string`
 
-              - `BetaFileDocumentSource object { file_id, type }`
+              - `BetaFileDocumentSource object`
 
                 - `file_id: string`
 
                 - `type: "file"`
 
-                  - `"file"`
-
             - `type: "document"`
 
-              - `"document"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 446
 
             - `context: optional string or null`
 
+              minLength: 1
+
             - `title: optional string or null`
 
-          - `BetaSearchResultBlockParam object { content, source, title, 3 more }`
+              maxLength: 500, minLength: 1
+
+          - `BetaSearchResultBlockParam object`
 
             - `content: array of BetaTextBlockParam`
 
               - `text: string`
 
+                minLength: 1
+
               - `type: "text"`
 
               - `cache_control: optional BetaCacheControlEphemeral or null`
from line 474
 
             - `type: "search_result"`
 
-              - `"search_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
             - `citations: optional BetaCitationsConfigParam`
 
-          - `BetaThinkingBlockParam object { signature, thinking, type }`
+          - `BetaThinkingBlockParam object`
 
             - `signature: string`
 
from line 494
 
             - `type: "thinking"`
 
-              - `"thinking"`
-
-          - `BetaRedactedThinkingBlockParam object { data, type }`
+          - `BetaRedactedThinkingBlockParam object`
 
             - `data: string`
 
from line 502
 
             - `type: "redacted_thinking"`
 
-              - `"redacted_thinking"`
-
-          - `BetaToolUseBlockParam object { id, input, name, 4 more }`
+          - `BetaToolUseBlockParam object`
 
             - `id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `input: map[unknown]`
 
             - `name: string`
 
+              maxLength: 200, minLength: 1
+
             - `type: "tool_use"`
 
-              - `"tool_use"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 524
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
                 - `type: "direct"`
 
-                  - `"direct"`
-
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
                 - `tool_id: string`
 
+                  pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
                 - `type: "code_execution_20250825"`
 
-                  - `"code_execution_20250825"`
-
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
+              - `BetaServerToolCaller20260120 object`
 
                 - `tool_id: string`
 
+                  pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
                 - `type: "code_execution_20260120"`
 
-                  - `"code_execution_20260120"`
-
             - `toolset_name: optional string or null`
 
               For a toolset member tool_use, the toolset family this member belongs to.
 
-          - `BetaToolResultBlockParam object { tool_use_id, type, cache_control, 3 more }`
+              maxLength: 64, minLength: 1, pattern: ^[a-zA-Z0-9_-]+$
+
+          - `BetaToolResultBlockParam object`
 
             - `tool_use_id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `type: "tool_result"`
 
-              - `"tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 572
 
               - `array of BetaTextBlockParam or BetaImageBlockParam or BetaSearchResultBlockParam or 3 more`
 
-                - `BetaTextBlockParam object { text, type, cache_control, citations }`
-
-                - `BetaImageBlockParam object { source, type, cache_control, transformations }`
-
-                - `BetaSearchResultBlockParam object { content, source, title, 3 more }`
-
-                - `BetaRequestDocumentBlock object { source, type, cache_control, 3 more }`
-
-                - `BetaToolReferenceBlockParam object { tool_name, type, cache_control }`
+                - `BetaTextBlockParam object`
+
+                - `BetaImageBlockParam object`
+
+                - `BetaSearchResultBlockParam object`
+
+                - `BetaRequestDocumentBlock object`
+
+                - `BetaToolReferenceBlockParam object`
 
                   Tool reference block that can be included in tool_result content.
 
                   - `tool_name: string`
 
+                    maxLength: 256, minLength: 1, pattern: ^[a-zA-Z0-9_-]{1,256}$
+
                   - `type: "tool_reference"`
 
-                    - `"tool_reference"`
-
                   - `cache_control: optional BetaCacheControlEphemeral or null`
 
                     Create a cache control breakpoint at this content block.
 
-                - `BetaBrowserStateBlockParam object { tabs, type, cache_control, state_changes }`
+                - `BetaBrowserStateBlockParam object`
 
                   The caller's browser state after a browser toolset member call —
                   the full inventory of open tabs, which tab is active, and any side
from line 608
 
                     All tabs open in the browser after this call — the full inventory, not a delta. May be empty. Whenever non-empty, exactly one entry carries `active: true`.
 
+                    maxItems: 100
+
                     - `tab_id: string`
 
                       The caller-assigned identifier for this tab, unique within the inventory.
 
+                      maxLength: 4096, minLength: 1, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                     - `title: string`
 
                       The title of the page the tab is showing. May be empty.
 
+                      maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                     - `url: string`
 
                       The URL of the page the tab is showing. May be empty.
 
+                      maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                     - `active: optional boolean`
 
                       Whether this tab is the active tab after this call. Whenever `tabs` is non-empty, exactly one entry is marked `active: true`.
 
                   - `type: "browser_state"`
 
-                    - `"browser_state"`
-
                   - `cache_control: optional BetaCacheControlEphemeral or null`
 
                     Create a cache control breakpoint at this content block.
from line 642
 
                     Tabs opened and download state changes during this call. "Nothing to report" is expressed by omitting the field, never by an empty list.
 
-                    - `BetaBrowserStateChangeTabOpened object { tab_id, type }`
+                    maxItems: 200, minItems: 1
+
+                    - `BetaBrowserStateChangeTabOpened object`
 
                       A tab this call's execution opened that remains open at its end —
                       the creation delta of the `tabs` inventory, not an event log.
from line 658
 
                         The `tab_id` of the opened tab, present in `tabs`.
 
+                        maxLength: 4096, minLength: 1, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                       - `type: "tab_opened"`
 
-                        - `"tab_opened"`
-
-                    - `BetaBrowserStateChangeDownloadStarted object { download_id, type, url }`
+                    - `BetaBrowserStateChangeDownloadStarted object`
 
                       A file download that started during this call.
 
from line 670
 
                         The caller-assigned identifier for this download, stable across the state changes reporting it.
 
+                        maxLength: 4096, minLength: 1, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                       - `type: "download_started"`
 
-                        - `"download_started"`
-
                       - `url: string`
 
                         The final post-redirect URL the download was served from.
 
-                    - `BetaBrowserStateChangeDownloadCompleted object { download_id, type, url, 2 more }`
+                        maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
+                    - `BetaBrowserStateChangeDownloadCompleted object`
 
                       A file download that finished during this call, reported with the
                       same `download_id` as its `download_started` — or without a prior
from line 691
 
                         The caller-assigned identifier for this download, stable across the state changes reporting it.
 
+                        maxLength: 4096, minLength: 1, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                       - `type: "download_completed"`
 
-                        - `"download_completed"`
-
                       - `url: string`
 
                         The final post-redirect URL the download was served from.
 
+                        maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                       - `path: optional string or null`
 
                         Where the executor saved the file, on the executor's filesystem. Only included when another tool in the same environment can read the file at that path.
 
+                        pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$, maxLength: 4096
+
                       - `size_bytes: optional number or null`
 
                         The completed download's size.
 
-                    - `BetaBrowserStateChangeDownloadFailed object { download_id, type, url, error }`
+                        minimum: 0
+
+                    - `BetaBrowserStateChangeDownloadFailed object`
 
                       A file download that failed — or was cancelled — during this call.
 
from line 721
 
                         The caller-assigned identifier for this download, stable across the state changes reporting it.
 
+                        maxLength: 4096, minLength: 1, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                       - `type: "download_failed"`
 
-                        - `"download_failed"`
-
                       - `url: string`
 
                         The final post-redirect URL the download was served from.
 
+                        maxLength: 4096, pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$
+
                       - `error: optional string or null`
 
                         The failure or cancellation detail, when known.
 
+                        pattern: ^[^\x00-\x1f\x7f-\x9f\u2028\u2029]*$, maxLength: 4096
+
             - `is_error: optional boolean`
 
             - `toolset_name: optional string or null`
 
               For a toolset member tool_result, the toolset family of the paired tool_use.
 
-          - `BetaServerToolUseBlockParam object { id, input, name, 3 more }`
+              maxLength: 64, minLength: 1, pattern: ^[a-zA-Z0-9_-]+$
+
+          - `BetaServerToolUseBlockParam object`
 
             - `id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `input: map[unknown]`
 
             - `name: "advisor" or "web_search" or "web_fetch" or 5 more`
from line 773
 
             - `type: "server_tool_use"`
 
-              - `"server_tool_use"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 781
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaWebSearchToolResultBlockParam object { content, tool_use_id, type, 2 more }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaWebSearchToolResultBlockParam object`
 
             - `content: BetaWebSearchToolResultBlockParamContent`
 
from line 803
 
                 - `type: "web_search_result"`
 
-                  - `"web_search_result"`
-
                 - `url: string`
 
                 - `page_age: optional string or null`
 
-              - `BetaWebSearchToolRequestError object { error_code, type }`
+              - `BetaWebSearchToolRequestError object`
 
                 - `error_code: BetaWebSearchToolResultErrorCode`
 
from line 825
 
                 - `type: "web_search_tool_result_error"`
 
-                  - `"web_search_tool_result_error"`
-
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "web_search_tool_result"`
 
-              - `"web_search_tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 839
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaWebFetchToolResultBlockParam object { content, tool_use_id, type, 2 more }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaWebFetchToolResultBlockParam object`
 
             - `content: BetaWebFetchToolResultErrorBlockParam or BetaWebFetchBlockParam`
 
-              - `BetaWebFetchToolResultErrorBlockParam object { error_code, type }`
+              - `BetaWebFetchToolResultErrorBlockParam object`
 
                 - `error_code: BetaWebFetchToolResultErrorCode`
 
from line 877
 
                 - `type: "web_fetch_tool_result_error"`
 
-                  - `"web_fetch_tool_result_error"`
-
-              - `BetaWebFetchBlockParam object { content, type, url, retrieved_at }`
+              - `BetaWebFetchBlockParam object`
 
                 - `content: BetaRequestDocumentBlock`
 
                 - `type: "web_fetch_result"`
 
-                  - `"web_fetch_result"`
-
                 - `url: string`
 
                   Fetched content URL
from line 893
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "web_fetch_tool_result"`
 
-              - `"web_fetch_tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 905
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaAdvisorToolResultBlockParam object { content, tool_use_id, type, cache_control }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaAdvisorToolResultBlockParam object`
 
             - `content: BetaAdvisorToolResultErrorParam or BetaAdvisorResultBlockParam or BetaAdvisorRedactedResultBlockParam`
 
-              - `BetaAdvisorToolResultErrorParam object { error_code, type }`
+              - `BetaAdvisorToolResultErrorParam object`
 
                 - `error_code: "max_uses_exceeded" or "prompt_too_long" or "too_many_requests" or 4 more`
 
from line 939
 
                 - `type: "advisor_tool_result_error"`
 
-                  - `"advisor_tool_result_error"`
-
-              - `BetaAdvisorResultBlockParam object { text, type, stop_reason }`
+              - `BetaAdvisorResultBlockParam object`
 
                 - `text: string`
 
                 - `type: "advisor_result"`
 
-                  - `"advisor_result"`
-
                 - `stop_reason: optional string or null`
 
-              - `BetaAdvisorRedactedResultBlockParam object { encrypted_content, type, stop_reason }`
+              - `BetaAdvisorRedactedResultBlockParam object`
 
                 - `encrypted_content: string`
 
from line 955
 
                 - `type: "advisor_redacted_result"`
 
-                  - `"advisor_redacted_result"`
-
                 - `stop_reason: optional string or null`
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "advisor_tool_result"`
 
-              - `"advisor_tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaCodeExecutionToolResultBlockParam object { content, tool_use_id, type, cache_control }`
+          - `BetaCodeExecutionToolResultBlockParam object`
 
             - `content: BetaCodeExecutionToolResultBlockParamContent`
 
               Code execution result with encrypted stdout for PFC + web_search results.
 
-              - `BetaCodeExecutionToolResultErrorParam object { error_code, type }`
+              - `BetaCodeExecutionToolResultErrorParam object`
 
                 - `error_code: BetaCodeExecutionToolResultErrorCode`
 
from line 987
 
                 - `type: "code_execution_tool_result_error"`
 
-                  - `"code_execution_tool_result_error"`
-
-              - `BetaCodeExecutionResultBlockParam object { content, return_code, stderr, 2 more }`
+              - `BetaCodeExecutionResultBlockParam object`
 
                 - `content: array of BetaCodeExecutionOutputBlockParam`
 
from line 995
 
                   - `type: "code_execution_output"`
 
-                    - `"code_execution_output"`
-
                 - `return_code: number`
 
                 - `stderr: string`
from line 1003
 
                 - `type: "code_execution_result"`
 
-                  - `"code_execution_result"`
-
-              - `BetaEncryptedCodeExecutionResultBlockParam object { content, encrypted_stdout, return_code, 2 more }`
+              - `BetaEncryptedCodeExecutionResultBlockParam object`
 
                 Code execution result with encrypted stdout for PFC + web_search results.
 
from line 1021
 
                 - `type: "encrypted_code_execution_result"`
 
-                  - `"encrypted_code_execution_result"`
-
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "code_execution_tool_result"`
 
-              - `"code_execution_tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaBashCodeExecutionToolResultBlockParam object { content, tool_use_id, type, cache_control }`
+          - `BetaBashCodeExecutionToolResultBlockParam object`
 
             - `content: BetaBashCodeExecutionToolResultErrorParam or BetaBashCodeExecutionResultBlockParam`
 
-              - `BetaBashCodeExecutionToolResultErrorParam object { error_code, type }`
+              - `BetaBashCodeExecutionToolResultErrorParam object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 1051
 
                 - `type: "bash_code_execution_tool_result_error"`
 
-                  - `"bash_code_execution_tool_result_error"`
-
-              - `BetaBashCodeExecutionResultBlockParam object { content, return_code, stderr, 2 more }`
+              - `BetaBashCodeExecutionResultBlockParam object`
 
                 - `content: array of BetaBashCodeExecutionOutputBlockParam`
 
from line 1059
 
                   - `type: "bash_code_execution_output"`
 
-                    - `"bash_code_execution_output"`
-
                 - `return_code: number`
 
                 - `stderr: string`
from line 1067
 
                 - `type: "bash_code_execution_result"`
 
-                  - `"bash_code_execution_result"`
-
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "bash_code_execution_tool_result"`
 
-              - `"bash_code_execution_tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaTextEditorCodeExecutionToolResultBlockParam object { content, tool_use_id, type, cache_control }`
+          - `BetaTextEditorCodeExecutionToolResultBlockParam object`
 
             - `content: BetaTextEditorCodeExecutionToolResultErrorParam or BetaTextEditorCodeExecutionViewResultBlockParam or BetaTextEditorCodeExecutionCreateResultBlockParam or BetaTextEditorCodeExecutionStrReplaceResultBlockParam`
 
-              - `BetaTextEditorCodeExecutionToolResultErrorParam object { error_code, type, error_message }`
+              - `BetaTextEditorCodeExecutionToolResultErrorParam object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 1097
 
                 - `type: "text_editor_code_execution_tool_result_error"`
 
-                  - `"text_editor_code_execution_tool_result_error"`
-
                 - `error_message: optional string or null`
 
-              - `BetaTextEditorCodeExecutionViewResultBlockParam object { content, file_type, type, 3 more }`
+              - `BetaTextEditorCodeExecutionViewResultBlockParam object`
 
                 - `content: string`
 
from line 1113
 
                 - `type: "text_editor_code_execution_view_result"`
 
-                  - `"text_editor_code_execution_view_result"`
-
                 - `num_lines: optional number or null`
 
                 - `start_line: optional number or null`
 
                 - `total_lines: optional number or null`
 
-              - `BetaTextEditorCodeExecutionCreateResultBlockParam object { is_file_update, type }`
+              - `BetaTextEditorCodeExecutionCreateResultBlockParam object`
 
                 - `is_file_update: boolean`
 
                 - `type: "text_editor_code_execution_create_result"`
 
-                  - `"text_editor_code_execution_create_result"`
-
-              - `BetaTextEditorCodeExecutionStrReplaceResultBlockParam object { type, lines, new_lines, 3 more }`
+              - `BetaTextEditorCodeExecutionStrReplaceResultBlockParam object`
 
                 - `type: "text_editor_code_execution_str_replace_result"`
 
-                  - `"text_editor_code_execution_str_replace_result"`
-
                 - `lines: optional array of string or null`
 
                 - `new_lines: optional number or null`
from line 1141
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "text_editor_code_execution_tool_result"`
 
-              - `"text_editor_code_execution_tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaToolSearchToolResultBlockParam object { content, tool_use_id, type, cache_control }`
+          - `BetaToolSearchToolResultBlockParam object`
 
             - `content: BetaToolSearchToolResultErrorParam or BetaToolSearchToolSearchResultBlockParam`
 
-              - `BetaToolSearchToolResultErrorParam object { error_code, type, error_message }`
+              - `BetaToolSearchToolResultErrorParam object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or "execution_time_exceeded"`
 
from line 1167
 
                 - `type: "tool_search_tool_result_error"`
 
-                  - `"tool_search_tool_result_error"`
-
                 - `error_message: optional string or null`
 
-              - `BetaToolSearchToolSearchResultBlockParam object { tool_references, type }`
+              - `BetaToolSearchToolSearchResultBlockParam object`
 
                 - `tool_references: array of BetaToolReferenceBlockParam`
 
                   - `tool_name: string`
 
+                    maxLength: 256, minLength: 1, pattern: ^[a-zA-Z0-9_-]{1,256}$
+
                   - `type: "tool_reference"`
 
                   - `cache_control: optional BetaCacheControlEphemeral or null`
from line 1185
 
                 - `type: "tool_search_tool_search_result"`
 
-                  - `"tool_search_tool_search_result"`
-
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "tool_search_tool_result"`
 
-              - `"tool_search_tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaMCPToolUseBlockParam object { id, input, name, 3 more }`
+          - `BetaMCPToolUseBlockParam object`
 
             - `id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `input: map[unknown]`
 
             - `name: string`
from line 1211
 
             - `type: "mcp_tool_use"`
 
-              - `"mcp_tool_use"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaRequestMCPToolResultBlockParam object { tool_use_id, type, cache_control, 2 more }`
+          - `BetaRequestMCPToolResultBlockParam object`
 
             - `tool_use_id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `type: "mcp_tool_result"`
 
-              - `"mcp_tool_result"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 1235
 
                 - `text: string`
 
+                  minLength: 1
+
                 - `type: "text"`
 
                 - `cache_control: optional BetaCacheControlEphemeral or null`
from line 1247
 
             - `is_error: optional boolean`
 
-          - `BetaContainerUploadBlockParam object { file_id, type, cache_control }`
+          - `BetaContainerUploadBlockParam object`
 
             A content block that represents a file to be uploaded to the container
             Files uploaded via this block will be available in the container's input directory.
from line 1256
 
             - `type: "container_upload"`
 
-              - `"container_upload"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaCompactionBlockParam object { type, cache_control, content, encrypted_content }`
+          - `BetaCompactionBlockParam object`
 
             A compaction block containing summary of previous context.
 
from line 1272
 
             - `type: "compaction"`
 
-              - `"compaction"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
from line 1284
 
               Opaque metadata from prior compaction, to be round-tripped verbatim
 
-          - `BetaRequestToolAdditionBlock object { tool, type, cache_control }`
+          - `BetaRequestToolAdditionBlock object`
 
             Mid-conversation directive to surface a declared tool.
 
from line 1299
               server assigns to MCP-resolved tools — use `mcp_tool_reference` or
               `mcp_toolset_reference` for those.
 
-              - `BetaToolChangeToolReference object { name, type }`
+              - `BetaToolChangeToolReference object`
 
                 Reference to a single tool the caller declared directly in
                 `tools[]`. Does not accept the composed `{server}_{name}` form the
from line 1308
 
                 - `name: string`
 
+                  pattern: ^[a-zA-Z0-9_-]{1,128}$
+
                 - `type: "tool_reference"`
 
-                  - `"tool_reference"`
-
-              - `BetaToolChangeMCPToolReference object { name, server_name, type }`
+              - `BetaToolChangeMCPToolReference object`
 
                 Reference to a single MCP tool by its server and remote name — the
                 same `server_name`/`name` pair `mcp_tool_use` carries.
from line 1323
 
                 - `type: "mcp_tool_reference"`
 
-                  - `"mcp_tool_reference"`
-
-              - `BetaToolChangeMCPToolsetReference object { server_name, type }`
+              - `BetaToolChangeMCPToolsetReference object`
 
                 Reference to every tool in the named MCP server's toolset.
 
from line 1331
 
                 - `type: "mcp_toolset_reference"`
 
-                  - `"mcp_toolset_reference"`
-
             - `type: "tool_addition"`
 
-              - `"tool_addition"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaRequestToolRemovalBlock object { tool, type, cache_control }`
+          - `BetaRequestToolRemovalBlock object`
 
             Mid-conversation directive to withdraw a tool.
 
from line 1352
               server assigns to MCP-resolved tools — use `mcp_tool_reference` or
               `mcp_toolset_reference` for those.
 
-              - `BetaToolChangeToolReference object { name, type }`
+              - `BetaToolChangeToolReference object`
 
                 Reference to a single tool the caller declared directly in
                 `tools[]`. Does not accept the composed `{server}_{name}` form the
                 server assigns to MCP-resolved tools — use `mcp_tool_reference` or
                 `mcp_toolset_reference` for those.
 
-              - `BetaToolChangeMCPToolReference object { name, server_name, type }`
+              - `BetaToolChangeMCPToolReference object`
 
                 Reference to a single MCP tool by its server and remote name — the
                 same `server_name`/`name` pair `mcp_tool_use` carries.
 
-              - `BetaToolChangeMCPToolsetReference object { server_name, type }`
+              - `BetaToolChangeMCPToolsetReference object`
 
                 Reference to every tool in the named MCP server's toolset.
 
             - `type: "tool_removal"`
 
-              - `"tool_removal"`
-
             - `cache_control: optional BetaCacheControlEphemeral or null`
 
               Create a cache control breakpoint at this content block.
 
-          - `BetaFallbackBlockParam object { from, to, type, trigger }`
+          - `BetaFallbackBlockParam object`
 
             A `fallback` block echoed back from a prior response.
 
from line 1474
 
             - `type: "fallback"`
 
-              - `"fallback"`
-
             - `trigger: optional unknown`
 
               The response block's `trigger`, echoed verbatim. Accepted and ignored by the server; any object or `null` is allowed.
from line 1500
 
       Container identifier for reuse across requests.
 
-      - `BetaContainerParams object { id, skills }`
+      - `BetaContainerParams object`
 
         Container parameters with skills to be loaded.
 
from line 1512
 
           List of skills to load in the container
 
+          maxItems: 20
+
           - `skill_id: string`
 
             Skill ID
 
+            maxLength: 64, minLength: 1
+
           - `type: "anthropic" or "custom"`
 
             Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)
from line 1532
 
             Skill version or 'latest' for most recent version
 
+            maxLength: 64, minLength: 1
+
       - `string`
 
     - `context_management: optional BetaContextManagementConfig or null`
from line 1546
 
         List of context management edits to apply
 
-        - `BetaClearToolUses20250919Edit object { type, clear_at_least, clear_tool_inputs, 3 more }`
+        minItems: 0
+
+        - `BetaClearToolUses20250919Edit object`
 
           - `type: "clear_tool_uses_20250919"`
 
-            - `"clear_tool_uses_20250919"`
-
           - `clear_at_least: optional BetaInputTokensClearAtLeast or null`
 
             Minimum number of tokens that must be cleared when triggered. Context will only be modified if at least this many tokens can be removed.
 
             - `type: "input_tokens"`
 
-              - `"input_tokens"`
-
             - `value: number`
 
+              minimum: 0
+
           - `clear_tool_inputs: optional boolean or array of string or null`
 
             Whether to clear all tool inputs (bool) or specific tool inputs to clear (list)
from line 1580
 
             - `type: "tool_uses"`
 
-              - `"tool_uses"`
-
             - `value: number`
 
+              minimum: 0
+
           - `trigger: optional BetaInputTokensTrigger or BetaToolUsesTrigger`
 
             Condition that triggers the context management strategy
 
-            - `BetaInputTokensTrigger object { type, value }`
+            - `BetaInputTokensTrigger object`
 
               - `type: "input_tokens"`
 
-                - `"input_tokens"`
-
               - `value: number`
 
-            - `BetaToolUsesTrigger object { type, value }`
+                minimum: 1
+
+            - `BetaToolUsesTrigger object`
 
               - `type: "tool_uses"`
 
-                - `"tool_uses"`
-
               - `value: number`
 
-        - `BetaClearThinking20251015Edit object { type, keep }`
+                minimum: 1
+
+        - `BetaClearThinking20251015Edit object`
 
           - `type: "clear_thinking_20251015"`
 
-            - `"clear_thinking_20251015"`
-
           - `keep: optional BetaThinkingTurns or BetaAllThinkingTurns or "all"`
 
             Number of most recent assistant turns to keep thinking blocks for. Older turns will have their thinking blocks removed.
 
-            - `BetaThinkingTurns object { type, value }`
+            - `BetaThinkingTurns object`
 
               - `type: "thinking_turns"`
 
-                - `"thinking_turns"`
-
               - `value: number`
 
-            - `BetaAllThinkingTurns object { type }`
+                minimum: 1
+
+            - `BetaAllThinkingTurns object`
 
               - `type: "all"`
 
-                - `"all"`
-
             - `"all"`
 
-              - `"all"`
-
-        - `BetaCompact20260112Edit object { type, instructions, pause_after_compaction, trigger }`
+        - `BetaCompact20260112Edit object`
 
           Automatically compact older context when reaching the configured trigger threshold.
 
           - `type: "compact_20260112"`
-
-            - `"compact_20260112"`
 
           - `instructions: optional string or null`
 
from line 1652
       - `previous_message_id: optional string or null`
 
         The `id` (`msg_...`) from this client's previous /v1/messages response. The server compares that request's prompt fingerprint against this one and returns `diagnostics.cache_miss_reason` when the prompt-cache prefix could not be reused. Pass `null` on the first turn to opt in without a prior message to compare.
+
+        maxLength: 256
 
     - `fallback_credit_token: optional string or BetaFallbackCreditTokenParam or null`
 
from line 1680
 
       - `string`
 
-      - `BetaFallbackCreditTokenParam object { token, mode }`
+      - `BetaFallbackCreditTokenParam object`
 
         Object form of `fallback_credit_token`: the token plus a redemption
         mode.
from line 1694
 
           The opaque `fallback_credit_token` from a prior refusal's `stop_details` — the same string the bare-string form carries.
 
+          maxLength: 2048, minLength: 1
+
         - `mode: optional "strict" or "best_effort"`
 
           How a failing token affects the retry. `strict` (the default, and the bare-string behavior): a failing redemption is a 400 and the retry is not served. `best_effort`: the retry is served either way — a token-layer failure no longer rejects the request; the retry proceeds at normal price and the outcome is reported on the response's `usage.fallback_credit`. Two failures stay hard in both modes: a malformed token, and combining `fallback_credit_token` with `fallbacks`.
from line 1744
 
             - `type: "json_schema"`
 
-              - `"json_schema"`
-
           - `task_budget: optional BetaTokenTaskBudget or null`
 
             User-configurable total token budget across contexts.
from line 1752
 
               Total token budget across all contexts in the session.
 
+              minimum: 1024
+
             - `type: "tokens"`
 
               The budget type. Currently only 'tokens' is supported.
 
-              - `"tokens"`
-
             - `remaining: optional number or null`
 
               Remaining tokens in the budget. Use this to track usage across contexts when implementing compaction client-side. Defaults to total if not provided.
 
+              minimum: 0
+
         - `speed: optional "standard" or "fast" or null`
 
           Inference speed mode. `fast` provides significantly faster output token generation at premium pricing. Not all models support `fast`; invalid combinations are rejected at create time.
from line 1774
 
         - `thinking: optional BetaThinkingConfigEnabled or BetaThinkingConfigDisabled or BetaThinkingConfigAdaptive or null`
 
-          - `BetaThinkingConfigEnabled object { budget_tokens, type, display }`
+          - `BetaThinkingConfigEnabled object`
 
             - `budget_tokens: number`
 
from line 1784
 
               See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) for details.
 
+              minimum: 1024
+
             - `type: "enabled"`
 
-              - `"enabled"`
-
             - `display: optional "summarized" or "omitted" or null`
 
               Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. Defaults to `summarized`.
from line 1796
 
               - `"omitted"`
 
-          - `BetaThinkingConfigDisabled object { type }`
+          - `BetaThinkingConfigDisabled object`
 
             - `type: "disabled"`
 
-              - `"disabled"`
-
-          - `BetaThinkingConfigAdaptive object { type, display }`
+          - `BetaThinkingConfigAdaptive object`
 
             - `type: "adaptive"`
 
-              - `"adaptive"`
-
             - `display: optional "summarized" or "omitted" or null`
 
               Controls how thinking content appears in the response. When set to `summarized`, thinking is returned normally. When set to `omitted`, thinking content is redacted but a signature is returned for multi-turn continuity. Defaults to `summarized`.
from line 1814
 
       - `Default = "default"`
 
-        - `"default"`
-
     - `inference_geo: optional string or null`
 
       Specifies the geographic region for inference processing. If not specified, the workspace's `default_inference_geo` is used.
from line 1822
 
       MCP servers to be utilized in this request
 
+      maxItems: 20
+
       - `name: string`
 
       - `type: "url"`
 
-        - `"url"`
-
       - `url: string`
 
       - `authorization_token: optional string or null`
from line 1848
 
         This should be a uuid, hash value, or other opaque identifier. Anthropic may use this id to help detect abuse. Do not include any identifying information such as name, email address, or phone number.
 
+        maxLength: 512
+
     - `output_config: optional BetaOutputConfig`
 
       Configuration options for the model's output, such as the output format.
 
-    - `output_format: optional BetaJSONOutputFormat or null`
-
-      Deprecated: Use `output_config.format` instead. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs)
-
-      A schema to specify Claude's output format in responses. This parameter will be removed in a future release.
-
     - `service_tier: optional "auto" or "standard_only"`
 
       Determines whether to use priority capacity (if available) or standard capacity for this request.
from line 1898
 
         - `text: string`
 
+          minLength: 1
+
         - `type: "text"`
 
         - `cache_control: optional BetaCacheControlEphemeral or null`
from line 1908
 
         - `citations: optional array of BetaTextCitationParam or null`
 
-    - `temperature: optional number`
-
-      Amount of randomness injected into the response.
-
-      Defaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks.
-
-      Note that even with `temperature` of `0.0`, the results will not be fully deterministic.
-
     - `thinking: optional BetaThinkingConfigParam`
 
       Configuration for enabling Claude's extended thinking.
from line 1916
 
       See [extended thinking](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) for details.
 
-      - `BetaThinkingConfigEnabled object { budget_tokens, type, display }`
-
-      - `BetaThinkingConfigDisabled object { type }`
-
-      - `BetaThinkingConfigAdaptive object { type, display }`
+      - `BetaThinkingConfigEnabled object`
+
+      - `BetaThinkingConfigDisabled object`
+
+      - `BetaThinkingConfigAdaptive object`
 
     - `tool_choice: optional BetaToolChoice`
 
       How the model should use the provided tools. The model can use a specific tool, any available tool, decide by itself, or not use tools at all.
 
-      - `BetaToolChoiceAuto object { type, disable_parallel_tool_use }`
+      - `BetaToolChoiceAuto object`
 
         The model will automatically decide whether to use tools.
 
         - `type: "auto"`
 
-          - `"auto"`
-
         - `disable_parallel_tool_use: optional boolean`
 
           Whether to disable parallel tool use.
 
           Defaults to `false`. If set to `true`, the model will output at most one tool use.
 
-      - `BetaToolChoiceAny object { type, disable_parallel_tool_use }`
+      - `BetaToolChoiceAny object`
 
         The model will use any available tools.
 
         - `type: "any"`
 
-          - `"any"`
-
         - `disable_parallel_tool_use: optional boolean`
 
           Whether to disable parallel tool use.
 
           Defaults to `false`. If set to `true`, the model will output exactly one tool use.
 
-      - `BetaToolChoiceTool object { name, type, disable_parallel_tool_use }`
+      - `BetaToolChoiceTool object`
 
         The model will use the specified tool with `tool_choice.name`.
 
from line 1960
 
         - `type: "tool"`
 
-          - `"tool"`
-
         - `disable_parallel_tool_use: optional boolean`
 
           Whether to disable parallel tool use.
 
           Defaults to `false`. If set to `true`, the model will output exactly one tool use.
 
-      - `BetaToolChoiceNone object { type }`
+      - `BetaToolChoiceNone object`
 
         The model will not be allowed to use tools.
 
         - `type: "none"`
-
-          - `"none"`
 
     - `tools: optional array of BetaToolUnion`
 
from line 2036
 
       See our [guide](https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview) for more details.
 
-      - `BetaTool object { input_schema, name, allowed_callers, 7 more }`
-
-        - `input_schema: object { type, properties, required }`
+      - `BetaTool object`
+
+        - `input_schema: object`
 
           [JSON schema](https://json-schema.org/draft/2020-12) for this tool's input.
 
from line 2046
 
           - `type: "object"`
 
-            - `"object"`
-
           - `properties: optional map[unknown] or null`
 
           - `required: optional array of string or null`
from line 2056
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
+          maxLength: 128, minLength: 1, pattern: ^[a-zA-Z0-9_-]{1,128}$
+
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2094
 
         - `type: optional "custom" or null`
 
-          - `"custom"`
-
-      - `BetaToolBash20241022 object { name, type, allowed_callers, 4 more }`
+      - `BetaToolBash20241022 object`
 
         - `name: "bash"`
 
from line 2102
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"bash"`
-
         - `type: "bash_20241022"`
 
-          - `"bash_20241022"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2128
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaToolBash20250124 object { name, type, allowed_callers, 4 more }`
+      - `BetaToolBash20250124 object`
 
         - `name: "bash"`
 
from line 2136
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"bash"`
-
         - `type: "bash_20250124"`
 
-          - `"bash_20250124"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2162
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaCodeExecutionTool20250522 object { name, type, allowed_callers, 3 more }`
+      - `BetaCodeExecutionTool20250522 object`
 
         - `name: "code_execution"`
 
from line 2170
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"code_execution"`
-
         - `type: "code_execution_20250522"`
 
-          - `"code_execution_20250522"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2194
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaCodeExecutionTool20250825 object { name, type, allowed_callers, 3 more }`
+      - `BetaCodeExecutionTool20250825 object`
 
         - `name: "code_execution"`
 
from line 2202
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"code_execution"`
-
         - `type: "code_execution_20250825"`
 
+        - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
+
+          - `"direct"`
+
           - `"code_execution_20250825"`
 
+          - `"code_execution_20260120"`
+
+          - `"code_execution_20260521"`
+
+        - `cache_control: optional BetaCacheControlEphemeral or null`
+
+          Create a cache control breakpoint at this content block.
+
+        - `defer_loading: optional boolean`
+
+          If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search.
+
+        - `strict: optional boolean`
+
+          When true, guarantees schema validation on tool names and inputs
+
+      - `BetaCodeExecutionTool20260120 object`
+
+        Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
+
+        - `name: "code_execution"`
+
+          Name of the tool.
+
+          This is how the tool will be called by the model and in `tool_use` blocks.
+
+        - `type: "code_execution_20260120"`
+
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2260
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaCodeExecutionTool20260120 object { name, type, allowed_callers, 3 more }`
-
-        Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).
+      - `BetaCodeExecutionTool20260521 object`
+
+        Code execution tool with REPL state persistence.
 
         - `name: "code_execution"`
 
from line 2270
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"code_execution"`
-
-        - `type: "code_execution_20260120"`
+        - `type: "code_execution_20260521"`
+
+        - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
+
+          - `"direct"`
+
+          - `"code_execution_20250825"`
 
           - `"code_execution_20260120"`
 
-        - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
-
-          - `"direct"`
-
-          - `"code_execution_20250825"`
-
-          - `"code_execution_20260120"`
-
           - `"code_execution_20260521"`
 
         - `cache_control: optional BetaCacheControlEphemeral or null`
from line 2294
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaCodeExecutionTool20260521 object { name, type, allowed_callers, 3 more }`
-
-        Code execution tool with REPL state persistence.
-
-        - `name: "code_execution"`
-
-          Name of the tool.
-
-          This is how the tool will be called by the model and in `tool_use` blocks.
-
-          - `"code_execution"`
-
-        - `type: "code_execution_20260521"`
-
-          - `"code_execution_20260521"`
-
-        - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
-
-          - `"direct"`
-
-          - `"code_execution_20250825"`
-
-          - `"code_execution_20260120"`
-
-          - `"code_execution_20260521"`
-
-        - `cache_control: optional BetaCacheControlEphemeral or null`
-
-          Create a cache control breakpoint at this content block.
-
-        - `defer_loading: optional boolean`
-
-          If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search.
-
-        - `strict: optional boolean`
-
-          When true, guarantees schema validation on tool names and inputs
-
-      - `BetaBrowserToolset20260801 object { type, allowed_callers, cache_control, configs }`
+      - `BetaBrowserToolset20260801 object`
 
         The browser toolset: a single `tools[]` entry (carrying no
         `name`) that declares the browser tool family. The model is served
from line 2302
         from its schema.
 
         - `type: "browser_toolset_20260801"`
-
-          - `"browser_toolset_20260801"`
 
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
from line 2698
 
               Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.
 
-      - `BetaToolComputerUse20241022 object { display_height_px, display_width_px, name, 7 more }`
+      - `BetaToolComputerUse20241022 object`
 
         - `display_height_px: number`
 
           The height of the display in pixels.
 
+          minimum: 1
+
         - `display_width_px: number`
 
           The width of the display in pixels.
 
+          minimum: 1
+
         - `name: "computer"`
 
           Name of the tool.
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"computer"`
-
         - `type: "computer_20241022"`
 
-          - `"computer_20241022"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2742
 
           The X11 display number (e.g. 0, 1) for the display.
 
+          minimum: 0
+
         - `input_examples: optional array of map[unknown]`
 
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaMemoryTool20250818 object { name, type, allowed_callers, 4 more }`
+      - `BetaMemoryTool20250818 object`
 
         - `name: "memory"`
 
from line 2758
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"memory"`
-
         - `type: "memory_20250818"`
 
-          - `"memory_20250818"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2784
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaToolComputerUse20250124 object { display_height_px, display_width_px, name, 7 more }`
+      - `BetaToolComputerUse20250124 object`
 
         - `display_height_px: number`
 
           The height of the display in pixels.
 
+          minimum: 1
+
         - `display_width_px: number`
 
           The width of the display in pixels.
 
+          minimum: 1
+
         - `name: "computer"`
 
           Name of the tool.
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"computer"`
-
         - `type: "computer_20250124"`
 
-          - `"computer_20250124"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2828
 
           The X11 display number (e.g. 0, 1) for the display.
 
+          minimum: 0
+
         - `input_examples: optional array of map[unknown]`
 
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaToolTextEditor20241022 object { name, type, allowed_callers, 4 more }`
+      - `BetaToolTextEditor20241022 object`
 
         - `name: "str_replace_editor"`
 
from line 2844
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"str_replace_editor"`
-
         - `type: "text_editor_20241022"`
 
-          - `"text_editor_20241022"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2870
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaToolComputerUse20251124 object { display_height_px, display_width_px, name, 8 more }`
+      - `BetaToolComputerUse20251124 object`
 
         - `display_height_px: number`
 
           The height of the display in pixels.
 
+          minimum: 1
+
         - `display_width_px: number`
 
           The width of the display in pixels.
 
+          minimum: 1
+
         - `name: "computer"`
 
           Name of the tool.
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"computer"`
-
         - `type: "computer_20251124"`
 
-          - `"computer_20251124"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 2914
 
           The X11 display number (e.g. 0, 1) for the display.
 
+          minimum: 0
+
         - `enable_zoom: optional boolean`
 
           Whether to enable an action to take a zoomed-in screenshot of the screen.
from line 2926
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaComputerToolset20260801 object { type, allowed_callers, cache_control, configs }`
+      - `BetaComputerToolset20260801 object`
 
         The computer toolset: a single `tools[]` entry (carrying no
         `name`) that declares the computer tool family. The model is
from line 2939
 
         - `type: "computer_toolset_20260801"`
 
-          - `"computer_toolset_20260801"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3166
 
               Whether this member is offered to the model. Default is per member, per the toolset's documentation. A member whose enabled resolves false is withheld from the served schema.
 
-      - `BetaToolTextEditor20250124 object { name, type, allowed_callers, 4 more }`
+      - `BetaToolTextEditor20250124 object`
 
         - `name: "str_replace_editor"`
 
from line 3174
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"str_replace_editor"`
-
         - `type: "text_editor_20250124"`
 
-          - `"text_editor_20250124"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3200
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaToolTextEditor20250429 object { name, type, allowed_callers, 4 more }`
+      - `BetaToolTextEditor20250429 object`
 
         - `name: "str_replace_based_edit_tool"`
 
from line 3208
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"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" or "code_execution_20260521"`
 
           - `"direct"`
from line 3234
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaToolTextEditor20250728 object { name, type, allowed_callers, 5 more }`
+      - `BetaToolTextEditor20250728 object`
 
         - `name: "str_replace_based_edit_tool"`
 
from line 3242
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"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" or "code_execution_20260521"`
 
           - `"direct"`
from line 3268
 
           Maximum number of characters to display when viewing a file. If not specified, defaults to displaying the full file.
 
+          minimum: 1
+
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaWebSearchTool20250305 object { name, type, allowed_callers, 7 more }`
+      - `BetaWebSearchTool20250305 object`
 
         - `name: "web_search"`
 
from line 3282
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"web_search"`
-
         - `type: "web_search_20250305"`
 
-          - `"web_search_20250305"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3314
 
           Maximum number of times the tool can be used in the API request.
 
+          exclusiveMinimum: 0
+
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
from line 3326
 
           - `type: "approximate"`
 
-            - `"approximate"`
-
           - `city: optional string or null`
 
             The city of the user.
 
+            maxLength: 255, minLength: 1
+
           - `country: optional string or null`
 
             The two letter [ISO country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) of the user.
 
+            maxLength: 2, minLength: 2
+
           - `region: optional string or null`
 
             The region of the user.
 
+            maxLength: 255, minLength: 1
+
           - `timezone: optional string or null`
 
             The [IANA timezone](https://nodatime.org/TimeZones) of the user.
 
-      - `BetaWebFetchTool20250910 object { name, type, allowed_callers, 8 more }`
+            maxLength: 255, minLength: 1
+
+      - `BetaWebFetchTool20250910 object`
 
         - `name: "web_fetch"`
 
from line 3358
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"web_fetch"`
-
         - `type: "web_fetch_20250910"`
 
-          - `"web_fetch_20250910"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3394
 
           Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs.
 
+          exclusiveMinimum: 0
+
         - `max_uses: optional number or null`
 
           Maximum number of times the tool can be used in the API request.
 
+          exclusiveMinimum: 0
+
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaWebSearchTool20260209 object { name, type, allowed_callers, 7 more }`
+      - `BetaWebSearchTool20260209 object`
 
         - `name: "web_search"`
 
from line 3414
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"web_search"`
-
         - `type: "web_search_20260209"`
 
-          - `"web_search_20260209"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3446
 
           Maximum number of times the tool can be used in the API request.
 
+          exclusiveMinimum: 0
+
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
from line 3456
 
           Parameters for the user's location. Used to provide more relevant search results.
 
-      - `BetaWebFetchTool20260209 object { name, type, allowed_callers, 8 more }`
+      - `BetaWebFetchTool20260209 object`
 
         - `name: "web_fetch"`
 
from line 3464
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"web_fetch"`
-
         - `type: "web_fetch_20260209"`
 
-          - `"web_fetch_20260209"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3500
 
           Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs.
 
+          exclusiveMinimum: 0
+
         - `max_uses: optional number or null`
 
           Maximum number of times the tool can be used in the API request.
 
+          exclusiveMinimum: 0
+
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaWebFetchTool20260309 object { name, type, allowed_callers, 9 more }`
+      - `BetaWebFetchTool20260309 object`
 
         Web fetch tool with use_cache parameter for bypassing cached content.
 
from line 3522
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"web_fetch"`
-
         - `type: "web_fetch_20260309"`
 
-          - `"web_fetch_20260309"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3558
 
           Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs.
 
+          exclusiveMinimum: 0
+
         - `max_uses: optional number or null`
 
           Maximum number of times the tool can be used in the API request.
 
+          exclusiveMinimum: 0
+
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
from line 3574
 
           Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources.
 
-      - `BetaWebSearchTool20260318 object { name, type, allowed_callers, 8 more }`
+      - `BetaWebSearchTool20260318 object`
 
         - `name: "web_search"`
 
from line 3582
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"web_search"`
-
         - `type: "web_search_20260318"`
 
-          - `"web_search_20260318"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3614
 
           Maximum number of times the tool can be used in the API request.
 
+          exclusiveMinimum: 0
+
         - `response_inclusion: optional "full" or "excluded"`
 
           How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn.
from line 3632
 
           Parameters for the user's location. Used to provide more relevant search results.
 
-      - `BetaWebFetchTool20260318 object { name, type, allowed_callers, 10 more }`
+      - `BetaWebFetchTool20260318 object`
 
         - `name: "web_fetch"`
 
from line 3640
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"web_fetch"`
-
         - `type: "web_fetch_20260318"`
 
-          - `"web_fetch_20260318"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3676
 
           Maximum number of tokens used by including web page text content in the context. The limit is approximate and does not apply to binary content such as PDFs.
 
+          exclusiveMinimum: 0
+
         - `max_uses: optional number or null`
 
           Maximum number of times the tool can be used in the API request.
 
+          exclusiveMinimum: 0
+
         - `response_inclusion: optional "full" or "excluded"`
 
           How this tool's result blocks appear in the API response when the result was consumed by a completed code_execution call in the same turn. 'full' returns the complete content (default). 'excluded' drops the nested server_tool_use and result block pair entirely. Results from direct calls, or from code_execution calls that paused before completing, are always returned in full so they can be sent back on the next turn.
from line 3700
 
           Whether to use cached content. Set to false to bypass the cache and fetch fresh content. Only set to false when the user explicitly requests fresh content or when fetching rapidly-changing sources.
 
-      - `BetaAdvisorTool20260301 object { model, name, type, 7 more }`
+      - `BetaAdvisorTool20260301 object`
 
         - `model: Model`
 
from line 3714
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
-          - `"advisor"`
-
         - `type: "advisor_20260301"`
 
-          - `"advisor_20260301"`
-
         - `allowed_callers: optional array of "direct" or "code_execution_20250825" or "code_execution_20260120" or "code_execution_20260521"`
 
           - `"direct"`
from line 3742
 
           Bounds the advisor's total output (thinking + text) per call. When the advisor hits this cap, the returned advisor_result or advisor_redacted_result block carries stop_reason='max_tokens', and a truncation note is appended to the advice text the worker model sees (inside the encrypted blob in redacted mode). When set, the server also emits a remaining-tokens budget block in the advisor's prompt so the advisor self-shapes toward the cap. When omitted, the advisor model's default output cap applies and no budget block is emitted.
 
+          minimum: 1024
+
         - `max_uses: optional number or null`
 
           Maximum number of times the tool can be used in the API request.
 
+          exclusiveMinimum: 0
+
         - `strict: optional boolean`
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaToolSearchToolBm25_20251119 object { name, type, allowed_callers, 3 more }`
+      - `BetaToolSearchToolBm25_20251119 object`
 
         - `name: "tool_search_tool_bm25"`
 
from line 3762
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
+        - `type: "tool_search_tool_bm25_20251119" or "tool_search_tool_bm25"`
+
+          - `"tool_search_tool_bm25_20251119"`
+
           - `"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" or "code_execution_20260521"`
 
           - `"direct"`
from line 3790
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaToolSearchToolRegex20251119 object { name, type, allowed_callers, 3 more }`
+      - `BetaToolSearchToolRegex20251119 object`
 
         - `name: "tool_search_tool_regex"`
 
from line 3798
 
           This is how the tool will be called by the model and in `tool_use` blocks.
 
+        - `type: "tool_search_tool_regex_20251119" or "tool_search_tool_regex"`
+
+          - `"tool_search_tool_regex_20251119"`
+
           - `"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" or "code_execution_20260521"`
 
           - `"direct"`
from line 3826
 
           When true, guarantees schema validation on tool names and inputs
 
-      - `BetaMCPToolset object { mcp_server_name, type, cache_control, 2 more }`
+      - `BetaMCPToolset object`
 
         Configuration for a group of tools from an MCP server.
 
from line 3837
 
           Name of the MCP server to configure tools for
 
+          maxLength: 255, minLength: 1
+
         - `type: "mcp_toolset"`
 
-          - `"mcp_toolset"`
-
         - `cache_control: optional BetaCacheControlEphemeral or null`
 
           Create a cache control breakpoint at this content block.
from line 3861
 
           - `enabled: optional boolean`
 
+    - `output_format: optional BetaJSONOutputFormat or null`
+
+      **Deprecated**
+
+      Deprecated: Use `output_config.format` instead. See [structured outputs](https://platform.claude.com/docs/en/build-with-claude/structured-outputs)
+
+      A schema to specify Claude's output format in responses. This parameter will be removed in a future release.
+
+    - `temperature: optional number`
+
+      **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting temperature. A value of 1.0 of will be accepted for backwards compatibility, all other values will be rejected with a 400 error.
+
+      Amount of randomness injected into the response.
+
+      Defaults to `1.0`. Ranges from `0.0` to `1.0`. Use `temperature` closer to `0.0` for analytical / multiple choice, and closer to `1.0` for creative and generative tasks.
+
+      Note that even with `temperature` of `0.0`, the results will not be fully deterministic.
+
+      maximum: 1, minimum: 0
+
     - `top_k: optional number`
 
+      **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not accept top_k; any value will be rejected with a 400 error.
+
       Only sample from the top K options for each subsequent token.
 
       Used to remove "long tail" low probability responses. [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277).
 
       Recommended for advanced use cases only.
 
+      minimum: 0
+
     - `top_p: optional number`
 
+      **Deprecated**: Deprecated. Models released after Claude Opus 4.6 do not support setting top_p. A value >= 0.99 will be accepted for backwards compatibility, all other values will be rejected with a 400 error.
+
       Use nucleus sampling.
 
       In nucleus sampling, we compute the cumulative distribution over all the options for each subsequent token in decreasing probability order and cut it off once it reaches a particular probability specified by `top_p`.
 
       Recommended for advanced use cases only.
 
+      maximum: 1, minimum: 0
+
 ### Returns
 
-- `BetaMessageBatch object { id, archived_at, cancel_initiated_at, 7 more }`
+- `BetaMessageBatch object`
 
   - `id: string`
 
from line 3919
 
     RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable.
 
+    format: date-time
+
   - `cancel_initiated_at: string or null`
 
     RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated.
 
+    format: date-time
+
   - `created_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch was created.
 
+    format: date-time
+
   - `ended_at: string or null`
 
     RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends.
 
     Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired.
 
+    format: date-time
+
   - `expires_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation.
 
+    format: date-time
+
   - `processing_status: "in_progress" or "canceling" or "ended"`
 
     Processing status of the Message Batch.
from line 3969
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `errored: number`
 
       Number of requests in the Message Batch that encountered an error.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `expired: number`
 
       Number of requests in the Message Batch that have expired.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `processing: number`
 
       Number of requests in the Message Batch that are processing.
 
+      default: 0
+
     - `succeeded: number`
 
       Number of requests in the Message Batch that have completed successfully.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
   - `results_url: string or null`
 
     URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends.
from line 4013
 
     For Message Batches, this is always `"message_batch"`.
 
-    - `"message_batch"`
+    default: message_batch
 
 ### Example
 
-```http
+```bash
 curl https://api.anthropic.com/v1/messages/batches \
     -H 'Content-Type: application/json' \
     -H 'anthropic-version: 2023-06-01' \
from line 4042
         }'
 ```
 
-#### Response
+#### Response (200)
 
 ```json
 {
from line 4067
 
 ## Retrieve a Message Batch
 
-**get** `/v1/messages/batches/{message_batch_id}`
+**GET** `/v1/messages/batches/{message_batch_id}`
 
 This endpoint is idempotent and can be used to poll for Message Batch completion. To access the results of a Message Batch, make a request to the `results_url` field in the response.
 
 Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)
 
-### Path Parameters
+### Path parameters
 
 - `message_batch_id: string`
 
   ID of the Message Batch.
 
-### Header Parameters
+### Headers
 
 - `"anthropic-beta": optional array of AnthropicBeta`
 
from line 4159
 
 ### Returns
 
-- `BetaMessageBatch object { id, archived_at, cancel_initiated_at, 7 more }`
+- `BetaMessageBatch object`
 
   - `id: string`
 
from line 4171
 
     RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable.
 
+    format: date-time
+
   - `cancel_initiated_at: string or null`
 
     RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated.
 
+    format: date-time
+
   - `created_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch was created.
 
+    format: date-time
+
   - `ended_at: string or null`
 
     RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends.
 
     Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired.
 
+    format: date-time
+
   - `expires_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation.
 
+    format: date-time
+
   - `processing_status: "in_progress" or "canceling" or "ended"`
 
     Processing status of the Message Batch.
from line 4221
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `errored: number`
 
       Number of requests in the Message Batch that encountered an error.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `expired: number`
 
       Number of requests in the Message Batch that have expired.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `processing: number`
 
       Number of requests in the Message Batch that are processing.
 
+      default: 0
+
     - `succeeded: number`
 
       Number of requests in the Message Batch that have completed successfully.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
   - `results_url: string or null`
 
     URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends.
from line 4265
 
     For Message Batches, this is always `"message_batch"`.
 
-    - `"message_batch"`
+    default: message_batch
 
 ### Example
 
-```http
+```bash
 curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID \
     -H 'anthropic-version: 2023-06-01' \
     -H 'anthropic-beta: message-batches-2024-09-24' \
     -H "X-Api-Key: $ANTHROPIC_API_KEY"
 ```
 
-#### Response
+#### Response (200)
 
 ```json
 {
from line 4301
 
 ## List Message Batches
 
-**get** `/v1/messages/batches`
+**GET** `/v1/messages/batches`
 
 List all Message Batches within a Workspace. Most recently created batches are returned first.
 
 Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)
 
-### Query Parameters
+### Query parameters
 
 - `after_id: optional string`
 
from line 4323
 
   Defaults to `20`. Ranges from `1` to `1000`.
 
-### Header Parameters
+  default: 20, maximum: 1000, minimum: 1
+
+### Headers
 
 - `"anthropic-beta": optional array of AnthropicBeta`
 
from line 4417
 
     RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable.
 
+    format: date-time
+
   - `cancel_initiated_at: string or null`
 
     RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated.
 
+    format: date-time
+
   - `created_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch was created.
 
+    format: date-time
+
   - `ended_at: string or null`
 
     RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends.
 
     Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired.
 
+    format: date-time
+
   - `expires_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation.
 
+    format: date-time
+
   - `processing_status: "in_progress" or "canceling" or "ended"`
 
     Processing status of the Message Batch.
from line 4467
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `errored: number`
 
       Number of requests in the Message Batch that encountered an error.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `expired: number`
 
       Number of requests in the Message Batch that have expired.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `processing: number`
 
       Number of requests in the Message Batch that are processing.
 
+      default: 0
+
     - `succeeded: number`
 
       Number of requests in the Message Batch that have completed successfully.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
   - `results_url: string or null`
 
     URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends.
from line 4511
 
     For Message Batches, this is always `"message_batch"`.
 
-    - `"message_batch"`
+    default: message_batch
 
 - `first_id: string or null`
 
from line 4527
 
 ### Example
 
-```http
+```bash
 curl https://api.anthropic.com/v1/messages/batches \
     -H 'anthropic-version: 2023-06-01' \
     -H 'anthropic-beta: message-batches-2024-09-24' \
     -H "X-Api-Key: $ANTHROPIC_API_KEY"
 ```
 
-#### Response
+#### Response (200)
 
 ```json
 {
from line 4566
 
 ## Cancel a Message Batch
 
-**post** `/v1/messages/batches/{message_batch_id}/cancel`
+**POST** `/v1/messages/batches/{message_batch_id}/cancel`
 
 Batches may be canceled any time before processing ends. Once cancellation is initiated, the batch enters a `canceling` state, at which time the system may complete any in-progress, non-interruptible requests before finalizing cancellation.
 
from line 4574
 
 Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)
 
-### Path Parameters
+### Path parameters
 
 - `message_batch_id: string`
 
   ID of the Message Batch.
 
-### Header Parameters
+### Headers
 
 - `"anthropic-beta": optional array of AnthropicBeta`
 
from line 4660
 
 ### Returns
 
-- `BetaMessageBatch object { id, archived_at, cancel_initiated_at, 7 more }`
+- `BetaMessageBatch object`
 
   - `id: string`
 
from line 4672
 
     RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable.
 
+    format: date-time
+
   - `cancel_initiated_at: string or null`
 
     RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated.
 
+    format: date-time
+
   - `created_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch was created.
 
+    format: date-time
+
   - `ended_at: string or null`
 
     RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends.
 
     Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired.
 
+    format: date-time
+
   - `expires_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation.
 
+    format: date-time
+
   - `processing_status: "in_progress" or "canceling" or "ended"`
 
     Processing status of the Message Batch.
from line 4722
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `errored: number`
 
       Number of requests in the Message Batch that encountered an error.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `expired: number`
 
       Number of requests in the Message Batch that have expired.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `processing: number`
 
       Number of requests in the Message Batch that are processing.
 
+      default: 0
+
     - `succeeded: number`
 
       Number of requests in the Message Batch that have completed successfully.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
   - `results_url: string or null`
 
     URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends.
from line 4766
 
     For Message Batches, this is always `"message_batch"`.
 
-    - `"message_batch"`
+    default: message_batch
 
 ### Example
 
-```http
+```bash
 curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/cancel \
     -X POST \
     -H 'anthropic-version: 2023-06-01' \
from line 4778
     -H "X-Api-Key: $ANTHROPIC_API_KEY"
 ```
 
-#### Response
+#### Response (200)
 
 ```json
 {
from line 4803
 
 ## Delete a Message Batch
 
-**delete** `/v1/messages/batches/{message_batch_id}`
+**DELETE** `/v1/messages/batches/{message_batch_id}`
 
 Delete a Message Batch.
 
from line 4811
 
 Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)
 
-### Path Parameters
+### Path parameters
 
 - `message_batch_id: string`
 
   ID of the Message Batch.
 
-### Header Parameters
+### Headers
 
 - `"anthropic-beta": optional array of AnthropicBeta`
 
from line 4897
 
 ### Returns
 
-- `BetaDeletedMessageBatch object { id, type }`
+- `BetaDeletedMessageBatch object`
 
   - `id: string`
 
from line 4909
 
     For Message Batches, this is always `"message_batch_deleted"`.
 
-    - `"message_batch_deleted"`
+    default: message_batch_deleted
 
 ### Example
 
-```http
+```bash
 curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID \
     -X DELETE \
     -H 'anthropic-version: 2023-06-01' \
from line 4921
     -H "X-Api-Key: $ANTHROPIC_API_KEY"
 ```
 
-#### Response
+#### Response (200)
 
 ```json
 {
from line 4932
 
 ## Retrieve Message Batch results
 
-**get** `/v1/messages/batches/{message_batch_id}/results`
+**GET** `/v1/messages/batches/{message_batch_id}/results`
 
 Streams the results of a Message Batch as a `.jsonl` file.
 
from line 4940
 
 Learn more about the Message Batches API in our [user guide](https://platform.claude.com/docs/en/build-with-claude/batch-processing)
 
-### Path Parameters
+### Path parameters
 
 - `message_batch_id: string`
 
   ID of the Message Batch.
 
-### Header Parameters
+### Headers
 
 - `"anthropic-beta": optional array of AnthropicBeta`
 
from line 5026
 
 ### Returns
 
-- `BetaMessageBatchIndividualResponse object { custom_id, result }`
+- `BetaMessageBatchIndividualResponse object`
 
   This is a single line in the response `.jsonl` file and does not represent the response as a whole.
 
from line 5042
 
     Contains a Message output if processing was successful, an error response if processing failed, or the reason why processing was not attempted, such as cancellation or expiration.
 
-    - `BetaMessageBatchSucceededResult object { message, type }`
+    - `BetaMessageBatchSucceededResult object`
 
       - `message: BetaMessage`
 
from line 5064
 
             The time at which the container will expire.
 
+            format: date-time
+
           - `skills: array of BetaSkill or null`
 
             Skills loaded in the container
from line 5074
 
               Skill ID
 
+              maxLength: 64, minLength: 1
+
             - `type: "anthropic" or "custom"`
 
               Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)
from line 5087
             - `version: string`
 
               The resolved version: a skill version ID for custom skills.
+
+              maxLength: 64, minLength: 1
 
         - `content: array of BetaContentBlock`
 
from line 5119
           [{"type": "text", "text": "B)"}]
           ```
 
-          - `BetaTextBlock object { citations, text, type }`
+          - `BetaTextBlock object`
 
             - `citations: array of BetaTextCitation or null`
 
from line 5127
 
               The type of citation returned will depend on the type of document being cited. Citing a PDF results in `page_location`, plain text results in `char_location`, and content document results in `content_block_location`.
 
-              - `BetaCitationCharLocation object { cited_text, document_index, document_title, 4 more }`
+              - `BetaCitationCharLocation object`
 
                 - `cited_text: string`
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
                 - `end_char_index: number`
from line 5143
 
                 - `start_char_index: number`
 
+                  minimum: 0
+
                 - `type: "char_location"`
 
-                  - `"char_location"`
-
-              - `BetaCitationPageLocation object { cited_text, document_index, document_title, 4 more }`
+                  default: char_location
+
+              - `BetaCitationPageLocation object`
 
                 - `cited_text: string`
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
                 - `end_page_number: number`
from line 5165
 
                 - `start_page_number: number`
 
+                  minimum: 1
+
                 - `type: "page_location"`
 
-                  - `"page_location"`
-
-              - `BetaCitationContentBlockLocation object { cited_text, document_index, document_title, 4 more }`
+                  default: page_location
+
+              - `BetaCitationContentBlockLocation object`
 
                 - `cited_text: string`
 
from line 5181
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
                 - `end_block_index: number`
from line 5197
 
                   0-based index of the first cited block in the source's `content` array.
 
+                  minimum: 0
+
                 - `type: "content_block_location"`
 
-                  - `"content_block_location"`
-
-              - `BetaCitationsWebSearchResultLocation object { cited_text, encrypted_index, title, 2 more }`
+                  default: content_block_location
+
+              - `BetaCitationsWebSearchResultLocation object`
 
                 - `cited_text: string`
 
from line 5211
 
                 - `title: string or null`
 
+                  maxLength: 512
+
                 - `type: "web_search_result_location"`
 
-                  - `"web_search_result_location"`
+                  default: web_search_result_location
 
                 - `url: string`
 
-              - `BetaCitationSearchResultLocation object { cited_text, end_block_index, search_result_index, 4 more }`
+              - `BetaCitationSearchResultLocation object`
 
                 - `cited_text: string`
 
from line 5239
 
                   Counted separately from `document_index`; server-side web search results are not included in this count.
 
+                  minimum: 0
+
                 - `source: string`
 
                 - `start_block_index: number`
 
                   0-based index of the first cited block in the source's `content` array.
 
+                  minimum: 0
+
                 - `title: string or null`
 
                 - `type: "search_result_location"`
 
-                  - `"search_result_location"`
+                  default: search_result_location
 
             - `text: string`
 
+              maxLength: 5000000, minLength: 0
+
             - `type: "text"`
 
-              - `"text"`
-
-          - `BetaThinkingBlock object { signature, thinking, type }`
+              default: text
+
+          - `BetaThinkingBlock object`
 
             - `signature: string`
 
from line 5279
 
             - `type: "thinking"`
 
-              - `"thinking"`
-
-          - `BetaRedactedThinkingBlock object { data, type }`
+              default: thinking
+
+          - `BetaRedactedThinkingBlock object`
 
             - `data: string`
 
from line 5293
 
             - `type: "redacted_thinking"`
 
-              - `"redacted_thinking"`
-
-          - `BetaToolUseBlock object { id, input, name, 3 more }`
+              default: redacted_thinking
+
+          - `BetaToolUseBlock object`
 
             - `id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `input: map[unknown]`
 
             - `name: string`
 
+              minLength: 1
+
             - `type: "tool_use"`
 
-              - `"tool_use"`
+              default: tool_use
 
             - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
                 - `type: "direct"`
 
-                  - `"direct"`
-
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
                 - `tool_id: string`
 
+                  pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
                 - `type: "code_execution_20250825"`
 
-                  - `"code_execution_20250825"`
-
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
+              - `BetaServerToolCaller20260120 object`
 
                 - `tool_id: string`
 
+                  pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
                 - `type: "code_execution_20260120"`
 
-                  - `"code_execution_20260120"`
-
             - `toolset_name: optional string or null`
 
               For a toolset member tool_use, the toolset family.
 
-          - `BetaServerToolUseBlock object { id, input, name, 2 more }`
+              maxLength: 64, minLength: 1, pattern: ^[a-zA-Z0-9_-]+$
+
+          - `BetaServerToolUseBlock object`
 
             - `id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `input: map[unknown]`
 
             - `name: "advisor" or "web_search" or "web_fetch" or 5 more`
from line 5373
 
             - `type: "server_tool_use"`
 
-              - `"server_tool_use"`
+              default: server_tool_use
 
             - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaWebSearchToolResultBlock object { content, tool_use_id, type, caller }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaWebSearchToolResultBlock object`
 
             - `content: BetaWebSearchToolResultBlockContent`
 
-              - `BetaWebSearchToolResultError object { error_code, type }`
+              - `BetaWebSearchToolResultError object`
 
                 - `error_code: BetaWebSearchToolResultErrorCode`
 
from line 5411
 
                 - `type: "web_search_tool_result_error"`
 
-                  - `"web_search_tool_result_error"`
+                  default: web_search_tool_result_error
 
               - `array of BetaWebSearchResultBlock`
 
from line 5423
 
                 - `type: "web_search_result"`
 
-                  - `"web_search_result"`
+                  default: web_search_result
 
                 - `url: string`
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "web_search_tool_result"`
 
-              - `"web_search_tool_result"`
+              default: web_search_tool_result
 
             - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaWebFetchToolResultBlock object { content, tool_use_id, type, caller }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaWebFetchToolResultBlock object`
 
             - `content: BetaWebFetchToolResultErrorBlock or BetaWebFetchBlock`
 
-              - `BetaWebFetchToolResultErrorBlock object { error_code, type }`
+              - `BetaWebFetchToolResultErrorBlock object`
 
                 - `error_code: BetaWebFetchToolResultErrorCode`
 
from line 5477
 
                 - `type: "web_fetch_tool_result_error"`
 
-                  - `"web_fetch_tool_result_error"`
-
-              - `BetaWebFetchBlock object { content, retrieved_at, type, url }`
+                  default: web_fetch_tool_result_error
+
+              - `BetaWebFetchBlock object`
 
                 - `content: BetaDocumentBlock`
 
from line 5489
 
                     - `enabled: boolean`
 
+                      default: false
+
                   - `source: BetaBase64PDFSource or BetaPlainTextSource`
 
-                    - `BetaBase64PDFSource object { data, media_type, type }`
+                    - `BetaBase64PDFSource object`
 
                       - `data: string`
 
+                        format: byte
+
                       - `media_type: "application/pdf"`
 
-                        - `"application/pdf"`
-
                       - `type: "base64"`
 
-                        - `"base64"`
-
-                    - `BetaPlainTextSource object { data, media_type, type }`
+                    - `BetaPlainTextSource object`
 
                       - `data: string`
 
                       - `media_type: "text/plain"`
 
-                        - `"text/plain"`
-
                       - `type: "text"`
 
-                        - `"text"`
-
                   - `title: string or null`
 
                     The title of the document
 
                   - `type: "document"`
 
-                    - `"document"`
+                    default: document
 
                 - `retrieved_at: string or null`
 
from line 5525
 
                 - `type: "web_fetch_result"`
 
-                  - `"web_fetch_result"`
+                  default: web_fetch_result
 
                 - `url: string`
 
from line 5533
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "web_fetch_tool_result"`
 
-              - `"web_fetch_tool_result"`
+              default: web_fetch_tool_result
 
             - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaAdvisorToolResultBlock object { content, tool_use_id, type }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaAdvisorToolResultBlock object`
 
             - `content: BetaAdvisorToolResultError or BetaAdvisorResultBlock or BetaAdvisorRedactedResultBlock`
 
-              - `BetaAdvisorToolResultError object { error_code, type }`
+              - `BetaAdvisorToolResultError object`
 
                 - `error_code: "max_uses_exceeded" or "prompt_too_long" or "too_many_requests" or 4 more`
 
from line 5577
 
                 - `type: "advisor_tool_result_error"`
 
-                  - `"advisor_tool_result_error"`
-
-              - `BetaAdvisorResultBlock object { stop_reason, text, type }`
+                  default: advisor_tool_result_error
+
+              - `BetaAdvisorResultBlock object`
 
                 - `stop_reason: string or null`
 
from line 5589
 
                 - `type: "advisor_result"`
 
-                  - `"advisor_result"`
-
-              - `BetaAdvisorRedactedResultBlock object { encrypted_content, stop_reason, type }`
+                  default: advisor_result
+
+              - `BetaAdvisorRedactedResultBlock object`
 
                 - `encrypted_content: string`
 
from line 5603
 
                 - `type: "advisor_redacted_result"`
 
-                  - `"advisor_redacted_result"`
+                  default: advisor_redacted_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "advisor_tool_result"`
 
-              - `"advisor_tool_result"`
-
-          - `BetaCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+              default: advisor_tool_result
+
+          - `BetaCodeExecutionToolResultBlock object`
 
             - `content: BetaCodeExecutionToolResultBlockContent`
 
               Code execution result with encrypted stdout for PFC + web_search results.
 
-              - `BetaCodeExecutionToolResultError object { error_code, type }`
+              - `BetaCodeExecutionToolResultError object`
 
                 - `error_code: BetaCodeExecutionToolResultErrorCode`
 
from line 5633
 
                 - `type: "code_execution_tool_result_error"`
 
-                  - `"code_execution_tool_result_error"`
-
-              - `BetaCodeExecutionResultBlock object { content, return_code, stderr, 2 more }`
+                  default: code_execution_tool_result_error
+
+              - `BetaCodeExecutionResultBlock object`
 
                 - `content: array of BetaCodeExecutionOutputBlock`
 
from line 5643
 
                   - `type: "code_execution_output"`
 
-                    - `"code_execution_output"`
+                    default: code_execution_output
 
                 - `return_code: number`
 
from line 5653
 
                 - `type: "code_execution_result"`
 
-                  - `"code_execution_result"`
-
-              - `BetaEncryptedCodeExecutionResultBlock object { content, encrypted_stdout, return_code, 2 more }`
+                  default: code_execution_result
+
+              - `BetaEncryptedCodeExecutionResultBlock object`
 
                 Code execution result with encrypted stdout for PFC + web_search results.
 
from line 5665
 
                   - `type: "code_execution_output"`
 
+                    default: code_execution_output
+
                 - `encrypted_stdout: string`
 
                 - `return_code: number`
from line 5675
 
                 - `type: "encrypted_code_execution_result"`
 
-                  - `"encrypted_code_execution_result"`
+                  default: encrypted_code_execution_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "code_execution_tool_result"`
 
-              - `"code_execution_tool_result"`
-
-          - `BetaBashCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+              default: code_execution_tool_result
+
+          - `BetaBashCodeExecutionToolResultBlock object`
 
             - `content: BetaBashCodeExecutionToolResultError or BetaBashCodeExecutionResultBlock`
 
-              - `BetaBashCodeExecutionToolResultError object { error_code, type }`
+              - `BetaBashCodeExecutionToolResultError object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 5705
 
                 - `type: "bash_code_execution_tool_result_error"`
 
-                  - `"bash_code_execution_tool_result_error"`
-
-              - `BetaBashCodeExecutionResultBlock object { content, return_code, stderr, 2 more }`
+                  default: bash_code_execution_tool_result_error
+
+              - `BetaBashCodeExecutionResultBlock object`
 
                 - `content: array of BetaBashCodeExecutionOutputBlock`
 
from line 5715
 
                   - `type: "bash_code_execution_output"`
 
-                    - `"bash_code_execution_output"`
+                    default: bash_code_execution_output
 
                 - `return_code: number`
 
from line 5725
 
                 - `type: "bash_code_execution_result"`
 
-                  - `"bash_code_execution_result"`
+                  default: bash_code_execution_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "bash_code_execution_tool_result"`
 
-              - `"bash_code_execution_tool_result"`
-
-          - `BetaTextEditorCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+              default: bash_code_execution_tool_result
+
+          - `BetaTextEditorCodeExecutionToolResultBlock object`
 
             - `content: BetaTextEditorCodeExecutionToolResultError or BetaTextEditorCodeExecutionViewResultBlock or BetaTextEditorCodeExecutionCreateResultBlock or BetaTextEditorCodeExecutionStrReplaceResultBlock`
 
-              - `BetaTextEditorCodeExecutionToolResultError object { error_code, error_message, type }`
+              - `BetaTextEditorCodeExecutionToolResultError object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 5757
 
                 - `type: "text_editor_code_execution_tool_result_error"`
 
-                  - `"text_editor_code_execution_tool_result_error"`
-
-              - `BetaTextEditorCodeExecutionViewResultBlock object { content, file_type, num_lines, 3 more }`
+                  default: text_editor_code_execution_tool_result_error
+
+              - `BetaTextEditorCodeExecutionViewResultBlock object`
 
                 - `content: string`
 
from line 5779
 
                 - `type: "text_editor_code_execution_view_result"`
 
-                  - `"text_editor_code_execution_view_result"`
-
-              - `BetaTextEditorCodeExecutionCreateResultBlock object { is_file_update, type }`
+                  default: text_editor_code_execution_view_result
+
+              - `BetaTextEditorCodeExecutionCreateResultBlock object`
 
                 - `is_file_update: boolean`
 
                 - `type: "text_editor_code_execution_create_result"`
 
-                  - `"text_editor_code_execution_create_result"`
-
-              - `BetaTextEditorCodeExecutionStrReplaceResultBlock object { lines, new_lines, new_start, 3 more }`
+                  default: text_editor_code_execution_create_result
+
+              - `BetaTextEditorCodeExecutionStrReplaceResultBlock object`
 
                 - `lines: array of string or null`
 
from line 5803
 
                 - `type: "text_editor_code_execution_str_replace_result"`
 
-                  - `"text_editor_code_execution_str_replace_result"`
+                  default: text_editor_code_execution_str_replace_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "text_editor_code_execution_tool_result"`
 
-              - `"text_editor_code_execution_tool_result"`
-
-          - `BetaToolSearchToolResultBlock object { content, tool_use_id, type }`
+              default: text_editor_code_execution_tool_result
+
+          - `BetaToolSearchToolResultBlock object`
 
             - `content: BetaToolSearchToolResultError or BetaToolSearchToolSearchResultBlock`
 
-              - `BetaToolSearchToolResultError object { error_code, error_message, type }`
+              - `BetaToolSearchToolResultError object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or "execution_time_exceeded"`
 
from line 5833
 
                 - `type: "tool_search_tool_result_error"`
 
-                  - `"tool_search_tool_result_error"`
-
-              - `BetaToolSearchToolSearchResultBlock object { tool_references, type }`
+                  default: tool_search_tool_result_error
+
+              - `BetaToolSearchToolSearchResultBlock object`
 
                 - `tool_references: array of BetaToolReferenceBlock`
 
                   - `tool_name: string`
 
+                    maxLength: 256, minLength: 1, pattern: ^[a-zA-Z0-9_-]{1,256}$
+
                   - `type: "tool_reference"`
 
-                    - `"tool_reference"`
+                    default: tool_reference
 
                 - `type: "tool_search_tool_search_result"`
 
-                  - `"tool_search_tool_search_result"`
+                  default: tool_search_tool_search_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "tool_search_tool_result"`
 
-              - `"tool_search_tool_result"`
-
-          - `BetaMCPToolUseBlock object { id, input, name, 2 more }`
+              default: tool_search_tool_result
+
+          - `BetaMCPToolUseBlock object`
 
             - `id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `input: map[unknown]`
 
             - `name: string`
from line 5877
 
             - `type: "mcp_tool_use"`
 
-              - `"mcp_tool_use"`
-
-          - `BetaMCPToolResultBlock object { content, is_error, tool_use_id, type }`
+              default: mcp_tool_use
+
+          - `BetaMCPToolResultBlock object`
 
             - `content: string or array of BetaTextBlock`
 
from line 5895
 
                 - `text: string`
 
+                  maxLength: 5000000, minLength: 0
+
                 - `type: "text"`
 
+                  default: text
+
             - `is_error: boolean`
 
+              default: false
+
             - `tool_use_id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `type: "mcp_tool_result"`
 
-              - `"mcp_tool_result"`
-
-          - `BetaContainerUploadBlock object { file_id, type }`
+              default: mcp_tool_result
+
+          - `BetaContainerUploadBlock object`
 
             Response model for a file uploaded to the container.
 
from line 5921
 
             - `type: "container_upload"`
 
-              - `"container_upload"`
-
-          - `BetaCompactionBlock object { content, encrypted_content, type }`
+              default: container_upload
+
+          - `BetaCompactionBlock object`
 
             A compaction block returned when autocompact is triggered.
 
from line 5941
 
             - `type: "compaction"`
 
-              - `"compaction"`
-
-          - `BetaFallbackBlock object { from, to, trigger, type }`
+              default: compaction
+
+          - `BetaFallbackBlock object`
 
             Marks the point in `content` where one model's output gives way to the next.
 
from line 6069
 
               - `type: "refusal"`
 
-                - `"refusal"`
+                default: refusal
 
             - `type: "fallback"`
 
-              - `"fallback"`
+              default: fallback
 
         - `context_management: BetaContextManagementResponse or null`
 
from line 6085
 
             List of context management edits that were applied.
 
-            - `BetaClearToolUses20250919EditResponse object { cleared_input_tokens, cleared_tool_uses, type }`
+            - `BetaClearToolUses20250919EditResponse object`
 
               - `cleared_input_tokens: number`
 
                 Number of input tokens cleared by this edit.
 
+                minimum: 0
+
               - `cleared_tool_uses: number`
 
                 Number of tool uses that were cleared.
 
+                minimum: 0
+
               - `type: "clear_tool_uses_20250919"`
 
                 The type of context management edit applied.
 
-                - `"clear_tool_uses_20250919"`
-
-            - `BetaClearThinking20251015EditResponse object { cleared_input_tokens, cleared_thinking_turns, type }`
+                default: clear_tool_uses_20250919
+
+            - `BetaClearThinking20251015EditResponse object`
 
               - `cleared_input_tokens: number`
 
                 Number of input tokens cleared by this edit.
 
+                minimum: 0
+
               - `cleared_thinking_turns: number`
 
                 Number of thinking turns that were cleared.
 
+                minimum: 0
+
               - `type: "clear_thinking_20251015"`
 
                 The type of context management edit applied.
 
-                - `"clear_thinking_20251015"`
+                default: clear_thinking_20251015
 
         - `diagnostics: BetaDiagnostics or null`
 
from line 6134
 
             Explains why the prompt cache could not fully reuse the prefix from the request identified by `diagnostics.previous_message_id`. `null` means diagnosis is still pending — the response was serialized before the background comparison completed.
 
-            - `BetaCacheMissModelChanged object { cache_missed_input_tokens, type }`
+            - `BetaCacheMissModelChanged object`
 
               - `cache_missed_input_tokens: number`
 
from line 6142
 
               - `type: "model_changed"`
 
-                - `"model_changed"`
-
-            - `BetaCacheMissSystemChanged object { cache_missed_input_tokens, type }`
+                default: model_changed
+
+            - `BetaCacheMissSystemChanged object`
 
               - `cache_missed_input_tokens: number`
 
from line 6152
 
               - `type: "system_changed"`
 
-                - `"system_changed"`
-
-            - `BetaCacheMissToolsChanged object { cache_missed_input_tokens, type }`
+                default: system_changed
+
+            - `BetaCacheMissToolsChanged object`
 
               - `cache_missed_input_tokens: number`
 
from line 6162
 
               - `type: "tools_changed"`
 
-                - `"tools_changed"`
-
-            - `BetaCacheMissMessagesChanged object { cache_missed_input_tokens, type }`
+                default: tools_changed
+
+            - `BetaCacheMissMessagesChanged object`
 
               - `cache_missed_input_tokens: number`
 
from line 6172
 
               - `type: "messages_changed"`
 
-                - `"messages_changed"`
-
-            - `BetaCacheMissPreviousMessageNotFound object { type }`
+                default: messages_changed
+
+            - `BetaCacheMissPreviousMessageNotFound object`
 
               - `type: "previous_message_not_found"`
 
-                - `"previous_message_not_found"`
-
-            - `BetaCacheMissUnavailable object { type }`
+                default: previous_message_not_found
+
+            - `BetaCacheMissUnavailable object`
 
               - `type: "unavailable"`
 
-                - `"unavailable"`
+                default: unavailable
 
         - `model: Model`
 
from line 6198
 
           This will always be `"assistant"`.
 
-          - `"assistant"`
+          default: assistant
 
         - `stop_details: BetaRefusalStopDetails or null`
 
from line 6285
 
           - `type: "refusal"`
 
-            - `"refusal"`
+            default: refusal
 
         - `stop_reason: BetaStopReason or null`
 
from line 6331
 
           For Messages, this is always `"message"`.
 
-          - `"message"`
+          default: message
 
         - `usage: BetaUsage`
 
from line 6353
 
               The number of input tokens used to create the 1 hour cache entry.
 
+              default: 0, minimum: 0
+
             - `ephemeral_5m_input_tokens: number`
 
               The number of input tokens used to create the 5 minute cache entry.
 
+              default: 0, minimum: 0
+
           - `cache_creation_input_tokens: number or null`
 
             The number of input tokens used to create the cache entry.
 
+            minimum: 0
+
           - `cache_read_input_tokens: number or null`
 
             The number of input tokens read from the cache.
+
+            minimum: 0
 
           - `fallback_credit: BetaFallbackCreditUsage or null`
 
from line 6386
               resulting shift is zero because there was nothing to move. `not_applied`:
               no reprice was applied; the arm's `reason` says why.
 
-              - `BetaFallbackCreditRedeemed object { type }`
+              - `BetaFallbackCreditRedeemed object`
 
                 The reprice was applied: the retry is billed as if the conversation
                 had been on the retry model all along.
 
                 - `type: "redeemed"`
 
-                  - `"redeemed"`
-
-              - `BetaFallbackCreditNotApplied object { reason, type, remove_to_redeem }`
+                  default: redeemed
+
+              - `BetaFallbackCreditNotApplied object`
 
                 No reprice was applied; `reason` says why.
 
from line 6432
 
                 - `type: "not_applied"`
 
-                  - `"not_applied"`
+                  default: not_applied
 
                 - `remove_to_redeem: optional array of string or null`
 
from line 6453
 
             The number of input tokens which were used.
 
+            minimum: 0
+
           - `iterations: BetaIterationsUsage or null`
 
             Per-iteration token usage breakdown.
from line 6465
             - Calculate the true context window size from the last iteration
             - Understand token accumulation across server-side tool use loops
 
-            - `BetaMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+            - `BetaMessageIterationUsage object`
 
               Token usage for a sampling iteration.
 
from line 6477
 
                 The number of input tokens used to create the cache entry.
 
+                default: 0, minimum: 0
+
               - `cache_read_input_tokens: number`
 
                 The number of input tokens read from the cache.
 
+                default: 0, minimum: 0
+
               - `input_tokens: number`
 
                 The number of input tokens which were used.
 
+                minimum: 0
+
               - `model: Model`
 
                 The model that will complete your prompt.
from line 6501
 
                 The number of output tokens which were used.
 
+                minimum: 0
+
               - `type: "message"`
 
                 Usage for a sampling iteration
 
-                - `"message"`
-
-            - `BetaCompactionIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 3 more }`
+                default: message
+
+            - `BetaCompactionIterationUsage object`
 
               Token usage for a compaction iteration.
 
from line 6521
 
                 The number of input tokens used to create the cache entry.
 
+                default: 0, minimum: 0
+
               - `cache_read_input_tokens: number`
 
                 The number of input tokens read from the cache.
 
+                default: 0, minimum: 0
+
               - `input_tokens: number`
 
                 The number of input tokens which were used.
 
+                minimum: 0
+
               - `output_tokens: number`
 
                 The number of output tokens which were used.
 
+                minimum: 0
+
               - `type: "compaction"`
 
                 Usage for a compaction iteration
 
-                - `"compaction"`
-
-            - `BetaAdvisorMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+                default: compaction
+
+            - `BetaAdvisorMessageIterationUsage object`
 
               Token usage for an advisor sub-inference iteration.
 
from line 6559
 
                 The number of input tokens used to create the cache entry.
 
+                default: 0, minimum: 0
+
               - `cache_read_input_tokens: number`
 
                 The number of input tokens read from the cache.
 
+                default: 0, minimum: 0
+
               - `input_tokens: number`
 
                 The number of input tokens which were used.
 
+                minimum: 0
+
               - `model: Model`
 
                 The model that will complete your prompt.
from line 6583
 
                 The number of output tokens which were used.
 
+                minimum: 0
+
               - `type: "advisor_message"`
 
                 Usage for an advisor sub-inference iteration
 
-                - `"advisor_message"`
-
-            - `BetaFallbackMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+                default: advisor_message
+
+            - `BetaFallbackMessageIterationUsage object`
 
               Token usage for the fallback-model attempt of a server-side fallback request.
 
from line 6608
 
                 The number of input tokens used to create the cache entry.
 
+                default: 0, minimum: 0
+
               - `cache_read_input_tokens: number`
 
                 The number of input tokens read from the cache.
 
+                default: 0, minimum: 0
+
               - `input_tokens: number`
 
                 The number of input tokens which were used.
 
+                minimum: 0
+
               - `model: Model`
 
                 The model that will complete your prompt.
from line 6632
 
                 The number of output tokens which were used.
 
+                minimum: 0
+
               - `type: "fallback_message"`
 
                 Usage for the fallback-model attempt that served the response
 
-                - `"fallback_message"`
+                default: fallback_message
 
           - `output_tokens: number`
 
             The number of output tokens which were used.
+
+            minimum: 0
 
           - `output_tokens_details: BetaOutputTokensDetails or null`
 
from line 6666
               generation count by a small number of tokens. Always ≤ `output_tokens`;
               `output_tokens - thinking_tokens` approximates the non-reasoning output.
 
+              default: 0, minimum: 0
+
           - `server_tool_use: BetaServerToolUsage or null`
 
             The number of server tool requests.
from line 6676
 
               The number of web fetch tool requests.
 
+              default: 0, minimum: 0
+
             - `web_search_requests: number`
 
               The number of web search tool requests.
 
+              default: 0, minimum: 0
+
           - `service_tier: "standard" or "priority" or "batch" or null`
 
             If the request used the priority, standard, or batch tier.
from line 6704
 
       - `type: "succeeded"`
 
-        - `"succeeded"`
-
-    - `BetaMessageBatchErroredResult object { error, type }`
+        default: succeeded
+
+    - `BetaMessageBatchErroredResult object`
 
       - `error: BetaErrorResponse`
 
         - `error: BetaError`
 
-          - `BetaInvalidRequestError object { message, type }`
+          - `BetaInvalidRequestError object`
 
             - `message: string`
 
+              default: Invalid request
+
             - `type: "invalid_request_error"`
 
-              - `"invalid_request_error"`
-
-          - `BetaAuthenticationError object { message, type }`
+              default: invalid_request_error
+
+          - `BetaAuthenticationError object`
 
             - `message: string`
 
+              default: Authentication error
+
             - `type: "authentication_error"`
 
-              - `"authentication_error"`
-
-          - `BetaBillingError object { message, type }`
+              default: authentication_error
+
+          - `BetaBillingError object`
 
             - `message: string`
 
+              default: Billing error
+
             - `type: "billing_error"`
 
-              - `"billing_error"`
-
-          - `BetaPermissionError object { message, type }`
+              default: billing_error
+
+          - `BetaPermissionError object`
 
             - `message: string`
 
+              default: Permission denied
+
             - `type: "permission_error"`
 
-              - `"permission_error"`
-
-          - `BetaNotFoundError object { message, type }`
+              default: permission_error
+
+          - `BetaNotFoundError object`
 
             - `message: string`
 
+              default: Not found
+
             - `type: "not_found_error"`
 
-              - `"not_found_error"`
-
-          - `BetaRateLimitError object { message, type }`
+              default: not_found_error
+
+          - `BetaRateLimitError object`
 
             - `message: string`
 
+              default: Rate limited
+
             - `type: "rate_limit_error"`
 
-              - `"rate_limit_error"`
-
-          - `BetaGatewayTimeoutError object { message, type }`
+              default: rate_limit_error
+
+          - `BetaGatewayTimeoutError object`
 
             - `message: string`
 
+              default: Request timeout
+
             - `type: "timeout_error"`
 
-              - `"timeout_error"`
-
-          - `BetaAPIError object { message, type }`
+              default: timeout_error
+
+          - `BetaAPIError object`
 
             - `message: string`
 
+              default: Internal server error
+
             - `type: "api_error"`
 
-              - `"api_error"`
-
-          - `BetaOverloadedError object { message, type }`
+              default: api_error
+
+          - `BetaOverloadedError object`
 
             - `message: string`
 
+              default: Overloaded
+
             - `type: "overloaded_error"`
 
-              - `"overloaded_error"`
+              default: overloaded_error
 
         - `request_id: string or null`
 
         - `type: "error"`
 
-          - `"error"`
+          default: error
 
       - `type: "errored"`
 
-        - `"errored"`
-
-    - `BetaMessageBatchCanceledResult object { type }`
+        default: errored
+
+    - `BetaMessageBatchCanceledResult object`
 
       - `type: "canceled"`
 
-        - `"canceled"`
-
-    - `BetaMessageBatchExpiredResult object { type }`
+        default: canceled
+
+    - `BetaMessageBatchExpiredResult object`
 
       - `type: "expired"`
 
-        - `"expired"`
+        default: expired
 
 ### Example
 
-```http
+```bash
 curl https://api.anthropic.com/v1/messages/batches/$MESSAGE_BATCH_ID/results \
     -H 'anthropic-version: 2023-06-01' \
     -H 'anthropic-beta: message-batches-2024-09-24' \
     -H "X-Api-Key: $ANTHROPIC_API_KEY"
 ```
 
-## Domain Types
+## Domain types
 
 ### Beta Deleted Message Batch
 
-- `BetaDeletedMessageBatch object { id, type }`
+- `BetaDeletedMessageBatch object`
 
   - `id: string`
 
from line 6849
 
     For Message Batches, this is always `"message_batch_deleted"`.
 
-    - `"message_batch_deleted"`
+    default: message_batch_deleted
 
 ### Beta Message Batch
 
-- `BetaMessageBatch object { id, archived_at, cancel_initiated_at, 7 more }`
+- `BetaMessageBatch object`
 
   - `id: string`
 
from line 6865
 
     RFC 3339 datetime string representing the time at which the Message Batch was archived and its results became unavailable.
 
+    format: date-time
+
   - `cancel_initiated_at: string or null`
 
     RFC 3339 datetime string representing the time at which cancellation was initiated for the Message Batch. Specified only if cancellation was initiated.
 
+    format: date-time
+
   - `created_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch was created.
 
+    format: date-time
+
   - `ended_at: string or null`
 
     RFC 3339 datetime string representing the time at which processing for the Message Batch ended. Specified only once processing ends.
 
     Processing ends when every request in a Message Batch has either succeeded, errored, canceled, or expired.
 
+    format: date-time
+
   - `expires_at: string`
 
     RFC 3339 datetime string representing the time at which the Message Batch will expire and end processing, which is 24 hours after creation.
 
+    format: date-time
+
   - `processing_status: "in_progress" or "canceling" or "ended"`
 
     Processing status of the Message Batch.
from line 6915
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `errored: number`
 
       Number of requests in the Message Batch that encountered an error.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `expired: number`
 
       Number of requests in the Message Batch that have expired.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
     - `processing: number`
 
       Number of requests in the Message Batch that are processing.
 
+      default: 0
+
     - `succeeded: number`
 
       Number of requests in the Message Batch that have completed successfully.
 
       This is zero until processing of the entire Message Batch has ended.
 
+      default: 0
+
   - `results_url: string or null`
 
     URL to a `.jsonl` file containing the results of the Message Batch requests. Specified only once processing ends.
from line 6959
 
     For Message Batches, this is always `"message_batch"`.
 
-    - `"message_batch"`
+    default: message_batch
 
 ### Beta Message Batch Canceled Result
 
-- `BetaMessageBatchCanceledResult object { type }`
+- `BetaMessageBatchCanceledResult object`
 
   - `type: "canceled"`
 
-    - `"canceled"`
+    default: canceled
 
 ### Beta Message Batch Errored Result
 
-- `BetaMessageBatchErroredResult object { error, type }`
+- `BetaMessageBatchErroredResult object`
 
   - `error: BetaErrorResponse`
 
     - `error: BetaError`
 
-      - `BetaInvalidRequestError object { message, type }`
+      - `BetaInvalidRequestError object`
 
         - `message: string`
 
+          default: Invalid request
+
         - `type: "invalid_request_error"`
 
-          - `"invalid_request_error"`
-
-      - `BetaAuthenticationError object { message, type }`
+          default: invalid_request_error
+
+      - `BetaAuthenticationError object`
 
         - `message: string`
 
+          default: Authentication error
+
         - `type: "authentication_error"`
 
-          - `"authentication_error"`
-
-      - `BetaBillingError object { message, type }`
+          default: authentication_error
+
+      - `BetaBillingError object`
 
         - `message: string`
 
+          default: Billing error
+
         - `type: "billing_error"`
 
-          - `"billing_error"`
-
-      - `BetaPermissionError object { message, type }`
+          default: billing_error
+
+      - `BetaPermissionError object`
 
         - `message: string`
 
+          default: Permission denied
+
         - `type: "permission_error"`
 
-          - `"permission_error"`
-
-      - `BetaNotFoundError object { message, type }`
+          default: permission_error
+
+      - `BetaNotFoundError object`
 
         - `message: string`
 
+          default: Not found
+
         - `type: "not_found_error"`
 
-          - `"not_found_error"`
-
-      - `BetaRateLimitError object { message, type }`
+          default: not_found_error
+
+      - `BetaRateLimitError object`
 
         - `message: string`
 
+          default: Rate limited
+
         - `type: "rate_limit_error"`
 
-          - `"rate_limit_error"`
-
-      - `BetaGatewayTimeoutError object { message, type }`
+          default: rate_limit_error
+
+      - `BetaGatewayTimeoutError object`
 
         - `message: string`
 
+          default: Request timeout
+
         - `type: "timeout_error"`
 
-          - `"timeout_error"`
-
-      - `BetaAPIError object { message, type }`
+          default: timeout_error
+
+      - `BetaAPIError object`
 
         - `message: string`
 
+          default: Internal server error
+
         - `type: "api_error"`
 
-          - `"api_error"`
-
-      - `BetaOverloadedError object { message, type }`
+          default: api_error
+
+      - `BetaOverloadedError object`
 
         - `message: string`
 
+          default: Overloaded
+
         - `type: "overloaded_error"`
 
-          - `"overloaded_error"`
+          default: overloaded_error
 
     - `request_id: string or null`
 
     - `type: "error"`
 
-      - `"error"`
+      default: error
 
   - `type: "errored"`
 
-    - `"errored"`
+    default: errored
 
 ### Beta Message Batch Expired Result
 
-- `BetaMessageBatchExpiredResult object { type }`
+- `BetaMessageBatchExpiredResult object`
 
   - `type: "expired"`
 
-    - `"expired"`
+    default: expired
 
 ### Beta Message Batch Individual Response
 
-- `BetaMessageBatchIndividualResponse object { custom_id, result }`
+- `BetaMessageBatchIndividualResponse object`
 
   This is a single line in the response `.jsonl` file and does not represent the response as a whole.
 
from line 7103
 
     Contains a Message output if processing was successful, an error response if processing failed, or the reason why processing was not attempted, such as cancellation or expiration.
 
-    - `BetaMessageBatchSucceededResult object { message, type }`
+    - `BetaMessageBatchSucceededResult object`
 
       - `message: BetaMessage`
 
from line 7125
 
             The time at which the container will expire.
 
+            format: date-time
+
           - `skills: array of BetaSkill or null`
 
             Skills loaded in the container
from line 7135
 
               Skill ID
 
+              maxLength: 64, minLength: 1
+
             - `type: "anthropic" or "custom"`
 
               Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)
from line 7148
             - `version: string`
 
               The resolved version: a skill version ID for custom skills.
+
+              maxLength: 64, minLength: 1
 
         - `content: array of BetaContentBlock`
 
from line 7180
           [{"type": "text", "text": "B)"}]
           ```
 
-          - `BetaTextBlock object { citations, text, type }`
+          - `BetaTextBlock object`
 
             - `citations: array of BetaTextCitation or null`
 
from line 7188
 
               The type of citation returned will depend on the type of document being cited. Citing a PDF results in `page_location`, plain text results in `char_location`, and content document results in `content_block_location`.
 
-              - `BetaCitationCharLocation object { cited_text, document_index, document_title, 4 more }`
+              - `BetaCitationCharLocation object`
 
                 - `cited_text: string`
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
                 - `end_char_index: number`
from line 7204
 
                 - `start_char_index: number`
 
+                  minimum: 0
+
                 - `type: "char_location"`
 
-                  - `"char_location"`
-
-              - `BetaCitationPageLocation object { cited_text, document_index, document_title, 4 more }`
+                  default: char_location
+
+              - `BetaCitationPageLocation object`
 
                 - `cited_text: string`
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
                 - `end_page_number: number`
from line 7226
 
                 - `start_page_number: number`
 
+                  minimum: 1
+
                 - `type: "page_location"`
 
-                  - `"page_location"`
-
-              - `BetaCitationContentBlockLocation object { cited_text, document_index, document_title, 4 more }`
+                  default: page_location
+
+              - `BetaCitationContentBlockLocation object`
 
                 - `cited_text: string`
 
from line 7242
 
                 - `document_index: number`
 
+                  minimum: 0
+
                 - `document_title: string or null`
 
                 - `end_block_index: number`
from line 7258
 
                   0-based index of the first cited block in the source's `content` array.
 
+                  minimum: 0
+
                 - `type: "content_block_location"`
 
-                  - `"content_block_location"`
-
-              - `BetaCitationsWebSearchResultLocation object { cited_text, encrypted_index, title, 2 more }`
+                  default: content_block_location
+
+              - `BetaCitationsWebSearchResultLocation object`
 
                 - `cited_text: string`
 
from line 7272
 
                 - `title: string or null`
 
+                  maxLength: 512
+
                 - `type: "web_search_result_location"`
 
-                  - `"web_search_result_location"`
+                  default: web_search_result_location
 
                 - `url: string`
 
-              - `BetaCitationSearchResultLocation object { cited_text, end_block_index, search_result_index, 4 more }`
+              - `BetaCitationSearchResultLocation object`
 
                 - `cited_text: string`
 
from line 7300
 
                   Counted separately from `document_index`; server-side web search results are not included in this count.
 
+                  minimum: 0
+
                 - `source: string`
 
                 - `start_block_index: number`
 
                   0-based index of the first cited block in the source's `content` array.
 
+                  minimum: 0
+
                 - `title: string or null`
 
                 - `type: "search_result_location"`
 
-                  - `"search_result_location"`
+                  default: search_result_location
 
             - `text: string`
 
+              maxLength: 5000000, minLength: 0
+
             - `type: "text"`
 
-              - `"text"`
-
-          - `BetaThinkingBlock object { signature, thinking, type }`
+              default: text
+
+          - `BetaThinkingBlock object`
 
             - `signature: string`
 
from line 7340
 
             - `type: "thinking"`
 
-              - `"thinking"`
-
-          - `BetaRedactedThinkingBlock object { data, type }`
+              default: thinking
+
+          - `BetaRedactedThinkingBlock object`
 
             - `data: string`
 
from line 7354
 
             - `type: "redacted_thinking"`
 
-              - `"redacted_thinking"`
-
-          - `BetaToolUseBlock object { id, input, name, 3 more }`
+              default: redacted_thinking
+
+          - `BetaToolUseBlock object`
 
             - `id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `input: map[unknown]`
 
             - `name: string`
 
+              minLength: 1
+
             - `type: "tool_use"`
 
-              - `"tool_use"`
+              default: tool_use
 
             - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
                 - `type: "direct"`
 
-                  - `"direct"`
-
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
                 - `tool_id: string`
 
+                  pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
                 - `type: "code_execution_20250825"`
 
-                  - `"code_execution_20250825"`
-
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
+              - `BetaServerToolCaller20260120 object`
 
                 - `tool_id: string`
 
+                  pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
                 - `type: "code_execution_20260120"`
 
-                  - `"code_execution_20260120"`
-
             - `toolset_name: optional string or null`
 
               For a toolset member tool_use, the toolset family.
 
-          - `BetaServerToolUseBlock object { id, input, name, 2 more }`
+              maxLength: 64, minLength: 1, pattern: ^[a-zA-Z0-9_-]+$
+
+          - `BetaServerToolUseBlock object`
 
             - `id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `input: map[unknown]`
 
             - `name: "advisor" or "web_search" or "web_fetch" or 5 more`
from line 7434
 
             - `type: "server_tool_use"`
 
-              - `"server_tool_use"`
+              default: server_tool_use
 
             - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaWebSearchToolResultBlock object { content, tool_use_id, type, caller }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaWebSearchToolResultBlock object`
 
             - `content: BetaWebSearchToolResultBlockContent`
 
-              - `BetaWebSearchToolResultError object { error_code, type }`
+              - `BetaWebSearchToolResultError object`
 
                 - `error_code: BetaWebSearchToolResultErrorCode`
 
from line 7472
 
                 - `type: "web_search_tool_result_error"`
 
-                  - `"web_search_tool_result_error"`
+                  default: web_search_tool_result_error
 
               - `array of BetaWebSearchResultBlock`
 
from line 7484
 
                 - `type: "web_search_result"`
 
-                  - `"web_search_result"`
+                  default: web_search_result
 
                 - `url: string`
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "web_search_tool_result"`
 
-              - `"web_search_tool_result"`
+              default: web_search_tool_result
 
             - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaWebFetchToolResultBlock object { content, tool_use_id, type, caller }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaWebFetchToolResultBlock object`
 
             - `content: BetaWebFetchToolResultErrorBlock or BetaWebFetchBlock`
 
-              - `BetaWebFetchToolResultErrorBlock object { error_code, type }`
+              - `BetaWebFetchToolResultErrorBlock object`
 
                 - `error_code: BetaWebFetchToolResultErrorCode`
 
from line 7538
 
                 - `type: "web_fetch_tool_result_error"`
 
-                  - `"web_fetch_tool_result_error"`
-
-              - `BetaWebFetchBlock object { content, retrieved_at, type, url }`
+                  default: web_fetch_tool_result_error
+
+              - `BetaWebFetchBlock object`
 
                 - `content: BetaDocumentBlock`
 
from line 7550
 
                     - `enabled: boolean`
 
+                      default: false
+
                   - `source: BetaBase64PDFSource or BetaPlainTextSource`
 
-                    - `BetaBase64PDFSource object { data, media_type, type }`
+                    - `BetaBase64PDFSource object`
 
                       - `data: string`
 
+                        format: byte
+
                       - `media_type: "application/pdf"`
 
-                        - `"application/pdf"`
-
                       - `type: "base64"`
 
-                        - `"base64"`
-
-                    - `BetaPlainTextSource object { data, media_type, type }`
+                    - `BetaPlainTextSource object`
 
                       - `data: string`
 
                       - `media_type: "text/plain"`
 
-                        - `"text/plain"`
-
                       - `type: "text"`
 
-                        - `"text"`
-
                   - `title: string or null`
 
                     The title of the document
 
                   - `type: "document"`
 
-                    - `"document"`
+                    default: document
 
                 - `retrieved_at: string or null`
 
from line 7586
 
                 - `type: "web_fetch_result"`
 
-                  - `"web_fetch_result"`
+                  default: web_fetch_result
 
                 - `url: string`
 
from line 7594
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "web_fetch_tool_result"`
 
-              - `"web_fetch_tool_result"`
+              default: web_fetch_tool_result
 
             - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
               Tool invocation directly from the model.
 
-              - `BetaDirectCaller object { type }`
+              - `BetaDirectCaller object`
 
                 Tool invocation directly from the model.
 
-              - `BetaServerToolCaller object { tool_id, type }`
+              - `BetaServerToolCaller object`
 
                 Tool invocation generated by a server-side tool.
 
-              - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-          - `BetaAdvisorToolResultBlock object { content, tool_use_id, type }`
+              - `BetaServerToolCaller20260120 object`
+
+          - `BetaAdvisorToolResultBlock object`
 
             - `content: BetaAdvisorToolResultError or BetaAdvisorResultBlock or BetaAdvisorRedactedResultBlock`
 
-              - `BetaAdvisorToolResultError object { error_code, type }`
+              - `BetaAdvisorToolResultError object`
 
                 - `error_code: "max_uses_exceeded" or "prompt_too_long" or "too_many_requests" or 4 more`
 
from line 7638
 
                 - `type: "advisor_tool_result_error"`
 
-                  - `"advisor_tool_result_error"`
-
-              - `BetaAdvisorResultBlock object { stop_reason, text, type }`
+                  default: advisor_tool_result_error
+
+              - `BetaAdvisorResultBlock object`
 
                 - `stop_reason: string or null`
 
from line 7650
 
                 - `type: "advisor_result"`
 
-                  - `"advisor_result"`
-
-              - `BetaAdvisorRedactedResultBlock object { encrypted_content, stop_reason, type }`
+                  default: advisor_result
+
+              - `BetaAdvisorRedactedResultBlock object`
 
                 - `encrypted_content: string`
 
from line 7664
 
                 - `type: "advisor_redacted_result"`
 
-                  - `"advisor_redacted_result"`
+                  default: advisor_redacted_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "advisor_tool_result"`
 
-              - `"advisor_tool_result"`
-
-          - `BetaCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+              default: advisor_tool_result
+
+          - `BetaCodeExecutionToolResultBlock object`
 
             - `content: BetaCodeExecutionToolResultBlockContent`
 
               Code execution result with encrypted stdout for PFC + web_search results.
 
-              - `BetaCodeExecutionToolResultError object { error_code, type }`
+              - `BetaCodeExecutionToolResultError object`
 
                 - `error_code: BetaCodeExecutionToolResultErrorCode`
 
from line 7694
 
                 - `type: "code_execution_tool_result_error"`
 
-                  - `"code_execution_tool_result_error"`
-
-              - `BetaCodeExecutionResultBlock object { content, return_code, stderr, 2 more }`
+                  default: code_execution_tool_result_error
+
+              - `BetaCodeExecutionResultBlock object`
 
                 - `content: array of BetaCodeExecutionOutputBlock`
 
from line 7704
 
                   - `type: "code_execution_output"`
 
-                    - `"code_execution_output"`
+                    default: code_execution_output
 
                 - `return_code: number`
 
from line 7714
 
                 - `type: "code_execution_result"`
 
-                  - `"code_execution_result"`
-
-              - `BetaEncryptedCodeExecutionResultBlock object { content, encrypted_stdout, return_code, 2 more }`
+                  default: code_execution_result
+
+              - `BetaEncryptedCodeExecutionResultBlock object`
 
                 Code execution result with encrypted stdout for PFC + web_search results.
 
from line 7726
 
                   - `type: "code_execution_output"`
 
+                    default: code_execution_output
+
                 - `encrypted_stdout: string`
 
                 - `return_code: number`
from line 7736
 
                 - `type: "encrypted_code_execution_result"`
 
-                  - `"encrypted_code_execution_result"`
+                  default: encrypted_code_execution_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "code_execution_tool_result"`
 
-              - `"code_execution_tool_result"`
-
-          - `BetaBashCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+              default: code_execution_tool_result
+
+          - `BetaBashCodeExecutionToolResultBlock object`
 
             - `content: BetaBashCodeExecutionToolResultError or BetaBashCodeExecutionResultBlock`
 
-              - `BetaBashCodeExecutionToolResultError object { error_code, type }`
+              - `BetaBashCodeExecutionToolResultError object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 7766
 
                 - `type: "bash_code_execution_tool_result_error"`
 
-                  - `"bash_code_execution_tool_result_error"`
-
-              - `BetaBashCodeExecutionResultBlock object { content, return_code, stderr, 2 more }`
+                  default: bash_code_execution_tool_result_error
+
+              - `BetaBashCodeExecutionResultBlock object`
 
                 - `content: array of BetaBashCodeExecutionOutputBlock`
 
from line 7776
 
                   - `type: "bash_code_execution_output"`
 
-                    - `"bash_code_execution_output"`
+                    default: bash_code_execution_output
 
                 - `return_code: number`
 
from line 7786
 
                 - `type: "bash_code_execution_result"`
 
-                  - `"bash_code_execution_result"`
+                  default: bash_code_execution_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "bash_code_execution_tool_result"`
 
-              - `"bash_code_execution_tool_result"`
-
-          - `BetaTextEditorCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+              default: bash_code_execution_tool_result
+
+          - `BetaTextEditorCodeExecutionToolResultBlock object`
 
             - `content: BetaTextEditorCodeExecutionToolResultError or BetaTextEditorCodeExecutionViewResultBlock or BetaTextEditorCodeExecutionCreateResultBlock or BetaTextEditorCodeExecutionStrReplaceResultBlock`
 
-              - `BetaTextEditorCodeExecutionToolResultError object { error_code, error_message, type }`
+              - `BetaTextEditorCodeExecutionToolResultError object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 7818
 
                 - `type: "text_editor_code_execution_tool_result_error"`
 
-                  - `"text_editor_code_execution_tool_result_error"`
-
-              - `BetaTextEditorCodeExecutionViewResultBlock object { content, file_type, num_lines, 3 more }`
+                  default: text_editor_code_execution_tool_result_error
+
+              - `BetaTextEditorCodeExecutionViewResultBlock object`
 
                 - `content: string`
 
from line 7840
 
                 - `type: "text_editor_code_execution_view_result"`
 
-                  - `"text_editor_code_execution_view_result"`
-
-              - `BetaTextEditorCodeExecutionCreateResultBlock object { is_file_update, type }`
+                  default: text_editor_code_execution_view_result
+
+              - `BetaTextEditorCodeExecutionCreateResultBlock object`
 
                 - `is_file_update: boolean`
 
                 - `type: "text_editor_code_execution_create_result"`
 
-                  - `"text_editor_code_execution_create_result"`
-
-              - `BetaTextEditorCodeExecutionStrReplaceResultBlock object { lines, new_lines, new_start, 3 more }`
+                  default: text_editor_code_execution_create_result
+
+              - `BetaTextEditorCodeExecutionStrReplaceResultBlock object`
 
                 - `lines: array of string or null`
 
from line 7864
 
                 - `type: "text_editor_code_execution_str_replace_result"`
 
-                  - `"text_editor_code_execution_str_replace_result"`
+                  default: text_editor_code_execution_str_replace_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "text_editor_code_execution_tool_result"`
 
-              - `"text_editor_code_execution_tool_result"`
-
-          - `BetaToolSearchToolResultBlock object { content, tool_use_id, type }`
+              default: text_editor_code_execution_tool_result
+
+          - `BetaToolSearchToolResultBlock object`
 
             - `content: BetaToolSearchToolResultError or BetaToolSearchToolSearchResultBlock`
 
-              - `BetaToolSearchToolResultError object { error_code, error_message, type }`
+              - `BetaToolSearchToolResultError object`
 
                 - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or "execution_time_exceeded"`
 
from line 7894
 
                 - `type: "tool_search_tool_result_error"`
 
-                  - `"tool_search_tool_result_error"`
-
-              - `BetaToolSearchToolSearchResultBlock object { tool_references, type }`
+                  default: tool_search_tool_result_error
+
+              - `BetaToolSearchToolSearchResultBlock object`
 
                 - `tool_references: array of BetaToolReferenceBlock`
 
                   - `tool_name: string`
 
+                    maxLength: 256, minLength: 1, pattern: ^[a-zA-Z0-9_-]{1,256}$
+
                   - `type: "tool_reference"`
 
-                    - `"tool_reference"`
+                    default: tool_reference
 
                 - `type: "tool_search_tool_search_result"`
 
-                  - `"tool_search_tool_search_result"`
+                  default: tool_search_tool_search_result
 
             - `tool_use_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "tool_search_tool_result"`
 
-              - `"tool_search_tool_result"`
-
-          - `BetaMCPToolUseBlock object { id, input, name, 2 more }`
+              default: tool_search_tool_result
+
+          - `BetaMCPToolUseBlock object`
 
             - `id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `input: map[unknown]`
 
             - `name: string`
from line 7938
 
             - `type: "mcp_tool_use"`
 
-              - `"mcp_tool_use"`
-
-          - `BetaMCPToolResultBlock object { content, is_error, tool_use_id, type }`
+              default: mcp_tool_use
+
+          - `BetaMCPToolResultBlock object`
 
             - `content: string or array of BetaTextBlock`
 
from line 7956
 
                 - `text: string`
 
+                  maxLength: 5000000, minLength: 0
+
                 - `type: "text"`
 
+                  default: text
+
             - `is_error: boolean`
 
+              default: false
+
             - `tool_use_id: string`
 
+              pattern: ^[a-zA-Z0-9_-]+$
+
             - `type: "mcp_tool_result"`
 
-              - `"mcp_tool_result"`
-
-          - `BetaContainerUploadBlock object { file_id, type }`
+              default: mcp_tool_result
+
+          - `BetaContainerUploadBlock object`
 
             Response model for a file uploaded to the container.
 
from line 7982
 
             - `type: "container_upload"`
 
-              - `"container_upload"`
-
-          - `BetaCompactionBlock object { content, encrypted_content, type }`
+              default: container_upload
+
+          - `BetaCompactionBlock object`
 
             A compaction block returned when autocompact is triggered.
 
from line 8002
 
             - `type: "compaction"`
 
-              - `"compaction"`
-
-          - `BetaFallbackBlock object { from, to, trigger, type }`
+              default: compaction
+
+          - `BetaFallbackBlock object`
 
             Marks the point in `content` where one model's output gives way to the next.
 
from line 8130
 
               - `type: "refusal"`
 
-                - `"refusal"`
+                default: refusal
 
             - `type: "fallback"`
 
-              - `"fallback"`
+              default: fallback
 
         - `context_management: BetaContextManagementResponse or null`
 
from line 8146
 
             List of context management edits that were applied.
 
-            - `BetaClearToolUses20250919EditResponse object { cleared_input_tokens, cleared_tool_uses, type }`
+            - `BetaClearToolUses20250919EditResponse object`
 
               - `cleared_input_tokens: number`
 
                 Number of input tokens cleared by this edit.
 
+                minimum: 0
+
               - `cleared_tool_uses: number`
 
                 Number of tool uses that were cleared.
 
+                minimum: 0
+
               - `type: "clear_tool_uses_20250919"`
 
                 The type of context management edit applied.
 
-                - `"clear_tool_uses_20250919"`
-
-            - `BetaClearThinking20251015EditResponse object { cleared_input_tokens, cleared_thinking_turns, type }`
+                default: clear_tool_uses_20250919
+
+            - `BetaClearThinking20251015EditResponse object`
 
               - `cleared_input_tokens: number`
 
                 Number of input tokens cleared by this edit.
 
+                minimum: 0
+
               - `cleared_thinking_turns: number`
 
                 Number of thinking turns that were cleared.
 
+                minimum: 0
+
               - `type: "clear_thinking_20251015"`
 
                 The type of context management edit applied.
 
-                - `"clear_thinking_20251015"`
+                default: clear_thinking_20251015
 
         - `diagnostics: BetaDiagnostics or null`
 
from line 8195
 
             Explains why the prompt cache could not fully reuse the prefix from the request identified by `diagnostics.previous_message_id`. `null` means diagnosis is still pending — the response was serialized before the background comparison completed.
 
-            - `BetaCacheMissModelChanged object { cache_missed_input_tokens, type }`
+            - `BetaCacheMissModelChanged object`
 
               - `cache_missed_input_tokens: number`
 
from line 8203
 
               - `type: "model_changed"`
 
-                - `"model_changed"`
-
-            - `BetaCacheMissSystemChanged object { cache_missed_input_tokens, type }`
+                default: model_changed
+
+            - `BetaCacheMissSystemChanged object`
 
               - `cache_missed_input_tokens: number`
 
from line 8213
 
               - `type: "system_changed"`
 
-                - `"system_changed"`
-
-            - `BetaCacheMissToolsChanged object { cache_missed_input_tokens, type }`
+                default: system_changed
+
+            - `BetaCacheMissToolsChanged object`
 
               - `cache_missed_input_tokens: number`
 
from line 8223
 
               - `type: "tools_changed"`
 
-                - `"tools_changed"`
-
-            - `BetaCacheMissMessagesChanged object { cache_missed_input_tokens, type }`
+                default: tools_changed
+
+            - `BetaCacheMissMessagesChanged object`
 
               - `cache_missed_input_tokens: number`
 
from line 8233
 
               - `type: "messages_changed"`
 
-                - `"messages_changed"`
-
-            - `BetaCacheMissPreviousMessageNotFound object { type }`
+                default: messages_changed
+
+            - `BetaCacheMissPreviousMessageNotFound object`
 
               - `type: "previous_message_not_found"`
 
-                - `"previous_message_not_found"`
-
-            - `BetaCacheMissUnavailable object { type }`
+                default: previous_message_not_found
+
+            - `BetaCacheMissUnavailable object`
 
               - `type: "unavailable"`
 
-                - `"unavailable"`
+                default: unavailable
 
         - `model: Model`
 
from line 8259
 
           This will always be `"assistant"`.
 
-          - `"assistant"`
+          default: assistant
 
         - `stop_details: BetaRefusalStopDetails or null`
 
from line 8346
 
           - `type: "refusal"`
 
-            - `"refusal"`
+            default: refusal
 
         - `stop_reason: BetaStopReason or null`
 
from line 8392
 
           For Messages, this is always `"message"`.
 
-          - `"message"`
+          default: message
 
         - `usage: BetaUsage`
 
from line 8414
 
               The number of input tokens used to create the 1 hour cache entry.
 
+              default: 0, minimum: 0
+
             - `ephemeral_5m_input_tokens: number`
 
               The number of input tokens used to create the 5 minute cache entry.
 
+              default: 0, minimum: 0
+
           - `cache_creation_input_tokens: number or null`
 
             The number of input tokens used to create the cache entry.
 
+            minimum: 0
+
           - `cache_read_input_tokens: number or null`
 
             The number of input tokens read from the cache.
+
+            minimum: 0
 
           - `fallback_credit: BetaFallbackCreditUsage or null`
 
from line 8447
               resulting shift is zero because there was nothing to move. `not_applied`:
               no reprice was applied; the arm's `reason` says why.
 
-              - `BetaFallbackCreditRedeemed object { type }`
+              - `BetaFallbackCreditRedeemed object`
 
                 The reprice was applied: the retry is billed as if the conversation
                 had been on the retry model all along.
 
                 - `type: "redeemed"`
 
-                  - `"redeemed"`
-
-              - `BetaFallbackCreditNotApplied object { reason, type, remove_to_redeem }`
+                  default: redeemed
+
+              - `BetaFallbackCreditNotApplied object`
 
                 No reprice was applied; `reason` says why.
 
from line 8493
 
                 - `type: "not_applied"`
 
-                  - `"not_applied"`
+                  default: not_applied
 
                 - `remove_to_redeem: optional array of string or null`
 
from line 8514
 
             The number of input tokens which were used.
 
+            minimum: 0
+
           - `iterations: BetaIterationsUsage or null`
 
             Per-iteration token usage breakdown.
from line 8526
             - Calculate the true context window size from the last iteration
             - Understand token accumulation across server-side tool use loops
 
-            - `BetaMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+            - `BetaMessageIterationUsage object`
 
               Token usage for a sampling iteration.
 
from line 8538
 
                 The number of input tokens used to create the cache entry.
 
+                default: 0, minimum: 0
+
               - `cache_read_input_tokens: number`
 
                 The number of input tokens read from the cache.
 
+                default: 0, minimum: 0
+
               - `input_tokens: number`
 
                 The number of input tokens which were used.
 
+                minimum: 0
+
               - `model: Model`
 
                 The model that will complete your prompt.
from line 8562
 
                 The number of output tokens which were used.
 
+                minimum: 0
+
               - `type: "message"`
 
                 Usage for a sampling iteration
 
-                - `"message"`
-
-            - `BetaCompactionIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 3 more }`
+                default: message
+
+            - `BetaCompactionIterationUsage object`
 
               Token usage for a compaction iteration.
 
from line 8582
 
                 The number of input tokens used to create the cache entry.
 
+                default: 0, minimum: 0
+
               - `cache_read_input_tokens: number`
 
                 The number of input tokens read from the cache.
 
+                default: 0, minimum: 0
+
               - `input_tokens: number`
 
                 The number of input tokens which were used.
 
+                minimum: 0
+
               - `output_tokens: number`
 
                 The number of output tokens which were used.
 
+                minimum: 0
+
               - `type: "compaction"`
 
                 Usage for a compaction iteration
 
-                - `"compaction"`
-
-            - `BetaAdvisorMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+                default: compaction
+
+            - `BetaAdvisorMessageIterationUsage object`
 
               Token usage for an advisor sub-inference iteration.
 
from line 8620
 
                 The number of input tokens used to create the cache entry.
 
+                default: 0, minimum: 0
+
               - `cache_read_input_tokens: number`
 
                 The number of input tokens read from the cache.
 
+                default: 0, minimum: 0
+
               - `input_tokens: number`
 
                 The number of input tokens which were used.
 
+                minimum: 0
+
               - `model: Model`
 
                 The model that will complete your prompt.
from line 8644
 
                 The number of output tokens which were used.
 
+                minimum: 0
+
               - `type: "advisor_message"`
 
                 Usage for an advisor sub-inference iteration
 
-                - `"advisor_message"`
-
-            - `BetaFallbackMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+                default: advisor_message
+
+            - `BetaFallbackMessageIterationUsage object`
 
               Token usage for the fallback-model attempt of a server-side fallback request.
 
from line 8669
 
                 The number of input tokens used to create the cache entry.
 
+                default: 0, minimum: 0
+
               - `cache_read_input_tokens: number`
 
                 The number of input tokens read from the cache.
 
+                default: 0, minimum: 0
+
               - `input_tokens: number`
 
                 The number of input tokens which were used.
 
+                minimum: 0
+
               - `model: Model`
 
                 The model that will complete your prompt.
from line 8693
 
                 The number of output tokens which were used.
 
+                minimum: 0
+
               - `type: "fallback_message"`
 
                 Usage for the fallback-model attempt that served the response
 
-                - `"fallback_message"`
+                default: fallback_message
 
           - `output_tokens: number`
 
             The number of output tokens which were used.
+
+            minimum: 0
 
           - `output_tokens_details: BetaOutputTokensDetails or null`
 
from line 8727
               generation count by a small number of tokens. Always ≤ `output_tokens`;
               `output_tokens - thinking_tokens` approximates the non-reasoning output.
 
+              default: 0, minimum: 0
+
           - `server_tool_use: BetaServerToolUsage or null`
 
             The number of server tool requests.
from line 8737
 
               The number of web fetch tool requests.
 
+              default: 0, minimum: 0
+
             - `web_search_requests: number`
 
               The number of web search tool requests.
 
+              default: 0, minimum: 0
+
           - `service_tier: "standard" or "priority" or "batch" or null`
 
             If the request used the priority, standard, or batch tier.
from line 8765
 
       - `type: "succeeded"`
 
-        - `"succeeded"`
-
-    - `BetaMessageBatchErroredResult object { error, type }`
+        default: succeeded
+
+    - `BetaMessageBatchErroredResult object`
 
       - `error: BetaErrorResponse`
 
         - `error: BetaError`
 
-          - `BetaInvalidRequestError object { message, type }`
+          - `BetaInvalidRequestError object`
 
             - `message: string`
 
+              default: Invalid request
+
             - `type: "invalid_request_error"`
 
-              - `"invalid_request_error"`
-
-          - `BetaAuthenticationError object { message, type }`
+              default: invalid_request_error
+
+          - `BetaAuthenticationError object`
 
             - `message: string`
 
+              default: Authentication error
+
             - `type: "authentication_error"`
 
-              - `"authentication_error"`
-
-          - `BetaBillingError object { message, type }`
+              default: authentication_error
+
+          - `BetaBillingError object`
 
             - `message: string`
 
+              default: Billing error
+
             - `type: "billing_error"`
 
-              - `"billing_error"`
-
-          - `BetaPermissionError object { message, type }`
+              default: billing_error
+
+          - `BetaPermissionError object`
 
             - `message: string`
 
+              default: Permission denied
+
             - `type: "permission_error"`
 
-              - `"permission_error"`
-
-          - `BetaNotFoundError object { message, type }`
+              default: permission_error
+
+          - `BetaNotFoundError object`
 
             - `message: string`
 
+              default: Not found
+
             - `type: "not_found_error"`
 
-              - `"not_found_error"`
-
-          - `BetaRateLimitError object { message, type }`
+              default: not_found_error
+
+          - `BetaRateLimitError object`
 
             - `message: string`
 
+              default: Rate limited
+
             - `type: "rate_limit_error"`
 
-              - `"rate_limit_error"`
-
-          - `BetaGatewayTimeoutError object { message, type }`
+              default: rate_limit_error
+
+          - `BetaGatewayTimeoutError object`
 
             - `message: string`
 
+              default: Request timeout
+
             - `type: "timeout_error"`
 
-              - `"timeout_error"`
-
-          - `BetaAPIError object { message, type }`
+              default: timeout_error
+
+          - `BetaAPIError object`
 
             - `message: string`
 
+              default: Internal server error
+
             - `type: "api_error"`
 
-              - `"api_error"`
-
-          - `BetaOverloadedError object { message, type }`
+              default: api_error
+
+          - `BetaOverloadedError object`
 
             - `message: string`
 
+              default: Overloaded
+
             - `type: "overloaded_error"`
 
-              - `"overloaded_error"`
+              default: overloaded_error
 
         - `request_id: string or null`
 
         - `type: "error"`
 
-          - `"error"`
+          default: error
 
       - `type: "errored"`
 
-        - `"errored"`
-
-    - `BetaMessageBatchCanceledResult object { type }`
+        default: errored
+
+    - `BetaMessageBatchCanceledResult object`
 
       - `type: "canceled"`
 
-        - `"canceled"`
-
-    - `BetaMessageBatchExpiredResult object { type }`
+        default: canceled
+
+    - `BetaMessageBatchExpiredResult object`
 
       - `type: "expired"`
 
-        - `"expired"`
+        default: expired
 
 ### Beta Message Batch Request Counts
 
-- `BetaMessageBatchRequestCounts object { canceled, errored, expired, 2 more }`
+- `BetaMessageBatchRequestCounts object`
 
   - `canceled: number`
 
from line 8895
 
     This is zero until processing of the entire Message Batch has ended.
 
+    default: 0
+
   - `errored: number`
 
     Number of requests in the Message Batch that encountered an error.
 
     This is zero until processing of the entire Message Batch has ended.
 
+    default: 0
+
   - `expired: number`
 
     Number of requests in the Message Batch that have expired.
 
     This is zero until processing of the entire Message Batch has ended.
 
+    default: 0
+
   - `processing: number`
 
     Number of requests in the Message Batch that are processing.
 
+    default: 0
+
   - `succeeded: number`
 
     Number of requests in the Message Batch that have completed successfully.
 
     This is zero until processing of the entire Message Batch has ended.
 
+    default: 0
+
 ### Beta Message Batch Result
 
 - `BetaMessageBatchResult = BetaMessageBatchSucceededResult or BetaMessageBatchErroredResult or BetaMessageBatchCanceledResult or BetaMessageBatchExpiredResult`
from line 8935
 
   Contains a Message output if processing was successful, an error response if processing failed, or the reason why processing was not attempted, such as cancellation or expiration.
 
-  - `BetaMessageBatchSucceededResult object { message, type }`
+  - `BetaMessageBatchSucceededResult object`
 
     - `message: BetaMessage`
 
from line 8957
 
           The time at which the container will expire.
 
+          format: date-time
+
         - `skills: array of BetaSkill or null`
 
           Skills loaded in the container
from line 8967
 
             Skill ID
 
+            maxLength: 64, minLength: 1
+
           - `type: "anthropic" or "custom"`
 
             Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)
from line 8980
           - `version: string`
 
             The resolved version: a skill version ID for custom skills.
+
+            maxLength: 64, minLength: 1
 
       - `content: array of BetaContentBlock`
 
from line 9012
         [{"type": "text", "text": "B)"}]
         ```
 
-        - `BetaTextBlock object { citations, text, type }`
+        - `BetaTextBlock object`
 
           - `citations: array of BetaTextCitation or null`
 
from line 9020
 
             The type of citation returned will depend on the type of document being cited. Citing a PDF results in `page_location`, plain text results in `char_location`, and content document results in `content_block_location`.
 
-            - `BetaCitationCharLocation object { cited_text, document_index, document_title, 4 more }`
+            - `BetaCitationCharLocation object`
 
               - `cited_text: string`
 
               - `document_index: number`
 
+                minimum: 0
+
               - `document_title: string or null`
 
               - `end_char_index: number`
from line 9036
 
               - `start_char_index: number`
 
+                minimum: 0
+
               - `type: "char_location"`
 
-                - `"char_location"`
-
-            - `BetaCitationPageLocation object { cited_text, document_index, document_title, 4 more }`
+                default: char_location
+
+            - `BetaCitationPageLocation object`
 
               - `cited_text: string`
 
               - `document_index: number`
 
+                minimum: 0
+
               - `document_title: string or null`
 
               - `end_page_number: number`
from line 9058
 
               - `start_page_number: number`
 
+                minimum: 1
+
               - `type: "page_location"`
 
-                - `"page_location"`
-
-            - `BetaCitationContentBlockLocation object { cited_text, document_index, document_title, 4 more }`
+                default: page_location
+
+            - `BetaCitationContentBlockLocation object`
 
               - `cited_text: string`
 
from line 9074
 
               - `document_index: number`
 
+                minimum: 0
+
               - `document_title: string or null`
 
               - `end_block_index: number`
from line 9090
 
                 0-based index of the first cited block in the source's `content` array.
 
+                minimum: 0
+
               - `type: "content_block_location"`
 
-                - `"content_block_location"`
-
-            - `BetaCitationsWebSearchResultLocation object { cited_text, encrypted_index, title, 2 more }`
+                default: content_block_location
+
+            - `BetaCitationsWebSearchResultLocation object`
 
               - `cited_text: string`
 
from line 9104
 
               - `title: string or null`
 
+                maxLength: 512
+
               - `type: "web_search_result_location"`
 
-                - `"web_search_result_location"`
+                default: web_search_result_location
 
               - `url: string`
 
-            - `BetaCitationSearchResultLocation object { cited_text, end_block_index, search_result_index, 4 more }`
+            - `BetaCitationSearchResultLocation object`
 
               - `cited_text: string`
 
from line 9132
 
                 Counted separately from `document_index`; server-side web search results are not included in this count.
 
+                minimum: 0
+
               - `source: string`
 
               - `start_block_index: number`
 
                 0-based index of the first cited block in the source's `content` array.
 
+                minimum: 0
+
               - `title: string or null`
 
               - `type: "search_result_location"`
 
-                - `"search_result_location"`
+                default: search_result_location
 
           - `text: string`
 
+            maxLength: 5000000, minLength: 0
+
           - `type: "text"`
 
-            - `"text"`
-
-        - `BetaThinkingBlock object { signature, thinking, type }`
+            default: text
+
+        - `BetaThinkingBlock object`
 
           - `signature: string`
 
from line 9172
 
           - `type: "thinking"`
 
-            - `"thinking"`
-
-        - `BetaRedactedThinkingBlock object { data, type }`
+            default: thinking
+
+        - `BetaRedactedThinkingBlock object`
 
           - `data: string`
 
from line 9186
 
           - `type: "redacted_thinking"`
 
-            - `"redacted_thinking"`
-
-        - `BetaToolUseBlock object { id, input, name, 3 more }`
+            default: redacted_thinking
+
+        - `BetaToolUseBlock object`
 
           - `id: string`
 
+            pattern: ^[a-zA-Z0-9_-]+$
+
           - `input: map[unknown]`
 
           - `name: string`
 
+            minLength: 1
+
           - `type: "tool_use"`
 
-            - `"tool_use"`
+            default: tool_use
 
           - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
             Tool invocation directly from the model.
 
-            - `BetaDirectCaller object { type }`
+            - `BetaDirectCaller object`
 
               Tool invocation directly from the model.
 
               - `type: "direct"`
 
-                - `"direct"`
-
-            - `BetaServerToolCaller object { tool_id, type }`
+            - `BetaServerToolCaller object`
 
               Tool invocation generated by a server-side tool.
 
               - `tool_id: string`
 
+                pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
               - `type: "code_execution_20250825"`
 
-                - `"code_execution_20250825"`
-
-            - `BetaServerToolCaller20260120 object { tool_id, type }`
+            - `BetaServerToolCaller20260120 object`
 
               - `tool_id: string`
 
+                pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
               - `type: "code_execution_20260120"`
 
-                - `"code_execution_20260120"`
-
           - `toolset_name: optional string or null`
 
             For a toolset member tool_use, the toolset family.
 
-        - `BetaServerToolUseBlock object { id, input, name, 2 more }`
+            maxLength: 64, minLength: 1, pattern: ^[a-zA-Z0-9_-]+$
+
+        - `BetaServerToolUseBlock object`
 
           - `id: string`
 
+            pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
           - `input: map[unknown]`
 
           - `name: "advisor" or "web_search" or "web_fetch" or 5 more`
from line 9266
 
           - `type: "server_tool_use"`
 
-            - `"server_tool_use"`
+            default: server_tool_use
 
           - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
             Tool invocation directly from the model.
 
-            - `BetaDirectCaller object { type }`
+            - `BetaDirectCaller object`
 
               Tool invocation directly from the model.
 
-            - `BetaServerToolCaller object { tool_id, type }`
+            - `BetaServerToolCaller object`
 
               Tool invocation generated by a server-side tool.
 
-            - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-        - `BetaWebSearchToolResultBlock object { content, tool_use_id, type, caller }`
+            - `BetaServerToolCaller20260120 object`
+
+        - `BetaWebSearchToolResultBlock object`
 
           - `content: BetaWebSearchToolResultBlockContent`
 
-            - `BetaWebSearchToolResultError object { error_code, type }`
+            - `BetaWebSearchToolResultError object`
 
               - `error_code: BetaWebSearchToolResultErrorCode`
 
from line 9304
 
               - `type: "web_search_tool_result_error"`
 
-                - `"web_search_tool_result_error"`
+                default: web_search_tool_result_error
 
             - `array of BetaWebSearchResultBlock`
 
from line 9316
 
               - `type: "web_search_result"`
 
-                - `"web_search_result"`
+                default: web_search_result
 
               - `url: string`
 
           - `tool_use_id: string`
 
+            pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
           - `type: "web_search_tool_result"`
 
-            - `"web_search_tool_result"`
+            default: web_search_tool_result
 
           - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
             Tool invocation directly from the model.
 
-            - `BetaDirectCaller object { type }`
+            - `BetaDirectCaller object`
 
               Tool invocation directly from the model.
 
-            - `BetaServerToolCaller object { tool_id, type }`
+            - `BetaServerToolCaller object`
 
               Tool invocation generated by a server-side tool.
 
-            - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-        - `BetaWebFetchToolResultBlock object { content, tool_use_id, type, caller }`
+            - `BetaServerToolCaller20260120 object`
+
+        - `BetaWebFetchToolResultBlock object`
 
           - `content: BetaWebFetchToolResultErrorBlock or BetaWebFetchBlock`
 
-            - `BetaWebFetchToolResultErrorBlock object { error_code, type }`
+            - `BetaWebFetchToolResultErrorBlock object`
 
               - `error_code: BetaWebFetchToolResultErrorCode`
 
from line 9370
 
               - `type: "web_fetch_tool_result_error"`
 
-                - `"web_fetch_tool_result_error"`
-
-            - `BetaWebFetchBlock object { content, retrieved_at, type, url }`
+                default: web_fetch_tool_result_error
+
+            - `BetaWebFetchBlock object`
 
               - `content: BetaDocumentBlock`
 
from line 9382
 
                   - `enabled: boolean`
 
+                    default: false
+
                 - `source: BetaBase64PDFSource or BetaPlainTextSource`
 
-                  - `BetaBase64PDFSource object { data, media_type, type }`
+                  - `BetaBase64PDFSource object`
 
                     - `data: string`
 
+                      format: byte
+
                     - `media_type: "application/pdf"`
 
-                      - `"application/pdf"`
-
                     - `type: "base64"`
 
-                      - `"base64"`
-
-                  - `BetaPlainTextSource object { data, media_type, type }`
+                  - `BetaPlainTextSource object`
 
                     - `data: string`
 
                     - `media_type: "text/plain"`
 
-                      - `"text/plain"`
-
                     - `type: "text"`
 
-                      - `"text"`
-
                 - `title: string or null`
 
                   The title of the document
 
                 - `type: "document"`
 
-                  - `"document"`
+                  default: document
 
               - `retrieved_at: string or null`
 
from line 9418
 
               - `type: "web_fetch_result"`
 
-                - `"web_fetch_result"`
+                default: web_fetch_result
 
               - `url: string`
 
from line 9426
 
           - `tool_use_id: string`
 
+            pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
           - `type: "web_fetch_tool_result"`
 
-            - `"web_fetch_tool_result"`
+            default: web_fetch_tool_result
 
           - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
             Tool invocation directly from the model.
 
-            - `BetaDirectCaller object { type }`
+            - `BetaDirectCaller object`
 
               Tool invocation directly from the model.
 
-            - `BetaServerToolCaller object { tool_id, type }`
+            - `BetaServerToolCaller object`
 
               Tool invocation generated by a server-side tool.
 
-            - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-        - `BetaAdvisorToolResultBlock object { content, tool_use_id, type }`
+            - `BetaServerToolCaller20260120 object`
+
+        - `BetaAdvisorToolResultBlock object`
 
           - `content: BetaAdvisorToolResultError or BetaAdvisorResultBlock or BetaAdvisorRedactedResultBlock`
 
-            - `BetaAdvisorToolResultError object { error_code, type }`
+            - `BetaAdvisorToolResultError object`
 
               - `error_code: "max_uses_exceeded" or "prompt_too_long" or "too_many_requests" or 4 more`
 
from line 9470
 
               - `type: "advisor_tool_result_error"`
 
-                - `"advisor_tool_result_error"`
-
-            - `BetaAdvisorResultBlock object { stop_reason, text, type }`
+                default: advisor_tool_result_error
+
+            - `BetaAdvisorResultBlock object`
 
               - `stop_reason: string or null`
 
from line 9482
 
               - `type: "advisor_result"`
 
-                - `"advisor_result"`
-
-            - `BetaAdvisorRedactedResultBlock object { encrypted_content, stop_reason, type }`
+                default: advisor_result
+
+            - `BetaAdvisorRedactedResultBlock object`
 
               - `encrypted_content: string`
 
from line 9496
 
               - `type: "advisor_redacted_result"`
 
-                - `"advisor_redacted_result"`
+                default: advisor_redacted_result
 
           - `tool_use_id: string`
 
+            pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
           - `type: "advisor_tool_result"`
 
-            - `"advisor_tool_result"`
-
-        - `BetaCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+            default: advisor_tool_result
+
+        - `BetaCodeExecutionToolResultBlock object`
 
           - `content: BetaCodeExecutionToolResultBlockContent`
 
             Code execution result with encrypted stdout for PFC + web_search results.
 
-            - `BetaCodeExecutionToolResultError object { error_code, type }`
+            - `BetaCodeExecutionToolResultError object`
 
               - `error_code: BetaCodeExecutionToolResultErrorCode`
 
from line 9526
 
               - `type: "code_execution_tool_result_error"`
 
-                - `"code_execution_tool_result_error"`
-
-            - `BetaCodeExecutionResultBlock object { content, return_code, stderr, 2 more }`
+                default: code_execution_tool_result_error
+
+            - `BetaCodeExecutionResultBlock object`
 
               - `content: array of BetaCodeExecutionOutputBlock`
 
from line 9536
 
                 - `type: "code_execution_output"`
 
-                  - `"code_execution_output"`
+                  default: code_execution_output
 
               - `return_code: number`
 
from line 9546
 
               - `type: "code_execution_result"`
 
-                - `"code_execution_result"`
-
-            - `BetaEncryptedCodeExecutionResultBlock object { content, encrypted_stdout, return_code, 2 more }`
+                default: code_execution_result
+
+            - `BetaEncryptedCodeExecutionResultBlock object`
 
               Code execution result with encrypted stdout for PFC + web_search results.
 
from line 9558
 
                 - `type: "code_execution_output"`
 
+                  default: code_execution_output
+
               - `encrypted_stdout: string`
 
               - `return_code: number`
from line 9568
 
               - `type: "encrypted_code_execution_result"`
 
-                - `"encrypted_code_execution_result"`
+                default: encrypted_code_execution_result
 
           - `tool_use_id: string`
 
+            pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
           - `type: "code_execution_tool_result"`
 
-            - `"code_execution_tool_result"`
-
-        - `BetaBashCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+            default: code_execution_tool_result
+
+        - `BetaBashCodeExecutionToolResultBlock object`
 
           - `content: BetaBashCodeExecutionToolResultError or BetaBashCodeExecutionResultBlock`
 
-            - `BetaBashCodeExecutionToolResultError object { error_code, type }`
+            - `BetaBashCodeExecutionToolResultError object`
 
               - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 9598
 
               - `type: "bash_code_execution_tool_result_error"`
 
-                - `"bash_code_execution_tool_result_error"`
-
-            - `BetaBashCodeExecutionResultBlock object { content, return_code, stderr, 2 more }`
+                default: bash_code_execution_tool_result_error
+
+            - `BetaBashCodeExecutionResultBlock object`
 
               - `content: array of BetaBashCodeExecutionOutputBlock`
 
from line 9608
 
                 - `type: "bash_code_execution_output"`
 
-                  - `"bash_code_execution_output"`
+                  default: bash_code_execution_output
 
               - `return_code: number`
 
from line 9618
 
               - `type: "bash_code_execution_result"`
 
-                - `"bash_code_execution_result"`
+                default: bash_code_execution_result
 
           - `tool_use_id: string`
 
+            pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
           - `type: "bash_code_execution_tool_result"`
 
-            - `"bash_code_execution_tool_result"`
-
-        - `BetaTextEditorCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+            default: bash_code_execution_tool_result
+
+        - `BetaTextEditorCodeExecutionToolResultBlock object`
 
           - `content: BetaTextEditorCodeExecutionToolResultError or BetaTextEditorCodeExecutionViewResultBlock or BetaTextEditorCodeExecutionCreateResultBlock or BetaTextEditorCodeExecutionStrReplaceResultBlock`
 
-            - `BetaTextEditorCodeExecutionToolResultError object { error_code, error_message, type }`
+            - `BetaTextEditorCodeExecutionToolResultError object`
 
               - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 9650
 
               - `type: "text_editor_code_execution_tool_result_error"`
 
-                - `"text_editor_code_execution_tool_result_error"`
-
-            - `BetaTextEditorCodeExecutionViewResultBlock object { content, file_type, num_lines, 3 more }`
+                default: text_editor_code_execution_tool_result_error
+
+            - `BetaTextEditorCodeExecutionViewResultBlock object`
 
               - `content: string`
 
from line 9672
 
               - `type: "text_editor_code_execution_view_result"`
 
-                - `"text_editor_code_execution_view_result"`
-
-            - `BetaTextEditorCodeExecutionCreateResultBlock object { is_file_update, type }`
+                default: text_editor_code_execution_view_result
+
+            - `BetaTextEditorCodeExecutionCreateResultBlock object`
 
               - `is_file_update: boolean`
 
               - `type: "text_editor_code_execution_create_result"`
 
-                - `"text_editor_code_execution_create_result"`
-
-            - `BetaTextEditorCodeExecutionStrReplaceResultBlock object { lines, new_lines, new_start, 3 more }`
+                default: text_editor_code_execution_create_result
+
+            - `BetaTextEditorCodeExecutionStrReplaceResultBlock object`
 
               - `lines: array of string or null`
 
from line 9696
 
               - `type: "text_editor_code_execution_str_replace_result"`
 
-                - `"text_editor_code_execution_str_replace_result"`
+                default: text_editor_code_execution_str_replace_result
 
           - `tool_use_id: string`
 
+            pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
           - `type: "text_editor_code_execution_tool_result"`
 
-            - `"text_editor_code_execution_tool_result"`
-
-        - `BetaToolSearchToolResultBlock object { content, tool_use_id, type }`
+            default: text_editor_code_execution_tool_result
+
+        - `BetaToolSearchToolResultBlock object`
 
           - `content: BetaToolSearchToolResultError or BetaToolSearchToolSearchResultBlock`
 
-            - `BetaToolSearchToolResultError object { error_code, error_message, type }`
+            - `BetaToolSearchToolResultError object`
 
               - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or "execution_time_exceeded"`
 
from line 9726
 
               - `type: "tool_search_tool_result_error"`
 
-                - `"tool_search_tool_result_error"`
-
-            - `BetaToolSearchToolSearchResultBlock object { tool_references, type }`
+                default: tool_search_tool_result_error
+
+            - `BetaToolSearchToolSearchResultBlock object`
 
               - `tool_references: array of BetaToolReferenceBlock`
 
                 - `tool_name: string`
 
+                  maxLength: 256, minLength: 1, pattern: ^[a-zA-Z0-9_-]{1,256}$
+
                 - `type: "tool_reference"`
 
-                  - `"tool_reference"`
+                  default: tool_reference
 
               - `type: "tool_search_tool_search_result"`
 
-                - `"tool_search_tool_search_result"`
+                default: tool_search_tool_search_result
 
           - `tool_use_id: string`
 
+            pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
           - `type: "tool_search_tool_result"`
 
-            - `"tool_search_tool_result"`
-
-        - `BetaMCPToolUseBlock object { id, input, name, 2 more }`
+            default: tool_search_tool_result
+
+        - `BetaMCPToolUseBlock object`
 
           - `id: string`
 
+            pattern: ^[a-zA-Z0-9_-]+$
+
           - `input: map[unknown]`
 
           - `name: string`
from line 9770
 
           - `type: "mcp_tool_use"`
 
-            - `"mcp_tool_use"`
-
-        - `BetaMCPToolResultBlock object { content, is_error, tool_use_id, type }`
+            default: mcp_tool_use
+
+        - `BetaMCPToolResultBlock object`
 
           - `content: string or array of BetaTextBlock`
 
from line 9788
 
               - `text: string`
 
+                maxLength: 5000000, minLength: 0
+
               - `type: "text"`
 
+                default: text
+
           - `is_error: boolean`
 
+            default: false
+
           - `tool_use_id: string`
 
+            pattern: ^[a-zA-Z0-9_-]+$
+
           - `type: "mcp_tool_result"`
 
-            - `"mcp_tool_result"`
-
-        - `BetaContainerUploadBlock object { file_id, type }`
+            default: mcp_tool_result
+
+        - `BetaContainerUploadBlock object`
 
           Response model for a file uploaded to the container.
 
from line 9814
 
           - `type: "container_upload"`
 
-            - `"container_upload"`
-
-        - `BetaCompactionBlock object { content, encrypted_content, type }`
+            default: container_upload
+
+        - `BetaCompactionBlock object`
 
           A compaction block returned when autocompact is triggered.
 
from line 9834
 
           - `type: "compaction"`
 
-            - `"compaction"`
-
-        - `BetaFallbackBlock object { from, to, trigger, type }`
+            default: compaction
+
+        - `BetaFallbackBlock object`
 
           Marks the point in `content` where one model's output gives way to the next.
 
from line 9962
 
             - `type: "refusal"`
 
-              - `"refusal"`
+              default: refusal
 
           - `type: "fallback"`
 
-            - `"fallback"`
+            default: fallback
 
       - `context_management: BetaContextManagementResponse or null`
 
from line 9978
 
           List of context management edits that were applied.
 
-          - `BetaClearToolUses20250919EditResponse object { cleared_input_tokens, cleared_tool_uses, type }`
+          - `BetaClearToolUses20250919EditResponse object`
 
             - `cleared_input_tokens: number`
 
               Number of input tokens cleared by this edit.
 
+              minimum: 0
+
             - `cleared_tool_uses: number`
 
               Number of tool uses that were cleared.
 
+              minimum: 0
+
             - `type: "clear_tool_uses_20250919"`
 
               The type of context management edit applied.
 
-              - `"clear_tool_uses_20250919"`
-
-          - `BetaClearThinking20251015EditResponse object { cleared_input_tokens, cleared_thinking_turns, type }`
+              default: clear_tool_uses_20250919
+
+          - `BetaClearThinking20251015EditResponse object`
 
             - `cleared_input_tokens: number`
 
               Number of input tokens cleared by this edit.
 
+              minimum: 0
+
             - `cleared_thinking_turns: number`
 
               Number of thinking turns that were cleared.
 
+              minimum: 0
+
             - `type: "clear_thinking_20251015"`
 
               The type of context management edit applied.
 
-              - `"clear_thinking_20251015"`
+              default: clear_thinking_20251015
 
       - `diagnostics: BetaDiagnostics or null`
 
from line 10027
 
           Explains why the prompt cache could not fully reuse the prefix from the request identified by `diagnostics.previous_message_id`. `null` means diagnosis is still pending — the response was serialized before the background comparison completed.
 
-          - `BetaCacheMissModelChanged object { cache_missed_input_tokens, type }`
+          - `BetaCacheMissModelChanged object`
 
             - `cache_missed_input_tokens: number`
 
from line 10035
 
             - `type: "model_changed"`
 
-              - `"model_changed"`
-
-          - `BetaCacheMissSystemChanged object { cache_missed_input_tokens, type }`
+              default: model_changed
+
+          - `BetaCacheMissSystemChanged object`
 
             - `cache_missed_input_tokens: number`
 
from line 10045
 
             - `type: "system_changed"`
 
-              - `"system_changed"`
-
-          - `BetaCacheMissToolsChanged object { cache_missed_input_tokens, type }`
+              default: system_changed
+
+          - `BetaCacheMissToolsChanged object`
 
             - `cache_missed_input_tokens: number`
 
from line 10055
 
             - `type: "tools_changed"`
 
-              - `"tools_changed"`
-
-          - `BetaCacheMissMessagesChanged object { cache_missed_input_tokens, type }`
+              default: tools_changed
+
+          - `BetaCacheMissMessagesChanged object`
 
             - `cache_missed_input_tokens: number`
 
from line 10065
 
             - `type: "messages_changed"`
 
-              - `"messages_changed"`
-
-          - `BetaCacheMissPreviousMessageNotFound object { type }`
+              default: messages_changed
+
+          - `BetaCacheMissPreviousMessageNotFound object`
 
             - `type: "previous_message_not_found"`
 
-              - `"previous_message_not_found"`
-
-          - `BetaCacheMissUnavailable object { type }`
+              default: previous_message_not_found
+
+          - `BetaCacheMissUnavailable object`
 
             - `type: "unavailable"`
 
-              - `"unavailable"`
+              default: unavailable
 
       - `model: Model`
 
from line 10091
 
         This will always be `"assistant"`.
 
-        - `"assistant"`
+        default: assistant
 
       - `stop_details: BetaRefusalStopDetails or null`
 
from line 10178
 
         - `type: "refusal"`
 
-          - `"refusal"`
+          default: refusal
 
       - `stop_reason: BetaStopReason or null`
 
from line 10224
 
         For Messages, this is always `"message"`.
 
-        - `"message"`
+        default: message
 
       - `usage: BetaUsage`
 
from line 10246
 
             The number of input tokens used to create the 1 hour cache entry.
 
+            default: 0, minimum: 0
+
           - `ephemeral_5m_input_tokens: number`
 
             The number of input tokens used to create the 5 minute cache entry.
 
+            default: 0, minimum: 0
+
         - `cache_creation_input_tokens: number or null`
 
           The number of input tokens used to create the cache entry.
 
+          minimum: 0
+
         - `cache_read_input_tokens: number or null`
 
           The number of input tokens read from the cache.
+
+          minimum: 0
 
         - `fallback_credit: BetaFallbackCreditUsage or null`
 
from line 10279
             resulting shift is zero because there was nothing to move. `not_applied`:
             no reprice was applied; the arm's `reason` says why.
 
-            - `BetaFallbackCreditRedeemed object { type }`
+            - `BetaFallbackCreditRedeemed object`
 
               The reprice was applied: the retry is billed as if the conversation
               had been on the retry model all along.
 
               - `type: "redeemed"`
 
-                - `"redeemed"`
-
-            - `BetaFallbackCreditNotApplied object { reason, type, remove_to_redeem }`
+                default: redeemed
+
+            - `BetaFallbackCreditNotApplied object`
 
               No reprice was applied; `reason` says why.
 
from line 10325
 
               - `type: "not_applied"`
 
-                - `"not_applied"`
+                default: not_applied
 
               - `remove_to_redeem: optional array of string or null`
 
from line 10346
 
           The number of input tokens which were used.
 
+          minimum: 0
+
         - `iterations: BetaIterationsUsage or null`
 
           Per-iteration token usage breakdown.
from line 10358
           - Calculate the true context window size from the last iteration
           - Understand token accumulation across server-side tool use loops
 
-          - `BetaMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+          - `BetaMessageIterationUsage object`
 
             Token usage for a sampling iteration.
 
from line 10370
 
               The number of input tokens used to create the cache entry.
 
+              default: 0, minimum: 0
+
             - `cache_read_input_tokens: number`
 
               The number of input tokens read from the cache.
 
+              default: 0, minimum: 0
+
             - `input_tokens: number`
 
               The number of input tokens which were used.
 
+              minimum: 0
+
             - `model: Model`
 
               The model that will complete your prompt.
from line 10394
 
               The number of output tokens which were used.
 
+              minimum: 0
+
             - `type: "message"`
 
               Usage for a sampling iteration
 
-              - `"message"`
-
-          - `BetaCompactionIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 3 more }`
+              default: message
+
+          - `BetaCompactionIterationUsage object`
 
             Token usage for a compaction iteration.
 
from line 10414
 
               The number of input tokens used to create the cache entry.
 
+              default: 0, minimum: 0
+
             - `cache_read_input_tokens: number`
 
               The number of input tokens read from the cache.
 
+              default: 0, minimum: 0
+
             - `input_tokens: number`
 
               The number of input tokens which were used.
 
+              minimum: 0
+
             - `output_tokens: number`
 
               The number of output tokens which were used.
 
+              minimum: 0
+
             - `type: "compaction"`
 
               Usage for a compaction iteration
 
-              - `"compaction"`
-
-          - `BetaAdvisorMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+              default: compaction
+
+          - `BetaAdvisorMessageIterationUsage object`
 
             Token usage for an advisor sub-inference iteration.
 
from line 10452
 
               The number of input tokens used to create the cache entry.
 
+              default: 0, minimum: 0
+
             - `cache_read_input_tokens: number`
 
               The number of input tokens read from the cache.
 
+              default: 0, minimum: 0
+
             - `input_tokens: number`
 
               The number of input tokens which were used.
 
+              minimum: 0
+
             - `model: Model`
 
               The model that will complete your prompt.
from line 10476
 
               The number of output tokens which were used.
 
+              minimum: 0
+
             - `type: "advisor_message"`
 
               Usage for an advisor sub-inference iteration
 
-              - `"advisor_message"`
-
-          - `BetaFallbackMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+              default: advisor_message
+
+          - `BetaFallbackMessageIterationUsage object`
 
             Token usage for the fallback-model attempt of a server-side fallback request.
 
from line 10501
 
               The number of input tokens used to create the cache entry.
 
+              default: 0, minimum: 0
+
             - `cache_read_input_tokens: number`
 
               The number of input tokens read from the cache.
 
+              default: 0, minimum: 0
+
             - `input_tokens: number`
 
               The number of input tokens which were used.
 
+              minimum: 0
+
             - `model: Model`
 
               The model that will complete your prompt.
from line 10525
 
               The number of output tokens which were used.
 
+              minimum: 0
+
             - `type: "fallback_message"`
 
               Usage for the fallback-model attempt that served the response
 
-              - `"fallback_message"`
+              default: fallback_message
 
         - `output_tokens: number`
 
           The number of output tokens which were used.
+
+          minimum: 0
 
         - `output_tokens_details: BetaOutputTokensDetails or null`
 
from line 10559
             generation count by a small number of tokens. Always ≤ `output_tokens`;
             `output_tokens - thinking_tokens` approximates the non-reasoning output.
 
+            default: 0, minimum: 0
+
         - `server_tool_use: BetaServerToolUsage or null`
 
           The number of server tool requests.
from line 10569
 
             The number of web fetch tool requests.
 
+            default: 0, minimum: 0
+
           - `web_search_requests: number`
 
             The number of web search tool requests.
 
+            default: 0, minimum: 0
+
         - `service_tier: "standard" or "priority" or "batch" or null`
 
           If the request used the priority, standard, or batch tier.
from line 10597
 
     - `type: "succeeded"`
 
-      - `"succeeded"`
-
-  - `BetaMessageBatchErroredResult object { error, type }`
+      default: succeeded
+
+  - `BetaMessageBatchErroredResult object`
 
     - `error: BetaErrorResponse`
 
       - `error: BetaError`
 
-        - `BetaInvalidRequestError object { message, type }`
+        - `BetaInvalidRequestError object`
 
           - `message: string`
 
+            default: Invalid request
+
           - `type: "invalid_request_error"`
 
-            - `"invalid_request_error"`
-
-        - `BetaAuthenticationError object { message, type }`
+            default: invalid_request_error
+
+        - `BetaAuthenticationError object`
 
           - `message: string`
 
+            default: Authentication error
+
           - `type: "authentication_error"`
 
-            - `"authentication_error"`
-
-        - `BetaBillingError object { message, type }`
+            default: authentication_error
+
+        - `BetaBillingError object`
 
           - `message: string`
 
+            default: Billing error
+
           - `type: "billing_error"`
 
-            - `"billing_error"`
-
-        - `BetaPermissionError object { message, type }`
+            default: billing_error
+
+        - `BetaPermissionError object`
 
           - `message: string`
 
+            default: Permission denied
+
           - `type: "permission_error"`
 
-            - `"permission_error"`
-
-        - `BetaNotFoundError object { message, type }`
+            default: permission_error
+
+        - `BetaNotFoundError object`
 
           - `message: string`
 
+            default: Not found
+
           - `type: "not_found_error"`
 
-            - `"not_found_error"`
-
-        - `BetaRateLimitError object { message, type }`
+            default: not_found_error
+
+        - `BetaRateLimitError object`
 
           - `message: string`
 
+            default: Rate limited
+
           - `type: "rate_limit_error"`
 
-            - `"rate_limit_error"`
-
-        - `BetaGatewayTimeoutError object { message, type }`
+            default: rate_limit_error
+
+        - `BetaGatewayTimeoutError object`
 
           - `message: string`
 
+            default: Request timeout
+
           - `type: "timeout_error"`
 
-            - `"timeout_error"`
-
-        - `BetaAPIError object { message, type }`
+            default: timeout_error
+
+        - `BetaAPIError object`
 
           - `message: string`
 
+            default: Internal server error
+
           - `type: "api_error"`
 
-            - `"api_error"`
-
-        - `BetaOverloadedError object { message, type }`
+            default: api_error
+
+        - `BetaOverloadedError object`
 
           - `message: string`
 
+            default: Overloaded
+
           - `type: "overloaded_error"`
 
-            - `"overloaded_error"`
+            default: overloaded_error
 
       - `request_id: string or null`
 
       - `type: "error"`
 
-        - `"error"`
+        default: error
 
     - `type: "errored"`
 
-      - `"errored"`
-
-  - `BetaMessageBatchCanceledResult object { type }`
+      default: errored
+
+  - `BetaMessageBatchCanceledResult object`
 
     - `type: "canceled"`
 
-      - `"canceled"`
-
-  - `BetaMessageBatchExpiredResult object { type }`
+      default: canceled
+
+  - `BetaMessageBatchExpiredResult object`
 
     - `type: "expired"`
 
-      - `"expired"`
+      default: expired
 
 ### Beta Message Batch Succeeded Result
 
-- `BetaMessageBatchSucceededResult object { message, type }`
+- `BetaMessageBatchSucceededResult object`
 
   - `message: BetaMessage`
 
from line 10741
 
         The time at which the container will expire.
 
+        format: date-time
+
       - `skills: array of BetaSkill or null`
 
         Skills loaded in the container
from line 10751
 
           Skill ID
 
+          maxLength: 64, minLength: 1
+
         - `type: "anthropic" or "custom"`
 
           Type of skill - either 'anthropic' (built-in) or 'custom' (user-defined)
from line 10764
         - `version: string`
 
           The resolved version: a skill version ID for custom skills.
+
+          maxLength: 64, minLength: 1
 
     - `content: array of BetaContentBlock`
 
from line 10796
       [{"type": "text", "text": "B)"}]
       ```
 
-      - `BetaTextBlock object { citations, text, type }`
+      - `BetaTextBlock object`
 
         - `citations: array of BetaTextCitation or null`
 
from line 10804
 
           The type of citation returned will depend on the type of document being cited. Citing a PDF results in `page_location`, plain text results in `char_location`, and content document results in `content_block_location`.
 
-          - `BetaCitationCharLocation object { cited_text, document_index, document_title, 4 more }`
+          - `BetaCitationCharLocation object`
 
             - `cited_text: string`
 
             - `document_index: number`
 
+              minimum: 0
+
             - `document_title: string or null`
 
             - `end_char_index: number`
from line 10820
 
             - `start_char_index: number`
 
+              minimum: 0
+
             - `type: "char_location"`
 
-              - `"char_location"`
-
-          - `BetaCitationPageLocation object { cited_text, document_index, document_title, 4 more }`
+              default: char_location
+
+          - `BetaCitationPageLocation object`
 
             - `cited_text: string`
 
             - `document_index: number`
 
+              minimum: 0
+
             - `document_title: string or null`
 
             - `end_page_number: number`
from line 10842
 
             - `start_page_number: number`
 
+              minimum: 1
+
             - `type: "page_location"`
 
-              - `"page_location"`
-
-          - `BetaCitationContentBlockLocation object { cited_text, document_index, document_title, 4 more }`
+              default: page_location
+
+          - `BetaCitationContentBlockLocation object`
 
             - `cited_text: string`
 
from line 10858
 
             - `document_index: number`
 
+              minimum: 0
+
             - `document_title: string or null`
 
             - `end_block_index: number`
from line 10874
 
               0-based index of the first cited block in the source's `content` array.
 
+              minimum: 0
+
             - `type: "content_block_location"`
 
-              - `"content_block_location"`
-
-          - `BetaCitationsWebSearchResultLocation object { cited_text, encrypted_index, title, 2 more }`
+              default: content_block_location
+
+          - `BetaCitationsWebSearchResultLocation object`
 
             - `cited_text: string`
 
from line 10888
 
             - `title: string or null`
 
+              maxLength: 512
+
             - `type: "web_search_result_location"`
 
-              - `"web_search_result_location"`
+              default: web_search_result_location
 
             - `url: string`
 
-          - `BetaCitationSearchResultLocation object { cited_text, end_block_index, search_result_index, 4 more }`
+          - `BetaCitationSearchResultLocation object`
 
             - `cited_text: string`
 
from line 10916
 
               Counted separately from `document_index`; server-side web search results are not included in this count.
 
+              minimum: 0
+
             - `source: string`
 
             - `start_block_index: number`
 
               0-based index of the first cited block in the source's `content` array.
 
+              minimum: 0
+
             - `title: string or null`
 
             - `type: "search_result_location"`
 
-              - `"search_result_location"`
+              default: search_result_location
 
         - `text: string`
 
+          maxLength: 5000000, minLength: 0
+
         - `type: "text"`
 
-          - `"text"`
-
-      - `BetaThinkingBlock object { signature, thinking, type }`
+          default: text
+
+      - `BetaThinkingBlock object`
 
         - `signature: string`
 
from line 10956
 
         - `type: "thinking"`
 
-          - `"thinking"`
-
-      - `BetaRedactedThinkingBlock object { data, type }`
+          default: thinking
+
+      - `BetaRedactedThinkingBlock object`
 
         - `data: string`
 
from line 10970
 
         - `type: "redacted_thinking"`
 
-          - `"redacted_thinking"`
-
-      - `BetaToolUseBlock object { id, input, name, 3 more }`
+          default: redacted_thinking
+
+      - `BetaToolUseBlock object`
 
         - `id: string`
 
+          pattern: ^[a-zA-Z0-9_-]+$
+
         - `input: map[unknown]`
 
         - `name: string`
 
+          minLength: 1
+
         - `type: "tool_use"`
 
-          - `"tool_use"`
+          default: tool_use
 
         - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
           Tool invocation directly from the model.
 
-          - `BetaDirectCaller object { type }`
+          - `BetaDirectCaller object`
 
             Tool invocation directly from the model.
 
             - `type: "direct"`
 
-              - `"direct"`
-
-          - `BetaServerToolCaller object { tool_id, type }`
+          - `BetaServerToolCaller object`
 
             Tool invocation generated by a server-side tool.
 
             - `tool_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "code_execution_20250825"`
 
-              - `"code_execution_20250825"`
-
-          - `BetaServerToolCaller20260120 object { tool_id, type }`
+          - `BetaServerToolCaller20260120 object`
 
             - `tool_id: string`
 
+              pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
             - `type: "code_execution_20260120"`
 
-              - `"code_execution_20260120"`
-
         - `toolset_name: optional string or null`
 
           For a toolset member tool_use, the toolset family.
 
-      - `BetaServerToolUseBlock object { id, input, name, 2 more }`
+          maxLength: 64, minLength: 1, pattern: ^[a-zA-Z0-9_-]+$
+
+      - `BetaServerToolUseBlock object`
 
         - `id: string`
 
+          pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
         - `input: map[unknown]`
 
         - `name: "advisor" or "web_search" or "web_fetch" or 5 more`
from line 11050
 
         - `type: "server_tool_use"`
 
-          - `"server_tool_use"`
+          default: server_tool_use
 
         - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
           Tool invocation directly from the model.
 
-          - `BetaDirectCaller object { type }`
+          - `BetaDirectCaller object`
 
             Tool invocation directly from the model.
 
-          - `BetaServerToolCaller object { tool_id, type }`
+          - `BetaServerToolCaller object`
 
             Tool invocation generated by a server-side tool.
 
-          - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-      - `BetaWebSearchToolResultBlock object { content, tool_use_id, type, caller }`
+          - `BetaServerToolCaller20260120 object`
+
+      - `BetaWebSearchToolResultBlock object`
 
         - `content: BetaWebSearchToolResultBlockContent`
 
-          - `BetaWebSearchToolResultError object { error_code, type }`
+          - `BetaWebSearchToolResultError object`
 
             - `error_code: BetaWebSearchToolResultErrorCode`
 
from line 11088
 
             - `type: "web_search_tool_result_error"`
 
-              - `"web_search_tool_result_error"`
+              default: web_search_tool_result_error
 
           - `array of BetaWebSearchResultBlock`
 
from line 11100
 
             - `type: "web_search_result"`
 
-              - `"web_search_result"`
+              default: web_search_result
 
             - `url: string`
 
         - `tool_use_id: string`
 
+          pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
         - `type: "web_search_tool_result"`
 
-          - `"web_search_tool_result"`
+          default: web_search_tool_result
 
         - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
           Tool invocation directly from the model.
 
-          - `BetaDirectCaller object { type }`
+          - `BetaDirectCaller object`
 
             Tool invocation directly from the model.
 
-          - `BetaServerToolCaller object { tool_id, type }`
+          - `BetaServerToolCaller object`
 
             Tool invocation generated by a server-side tool.
 
-          - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-      - `BetaWebFetchToolResultBlock object { content, tool_use_id, type, caller }`
+          - `BetaServerToolCaller20260120 object`
+
+      - `BetaWebFetchToolResultBlock object`
 
         - `content: BetaWebFetchToolResultErrorBlock or BetaWebFetchBlock`
 
-          - `BetaWebFetchToolResultErrorBlock object { error_code, type }`
+          - `BetaWebFetchToolResultErrorBlock object`
 
             - `error_code: BetaWebFetchToolResultErrorCode`
 
from line 11154
 
             - `type: "web_fetch_tool_result_error"`
 
-              - `"web_fetch_tool_result_error"`
-
-          - `BetaWebFetchBlock object { content, retrieved_at, type, url }`
+              default: web_fetch_tool_result_error
+
+          - `BetaWebFetchBlock object`
 
             - `content: BetaDocumentBlock`
 
from line 11166
 
                 - `enabled: boolean`
 
+                  default: false
+
               - `source: BetaBase64PDFSource or BetaPlainTextSource`
 
-                - `BetaBase64PDFSource object { data, media_type, type }`
+                - `BetaBase64PDFSource object`
 
                   - `data: string`
 
+                    format: byte
+
                   - `media_type: "application/pdf"`
 
-                    - `"application/pdf"`
-
                   - `type: "base64"`
 
-                    - `"base64"`
-
-                - `BetaPlainTextSource object { data, media_type, type }`
+                - `BetaPlainTextSource object`
 
                   - `data: string`
 
                   - `media_type: "text/plain"`
 
-                    - `"text/plain"`
-
                   - `type: "text"`
 
-                    - `"text"`
-
               - `title: string or null`
 
                 The title of the document
 
               - `type: "document"`
 
-                - `"document"`
+                default: document
 
             - `retrieved_at: string or null`
 
from line 11202
 
             - `type: "web_fetch_result"`
 
-              - `"web_fetch_result"`
+              default: web_fetch_result
 
             - `url: string`
 
from line 11210
 
         - `tool_use_id: string`
 
+          pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
         - `type: "web_fetch_tool_result"`
 
-          - `"web_fetch_tool_result"`
+          default: web_fetch_tool_result
 
         - `caller: optional BetaDirectCaller or BetaServerToolCaller or BetaServerToolCaller20260120`
 
           Tool invocation directly from the model.
 
-          - `BetaDirectCaller object { type }`
+          - `BetaDirectCaller object`
 
             Tool invocation directly from the model.
 
-          - `BetaServerToolCaller object { tool_id, type }`
+          - `BetaServerToolCaller object`
 
             Tool invocation generated by a server-side tool.
 
-          - `BetaServerToolCaller20260120 object { tool_id, type }`
-
-      - `BetaAdvisorToolResultBlock object { content, tool_use_id, type }`
+          - `BetaServerToolCaller20260120 object`
+
+      - `BetaAdvisorToolResultBlock object`
 
         - `content: BetaAdvisorToolResultError or BetaAdvisorResultBlock or BetaAdvisorRedactedResultBlock`
 
-          - `BetaAdvisorToolResultError object { error_code, type }`
+          - `BetaAdvisorToolResultError object`
 
             - `error_code: "max_uses_exceeded" or "prompt_too_long" or "too_many_requests" or 4 more`
 
from line 11254
 
             - `type: "advisor_tool_result_error"`
 
-              - `"advisor_tool_result_error"`
-
-          - `BetaAdvisorResultBlock object { stop_reason, text, type }`
+              default: advisor_tool_result_error
+
+          - `BetaAdvisorResultBlock object`
 
             - `stop_reason: string or null`
 
from line 11266
 
             - `type: "advisor_result"`
 
-              - `"advisor_result"`
-
-          - `BetaAdvisorRedactedResultBlock object { encrypted_content, stop_reason, type }`
+              default: advisor_result
+
+          - `BetaAdvisorRedactedResultBlock object`
 
             - `encrypted_content: string`
 
from line 11280
 
             - `type: "advisor_redacted_result"`
 
-              - `"advisor_redacted_result"`
+              default: advisor_redacted_result
 
         - `tool_use_id: string`
 
+          pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
         - `type: "advisor_tool_result"`
 
-          - `"advisor_tool_result"`
-
-      - `BetaCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+          default: advisor_tool_result
+
+      - `BetaCodeExecutionToolResultBlock object`
 
         - `content: BetaCodeExecutionToolResultBlockContent`
 
           Code execution result with encrypted stdout for PFC + web_search results.
 
-          - `BetaCodeExecutionToolResultError object { error_code, type }`
+          - `BetaCodeExecutionToolResultError object`
 
             - `error_code: BetaCodeExecutionToolResultErrorCode`
 
from line 11310
 
             - `type: "code_execution_tool_result_error"`
 
-              - `"code_execution_tool_result_error"`
-
-          - `BetaCodeExecutionResultBlock object { content, return_code, stderr, 2 more }`
+              default: code_execution_tool_result_error
+
+          - `BetaCodeExecutionResultBlock object`
 
             - `content: array of BetaCodeExecutionOutputBlock`
 
from line 11320
 
               - `type: "code_execution_output"`
 
-                - `"code_execution_output"`
+                default: code_execution_output
 
             - `return_code: number`
 
from line 11330
 
             - `type: "code_execution_result"`
 
-              - `"code_execution_result"`
-
-          - `BetaEncryptedCodeExecutionResultBlock object { content, encrypted_stdout, return_code, 2 more }`
+              default: code_execution_result
+
+          - `BetaEncryptedCodeExecutionResultBlock object`
 
             Code execution result with encrypted stdout for PFC + web_search results.
 
from line 11342
 
               - `type: "code_execution_output"`
 
+                default: code_execution_output
+
             - `encrypted_stdout: string`
 
             - `return_code: number`
from line 11352
 
             - `type: "encrypted_code_execution_result"`
 
-              - `"encrypted_code_execution_result"`
+              default: encrypted_code_execution_result
 
         - `tool_use_id: string`
 
+          pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
         - `type: "code_execution_tool_result"`
 
-          - `"code_execution_tool_result"`
-
-      - `BetaBashCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+          default: code_execution_tool_result
+
+      - `BetaBashCodeExecutionToolResultBlock object`
 
         - `content: BetaBashCodeExecutionToolResultError or BetaBashCodeExecutionResultBlock`
 
-          - `BetaBashCodeExecutionToolResultError object { error_code, type }`
+          - `BetaBashCodeExecutionToolResultError object`
 
             - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 11382
 
             - `type: "bash_code_execution_tool_result_error"`
 
-              - `"bash_code_execution_tool_result_error"`
-
-          - `BetaBashCodeExecutionResultBlock object { content, return_code, stderr, 2 more }`
+              default: bash_code_execution_tool_result_error
+
+          - `BetaBashCodeExecutionResultBlock object`
 
             - `content: array of BetaBashCodeExecutionOutputBlock`
 
from line 11392
 
               - `type: "bash_code_execution_output"`
 
-                - `"bash_code_execution_output"`
+                default: bash_code_execution_output
 
             - `return_code: number`
 
from line 11402
 
             - `type: "bash_code_execution_result"`
 
-              - `"bash_code_execution_result"`
+              default: bash_code_execution_result
 
         - `tool_use_id: string`
 
+          pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
         - `type: "bash_code_execution_tool_result"`
 
-          - `"bash_code_execution_tool_result"`
-
-      - `BetaTextEditorCodeExecutionToolResultBlock object { content, tool_use_id, type }`
+          default: bash_code_execution_tool_result
+
+      - `BetaTextEditorCodeExecutionToolResultBlock object`
 
         - `content: BetaTextEditorCodeExecutionToolResultError or BetaTextEditorCodeExecutionViewResultBlock or BetaTextEditorCodeExecutionCreateResultBlock or BetaTextEditorCodeExecutionStrReplaceResultBlock`
 
-          - `BetaTextEditorCodeExecutionToolResultError object { error_code, error_message, type }`
+          - `BetaTextEditorCodeExecutionToolResultError object`
 
             - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or 2 more`
 
from line 11434
 
             - `type: "text_editor_code_execution_tool_result_error"`
 
-              - `"text_editor_code_execution_tool_result_error"`
-
-          - `BetaTextEditorCodeExecutionViewResultBlock object { content, file_type, num_lines, 3 more }`
+              default: text_editor_code_execution_tool_result_error
+
+          - `BetaTextEditorCodeExecutionViewResultBlock object`
 
             - `content: string`
 
from line 11456
 
             - `type: "text_editor_code_execution_view_result"`
 
-              - `"text_editor_code_execution_view_result"`
-
-          - `BetaTextEditorCodeExecutionCreateResultBlock object { is_file_update, type }`
+              default: text_editor_code_execution_view_result
+
+          - `BetaTextEditorCodeExecutionCreateResultBlock object`
 
             - `is_file_update: boolean`
 
             - `type: "text_editor_code_execution_create_result"`
 
-              - `"text_editor_code_execution_create_result"`
-
-          - `BetaTextEditorCodeExecutionStrReplaceResultBlock object { lines, new_lines, new_start, 3 more }`
+              default: text_editor_code_execution_create_result
+
+          - `BetaTextEditorCodeExecutionStrReplaceResultBlock object`
 
             - `lines: array of string or null`
 
from line 11480
 
             - `type: "text_editor_code_execution_str_replace_result"`
 
-              - `"text_editor_code_execution_str_replace_result"`
+              default: text_editor_code_execution_str_replace_result
 
         - `tool_use_id: string`
 
+          pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
         - `type: "text_editor_code_execution_tool_result"`
 
-          - `"text_editor_code_execution_tool_result"`
-
-      - `BetaToolSearchToolResultBlock object { content, tool_use_id, type }`
+          default: text_editor_code_execution_tool_result
+
+      - `BetaToolSearchToolResultBlock object`
 
         - `content: BetaToolSearchToolResultError or BetaToolSearchToolSearchResultBlock`
 
-          - `BetaToolSearchToolResultError object { error_code, error_message, type }`
+          - `BetaToolSearchToolResultError object`
 
             - `error_code: "invalid_tool_input" or "unavailable" or "too_many_requests" or "execution_time_exceeded"`
 
from line 11510
 
             - `type: "tool_search_tool_result_error"`
 
-              - `"tool_search_tool_result_error"`
-
-          - `BetaToolSearchToolSearchResultBlock object { tool_references, type }`
+              default: tool_search_tool_result_error
+
+          - `BetaToolSearchToolSearchResultBlock object`
 
             - `tool_references: array of BetaToolReferenceBlock`
 
               - `tool_name: string`
 
+                maxLength: 256, minLength: 1, pattern: ^[a-zA-Z0-9_-]{1,256}$
+
               - `type: "tool_reference"`
 
-                - `"tool_reference"`
+                default: tool_reference
 
             - `type: "tool_search_tool_search_result"`
 
-              - `"tool_search_tool_search_result"`
+              default: tool_search_tool_search_result
 
         - `tool_use_id: string`
 
+          pattern: ^srvtoolu_[a-zA-Z0-9_]+$
+
         - `type: "tool_search_tool_result"`
 
-          - `"tool_search_tool_result"`
-
-      - `BetaMCPToolUseBlock object { id, input, name, 2 more }`
+          default: tool_search_tool_result
+
+      - `BetaMCPToolUseBlock object`
 
         - `id: string`
 
+          pattern: ^[a-zA-Z0-9_-]+$
+
         - `input: map[unknown]`
 
         - `name: string`
from line 11554
 
         - `type: "mcp_tool_use"`
 
-          - `"mcp_tool_use"`
-
-      - `BetaMCPToolResultBlock object { content, is_error, tool_use_id, type }`
+          default: mcp_tool_use
+
+      - `BetaMCPToolResultBlock object`
 
         - `content: string or array of BetaTextBlock`
 
from line 11572
 
             - `text: string`
 
+              maxLength: 5000000, minLength: 0
+
             - `type: "text"`
 
+              default: text
+
         - `is_error: boolean`
 
+          default: false
+
         - `tool_use_id: string`
 
+          pattern: ^[a-zA-Z0-9_-]+$
+
         - `type: "mcp_tool_result"`
 
-          - `"mcp_tool_result"`
-
-      - `BetaContainerUploadBlock object { file_id, type }`
+          default: mcp_tool_result
+
+      - `BetaContainerUploadBlock object`
 
         Response model for a file uploaded to the container.
 
from line 11598
 
         - `type: "container_upload"`
 
-          - `"container_upload"`
-
-      - `BetaCompactionBlock object { content, encrypted_content, type }`
+          default: container_upload
+
+      - `BetaCompactionBlock object`
 
         A compaction block returned when autocompact is triggered.
 
from line 11618
 
         - `type: "compaction"`
 
-          - `"compaction"`
-
-      - `BetaFallbackBlock object { from, to, trigger, type }`
+          default: compaction
+
+      - `BetaFallbackBlock object`
 
         Marks the point in `content` where one model's output gives way to the next.
 
from line 11746
 
           - `type: "refusal"`
 
-            - `"refusal"`
+            default: refusal
 
         - `type: "fallback"`
 
-          - `"fallback"`
+          default: fallback
 
     - `context_management: BetaContextManagementResponse or null`
 
from line 11762
 
         List of context management edits that were applied.
 
-        - `BetaClearToolUses20250919EditResponse object { cleared_input_tokens, cleared_tool_uses, type }`
+        - `BetaClearToolUses20250919EditResponse object`
 
           - `cleared_input_tokens: number`
 
             Number of input tokens cleared by this edit.
 
+            minimum: 0
+
           - `cleared_tool_uses: number`
 
             Number of tool uses that were cleared.
 
+            minimum: 0
+
           - `type: "clear_tool_uses_20250919"`
 
             The type of context management edit applied.
 
-            - `"clear_tool_uses_20250919"`
-
-        - `BetaClearThinking20251015EditResponse object { cleared_input_tokens, cleared_thinking_turns, type }`
+            default: clear_tool_uses_20250919
+
+        - `BetaClearThinking20251015EditResponse object`
 
           - `cleared_input_tokens: number`
 
             Number of input tokens cleared by this edit.
 
+            minimum: 0
+
           - `cleared_thinking_turns: number`
 
             Number of thinking turns that were cleared.
 
+            minimum: 0
+
           - `type: "clear_thinking_20251015"`
 
             The type of context management edit applied.
 
-            - `"clear_thinking_20251015"`
+            default: clear_thinking_20251015
 
     - `diagnostics: BetaDiagnostics or null`
 
from line 11811
 
         Explains why the prompt cache could not fully reuse the prefix from the request identified by `diagnostics.previous_message_id`. `null` means diagnosis is still pending — the response was serialized before the background comparison completed.
 
-        - `BetaCacheMissModelChanged object { cache_missed_input_tokens, type }`
+        - `BetaCacheMissModelChanged object`
 
           - `cache_missed_input_tokens: number`
 
from line 11819
 
           - `type: "model_changed"`
 
-            - `"model_changed"`
-
-        - `BetaCacheMissSystemChanged object { cache_missed_input_tokens, type }`
+            default: model_changed
+
+        - `BetaCacheMissSystemChanged object`
 
           - `cache_missed_input_tokens: number`
 
from line 11829
 
           - `type: "system_changed"`
 
-            - `"system_changed"`
-
-        - `BetaCacheMissToolsChanged object { cache_missed_input_tokens, type }`
+            default: system_changed
+
+        - `BetaCacheMissToolsChanged object`
 
           - `cache_missed_input_tokens: number`
 
from line 11839
 
           - `type: "tools_changed"`
 
-            - `"tools_changed"`
-
-        - `BetaCacheMissMessagesChanged object { cache_missed_input_tokens, type }`
+            default: tools_changed
+
+        - `BetaCacheMissMessagesChanged object`
 
           - `cache_missed_input_tokens: number`
 
from line 11849
 
           - `type: "messages_changed"`
 
-            - `"messages_changed"`
-
-        - `BetaCacheMissPreviousMessageNotFound object { type }`
+            default: messages_changed
+
+        - `BetaCacheMissPreviousMessageNotFound object`
 
           - `type: "previous_message_not_found"`
 
-            - `"previous_message_not_found"`
-
-        - `BetaCacheMissUnavailable object { type }`
+            default: previous_message_not_found
+
+        - `BetaCacheMissUnavailable object`
 
           - `type: "unavailable"`
 
-            - `"unavailable"`
+            default: unavailable
 
     - `model: Model`
 
from line 11875
 
       This will always be `"assistant"`.
 
-      - `"assistant"`
+      default: assistant
 
     - `stop_details: BetaRefusalStopDetails or null`
 
from line 11962
 
       - `type: "refusal"`
 
-        - `"refusal"`
+        default: refusal
 
     - `stop_reason: BetaStopReason or null`
 
from line 12008
 
       For Messages, this is always `"message"`.
 
-      - `"message"`
+      default: message
 
     - `usage: BetaUsage`
 
from line 12030
 
           The number of input tokens used to create the 1 hour cache entry.
 
+          default: 0, minimum: 0
+
         - `ephemeral_5m_input_tokens: number`
 
           The number of input tokens used to create the 5 minute cache entry.
 
+          default: 0, minimum: 0
+
       - `cache_creation_input_tokens: number or null`
 
         The number of input tokens used to create the cache entry.
 
+        minimum: 0
+
       - `cache_read_input_tokens: number or null`
 
         The number of input tokens read from the cache.
+
+        minimum: 0
 
       - `fallback_credit: BetaFallbackCreditUsage or null`
 
from line 12063
           resulting shift is zero because there was nothing to move. `not_applied`:
           no reprice was applied; the arm's `reason` says why.
 
-          - `BetaFallbackCreditRedeemed object { type }`
+          - `BetaFallbackCreditRedeemed object`
 
             The reprice was applied: the retry is billed as if the conversation
             had been on the retry model all along.
 
             - `type: "redeemed"`
 
-              - `"redeemed"`
-
-          - `BetaFallbackCreditNotApplied object { reason, type, remove_to_redeem }`
+              default: redeemed
+
+          - `BetaFallbackCreditNotApplied object`
 
             No reprice was applied; `reason` says why.
 
from line 12109
 
             - `type: "not_applied"`
 
-              - `"not_applied"`
+              default: not_applied
 
             - `remove_to_redeem: optional array of string or null`
 
from line 12130
 
         The number of input tokens which were used.
 
+        minimum: 0
+
       - `iterations: BetaIterationsUsage or null`
 
         Per-iteration token usage breakdown.
from line 12142
         - Calculate the true context window size from the last iteration
         - Understand token accumulation across server-side tool use loops
 
-        - `BetaMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+        - `BetaMessageIterationUsage object`
 
           Token usage for a sampling iteration.
 
from line 12154
 
             The number of input tokens used to create the cache entry.
 
+            default: 0, minimum: 0
+
           - `cache_read_input_tokens: number`
 
             The number of input tokens read from the cache.
 
+            default: 0, minimum: 0
+
           - `input_tokens: number`
 
             The number of input tokens which were used.
 
+            minimum: 0
+
           - `model: Model`
 
             The model that will complete your prompt.
from line 12178
 
             The number of output tokens which were used.
 
+            minimum: 0
+
           - `type: "message"`
 
             Usage for a sampling iteration
 
-            - `"message"`
-
-        - `BetaCompactionIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 3 more }`
+            default: message
+
+        - `BetaCompactionIterationUsage object`
 
           Token usage for a compaction iteration.
 
from line 12198
 
             The number of input tokens used to create the cache entry.
 
+            default: 0, minimum: 0
+
           - `cache_read_input_tokens: number`
 
             The number of input tokens read from the cache.
 
+            default: 0, minimum: 0
+
           - `input_tokens: number`
 
             The number of input tokens which were used.
 
+            minimum: 0
+
           - `output_tokens: number`
 
             The number of output tokens which were used.
 
+            minimum: 0
+
           - `type: "compaction"`
 
             Usage for a compaction iteration
 
-            - `"compaction"`
-
-        - `BetaAdvisorMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+            default: compaction
+
+        - `BetaAdvisorMessageIterationUsage object`
 
           Token usage for an advisor sub-inference iteration.
 
from line 12236
 
             The number of input tokens used to create the cache entry.
 
+            default: 0, minimum: 0
+
           - `cache_read_input_tokens: number`
 
             The number of input tokens read from the cache.
 
+            default: 0, minimum: 0
+
           - `input_tokens: number`
 
             The number of input tokens which were used.
 
+            minimum: 0
+
           - `model: Model`
 
             The model that will complete your prompt.
from line 12260
 
             The number of output tokens which were used.
 
+            minimum: 0
+
           - `type: "advisor_message"`
 
             Usage for an advisor sub-inference iteration
 
-            - `"advisor_message"`
-
-        - `BetaFallbackMessageIterationUsage object { cache_creation, cache_creation_input_tokens, cache_read_input_tokens, 4 more }`
+            default: advisor_message
+
+        - `BetaFallbackMessageIterationUsage object`
 
           Token usage for the fallback-model attempt of a server-side fallback request.
 
from line 12285
 
             The number of input tokens used to create the cache entry.
 
+            default: 0, minimum: 0
+
           - `cache_read_input_tokens: number`
 
             The number of input tokens read from the cache.
 
+            default: 0, minimum: 0
+
           - `input_tokens: number`
 
             The number of input tokens which were used.
 
+            minimum: 0
+
           - `model: Model`
 
             The model that will complete your prompt.
from line 12309
 
             The number of output tokens which were used.
 
+            minimum: 0
+
           - `type: "fallback_message"`
 
             Usage for the fallback-model attempt that served the response
 
-            - `"fallback_message"`
+            default: fallback_message
 
       - `output_tokens: number`
 
         The number of output tokens which were used.
+
+        minimum: 0
 
       - `output_tokens_details: BetaOutputTokensDetails or null`
 
from line 12343
           generation count by a small number of tokens. Always ≤ `output_tokens`;
           `output_tokens - thinking_tokens` approximates the non-reasoning output.
 
+          default: 0, minimum: 0
+
       - `server_tool_use: BetaServerToolUsage or null`
 
         The number of server tool requests.
from line 12353
 
           The number of web fetch tool requests.
 
+          default: 0, minimum: 0
+
         - `web_search_requests: number`
 
           The number of web search tool requests.
 
+          default: 0, minimum: 0
+
       - `service_tier: "standard" or "priority" or "batch" or null`
 
         If the request used the priority, standard, or batch tier.
from line 12381
 
   - `type: "succeeded"`
 
-    - `"succeeded"`
+    default: succeeded