AIHubMix · Schema

CreateMessageParams

CompanyArtificial IntelligenceLLMModel RoutingAI GatewayGenerative AIMCP

Properties

Name Type Description
model object
messages array Input messages. Our models are trained to operate on alternating `user` and `assistant` conversational turns. When creating a new `Message`, you specify the prior conversational turns with the `messag
cache_control object Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request.
container object Container identifier for reuse across requests.
inference_geo object Specifies the geographic region for inference processing. If not specified, the workspace's `default_inference_geo` is used.
max_tokens integer The maximum number of tokens to generate before stopping. Note that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate.
metadata object An object describing metadata about the request.
output_config object Configuration options for the model's output, such as the output format.
service_tier string Determines whether to use priority capacity (if available) or standard capacity for this request. Anthropic offers different levels of service for your API requests. See [service-tiers](https://docs.c
stop_sequences array Custom text sequences that will cause the model to stop generating. Our models will normally stop when they have naturally completed their turn, which will result in a response `stop_reason` of `"end_
stream boolean Whether to incrementally stream the response using server-sent events. See [streaming](https://docs.claude.com/en/api/messages-streaming) for details.
system object System prompt. A system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://docs.claude.com/en/docs
temperature 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
thinking object
tool_choice object
tools array Definitions of tools that the model may use. If you include `tools` in your API request, the model may return `tool_use` content blocks that represent the model's use of those tools. You can then run
top_k integer 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-fro
top_p number 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 partic
View JSON Schema on GitHub

JSON Schema

aihubmix-anthropic-create-message-params-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/aihubmix/main/json-schema/aihubmix-anthropic-create-message-params-schema.json",
  "title": "CreateMessageParams",
  "x-generated": "2026-10-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": {
    "from": "avs://anthropic/official",
    "authority": "official"
  },
  "additionalProperties": false,
  "properties": {
    "model": {
      "$ref": "#/$defs/AnthropicModel"
    },
    "messages": {
      "description": "Input messages.\n\nOur models are trained to operate on alternating `user` and `assistant` conversational turns. When creating a new `Message`, you specify the prior conversational turns with the `messages` parameter, and the model then generates the next `Message` in the conversation. Consecutive `user` or `assistant` turns in your request will be combined into a single turn.\n\nEach input message must be an object with a `role` and `content`. You can specify a single `user`-role message, or you can include multiple `user` and `assistant` messages.\n\nIf the final message uses the `assistant` role, the response content will continue immediately from the content in that message. This can be used to constrain part of the model's response.\n\nExample with a single `user` message:\n\n```json\n[{\"role\": \"user\", \"content\": \"Hello, Claude\"}]\n```\n\nExample with multiple conversational turns:\n\n```json\n[\n  {\"role\": \"user\", \"content\": \"Hello there.\"},\n  {\"role\": \"assistant\", \"content\": \"Hi, I'm Claude. How can I help you?\"},\n  {\"role\": \"user\", \"content\": \"Can you explain LLMs in plain English?\"},\n]\n```\n\nExample with a partially-filled response from Claude:\n\n```json\n[\n  {\"role\": \"user\", \"content\": \"What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun\"},\n  {\"role\": \"assistant\", \"content\": \"The best answer is (\"},\n]\n```\n\nEach input message `content` may be either a single `string` or an array of content blocks, where each block has a specific `type`. Using a `string` for `content` is shorthand for an array of one content block of type `\"text\"`. The following input messages are equivalent:\n\n```json\n{\"role\": \"user\", \"content\": \"Hello, Claude\"}\n```\n\n```json\n{\"role\": \"user\", \"content\": [{\"type\": \"text\", \"text\": \"Hello, Claude\"}]}\n```\n\nSee [input examples](https://docs.claude.com/en/api/messages-examples).\n\nNote that if you want to include a [system prompt](https://docs.claude.com/en/docs/system-prompts), you can use the top-level `system` parameter — there is no `\"system\"` role for input messages in the Messages API.\n\nThere is a limit of 100,000 messages in a single request.",
      "items": {
        "$ref": "#/$defs/AnthropicInputMessage"
      },
      "title": "Messages",
      "type": "array",
      "x-providers": {
        "openai": {
          "transform": "anthropic_messages_to_openai_messages"
        },
        "azure": {
          "transform": "anthropic_messages_to_openai_messages"
        },
        "gemini": {
          "to": [
            "contents"
          ],
          "transform": "anthropic_messages_to_gemini_contents"
        },
        "vertex": {
          "to": [
            "contents"
          ],
          "transform": "anthropic_messages_to_gemini_contents"
        }
      }
    },
    "cache_control": {
      "anyOf": [
        {
          "oneOf": [
            {
              "$ref": "#/$defs/AnthropicCacheControlEphemeral"
            }
          ]
        },
        {
          "type": "null"
        }
      ],
      "description": "Top-level cache control automatically applies a cache_control marker to the last cacheable block in the request.",
      "title": "Cache Control",
      "x-providers-default": "drop",
      "x-providers": {
        "anthropic": {},
        "bedrock": {}
      }
    },
    "container": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Container identifier for reuse across requests.",
      "title": "Container",
      "x-providers-default": "drop",
      "x-providers": {
        "anthropic": {},
        "bedrock": {}
      }
    },
    "inference_geo": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Specifies the geographic region for inference processing. If not specified, the workspace's `default_inference_geo` is used.",
      "title": "Inference Geo",
      "x-providers-default": "drop",
      "x-providers": {
        "anthropic": {}
      }
    },
    "max_tokens": {
      "description": "The maximum number of tokens to generate before stopping.\n\nNote that our models may stop _before_ reaching this maximum. This parameter only specifies the absolute maximum number of tokens to generate.\n\nSet to `0` to populate the [prompt cache](https://docs.claude.com/en/docs/build-with-claude/prompt-caching#pre-warming-the-cache) without generating a response.\n\nDifferent models have different maximum values for this parameter.  See [models](https://docs.claude.com/en/docs/models-overview) for details.",
      "minimum": 0,
      "title": "Max Tokens",
      "type": "integer",
      "x-providers": {
        "gemini": {
          "to": [
            "generationConfig",
            "maxOutputTokens"
          ]
        },
        "vertex": {
          "to": [
            "generationConfig",
            "maxOutputTokens"
          ]
        }
      }
    },
    "metadata": {
      "$ref": "#/$defs/AnthropicMetadata",
      "description": "An object describing metadata about the request."
    },
    "output_config": {
      "$ref": "#/$defs/AnthropicOutputConfig",
      "description": "Configuration options for the model's output, such as the output format.",
      "x-providers-default": "drop",
      "x-providers": {
        "anthropic": {}
      }
    },
    "service_tier": {
      "description": "Determines whether to use priority capacity (if available) or standard capacity for this request.\n\nAnthropic offers different levels of service for your API requests. See [service-tiers](https://docs.claude.com/en/api/service-tiers) for details.",
      "enum": [
        "auto",
        "standard_only"
      ],
      "title": "Service Tier",
      "type": "string",
      "x-providers-default": "drop",
      "x-providers": {
        "anthropic": {},
        "bedrock": {}
      }
    },
    "stop_sequences": {
      "description": "Custom text sequences that will cause the model to stop generating.\n\nOur models will normally stop when they have naturally completed their turn, which will result in a response `stop_reason` of `\"end_turn\"`.\n\nIf you want the model to stop generating when it encounters custom strings of text, you can use the `stop_sequences` parameter. If the model encounters one of the custom sequences, the response `stop_reason` value will be `\"stop_sequence\"` and the response `stop_sequence` value will contain the matched stop sequence.",
      "items": {
        "type": "string"
      },
      "title": "Stop Sequences",
      "type": "array",
      "x-providers": {
        "openai": {
          "to": [
            "stop"
          ]
        },
        "azure": {
          "to": [
            "stop"
          ]
        },
        "gemini": {
          "to": [
            "generationConfig",
            "stopSequences"
          ]
        },
        "vertex": {
          "to": [
            "generationConfig",
            "stopSequences"
          ]
        }
      }
    },
    "stream": {
      "description": "Whether to incrementally stream the response using server-sent events.\n\nSee [streaming](https://docs.claude.com/en/api/messages-streaming) for details.",
      "title": "Stream",
      "type": "boolean"
    },
    "system": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "items": {
            "$ref": "#/$defs/AnthropicRequestTextBlock"
          },
          "type": "array"
        }
      ],
      "description": "System prompt.\n\nA system prompt is a way of providing context and instructions to Claude, such as specifying a particular goal or role. See our [guide to system prompts](https://docs.claude.com/en/docs/system-prompts).",
      "title": "System",
      "x-providers-default": "drop",
      "x-providers": {
        "anthropic": {},
        "bedrock": {},
        "openai": {
          "transform": "anthropic_system_to_openai_system_message"
        },
        "azure": {
          "transform": "anthropic_system_to_openai_system_message"
        },
        "gemini": {
          "to": [
            "systemInstruction"
          ],
          "transform": "anthropic_system_to_gemini_system_instruction"
        },
        "vertex": {
          "to": [
            "systemInstruction"
          ],
          "transform": "anthropic_system_to_gemini_system_instruction"
        }
      }
    },
    "temperature": {
      "deprecated": true,
      "description": "Amount of randomness injected into the response.\n\nDefaults 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.\n\nNote that even with `temperature` of `0.0`, the results will not be fully deterministic.",
      "maximum": 1,
      "minimum": 0,
      "title": "Temperature",
      "type": "number",
      "x-providers": {
        "gemini": {
          "to": [
            "generationConfig",
            "temperature"
          ]
        },
        "vertex": {
          "to": [
            "generationConfig",
            "temperature"
          ]
        }
      }
    },
    "thinking": {
      "$ref": "#/$defs/AnthropicThinkingConfigParam",
      "x-providers-default": "drop",
      "x-providers": {
        "anthropic": {},
        "bedrock": {}
      }
    },
    "tool_choice": {
      "$ref": "#/$defs/AnthropicToolChoice",
      "x-providers": {
        "openai": {
          "transform": "anthropic_tool_choice_to_openai_tool_choice"
        },
        "azure": {
          "transform": "anthropic_tool_choice_to_openai_tool_choice"
        },
        "gemini": {
          "to": [
            "toolConfig"
          ],
          "transform": "anthropic_tool_choice_to_gemini_tool_config"
        },
        "vertex": {
          "to": [
            "toolConfig"
          ],
          "transform": "anthropic_tool_choice_to_gemini_tool_config"
        }
      }
    },
    "tools": {
      "description": "Definitions of tools that the model may use.\n\nIf you include `tools` in your API request, the model may return `tool_use` content blocks that represent the model's use of those tools. You can then run those tools using the tool input generated by the model and then optionally return results back to the model using `tool_result` content blocks.\n\nThere are two types of tools: **client tools** and **server tools**. The behavior described below applies to client tools. For [server tools](https://docs.claude.com/en/docs/agents-and-tools/tool-use/overview\\#server-tools), see their individual documentation as each has its own behavior (e.g., the [web search tool](https://docs.claude.com/en/docs/agents-and-tools/tool-use/web-search-tool)).\n\nEach tool definition includes:\n\n* `name`: Name of the tool.\n* `description`: Optional, but strongly-recommended description of the tool.\n* `input_schema`: [JSON schema](https://json-schema.org/draft/2020-12) for the tool `input` shape that the model will produce in `tool_use` output content blocks.\n\nFor example, if you defined `tools` as:\n\n```json\n[\n  {\n    \"name\": \"get_stock_price\",\n    \"description\": \"Get the current stock price for a given ticker symbol.\",\n    \"input_schema\": {\n      \"type\": \"object\",\n      \"properties\": {\n        \"ticker\": {\n          \"type\": \"string\",\n          \"description\": \"The stock ticker symbol, e.g. AAPL for Apple Inc.\"\n        }\n      },\n      \"required\": [\"ticker\"]\n    }\n  }\n]\n```\n\nAnd then asked the model \"What's the S&P 500 at today?\", the model might produce `tool_use` content blocks in the response like this:\n\n```json\n[\n  {\n    \"type\": \"tool_use\",\n    \"id\": \"toolu_01D7FLrfh4GYq7yT1ULFeyMV\",\n    \"name\": \"get_stock_price\",\n    \"input\": { \"ticker\": \"^GSPC\" }\n  }\n]\n```\n\nYou might then run your `get_stock_price` tool with `{\"ticker\": \"^GSPC\"}` as an input, and return the following back to the model in a subsequent `user` message:\n\n```json\n[\n  {\n    \"type\": \"tool_result\",\n    \"tool_use_id\": \"toolu_01D7FLrfh4GYq7yT1ULFeyMV\",\n    \"content\": \"259.75 USD\"\n  }\n]\n```\n\nTools can be used for workflows that include running client-side tools and functions, or more generally whenever you want the model to produce a particular JSON structure of output.\n\nSee our [guide](https://docs.claude.com/en/docs/tool-use) for more details.",
      "items": {
        "oneOf": [
          {
            "$ref": "#/$defs/AnthropicTool"
          },
          {
            "$ref": "#/$defs/AnthropicBashTool_20250124"
          },
          {
            "$ref": "#/$defs/AnthropicCodeExecutionTool_20250522"
          },
          {
            "$ref": "#/$defs/AnthropicCodeExecutionTool_20250825"
          },
          {
            "$ref": "#/$defs/AnthropicCodeExecutionTool_20260120"
          },
          {
            "$ref": "#/$defs/AnthropicMemoryTool_20250818"
          },
          {
            "$ref": "#/$defs/AnthropicTextEditor_20250124"
          },
          {
            "$ref": "#/$defs/AnthropicTextEditor_20250429"
          },
          {
            "$ref": "#/$defs/AnthropicTextEditor_20250728"
          },
          {
            "$ref": "#/$defs/AnthropicWebSearchTool_20250305"
          },
          {
            "$ref": "#/$defs/AnthropicWebFetchTool_20250910"
          },
          {
            "$ref": "#/$defs/AnthropicWebSearchTool_20260209"
          },
          {
            "$ref": "#/$defs/AnthropicWebFetchTool_20260209"
          },
          {
            "$ref": "#/$defs/AnthropicWebFetchTool_20260309"
          },
          {
            "$ref": "#/$defs/AnthropicToolSearchToolBM25_20251119"
          },
          {
            "$ref": "#/$defs/AnthropicToolSearchToolRegex_20251119"
          }
        ]
      },
      "title": "Tools",
      "type": "array",
      "x-providers": {
        "openai": {
          "transform": "anthropic_tools_to_openai_tools"
        },
        "azure": {
          "transform": "anthropic_tools_to_openai_tools"
        },
        "gemini": {
          "to": [
            "tools"
          ],
          "transform": "anthropic_tools_to_gemini_tools"
        },
        "vertex": {
          "to": [
            "tools"
          ],
          "transform": "anthropic_tools_to_gemini_tools"
        }
      }
    },
    "top_k": {
      "deprecated": true,
      "description": "Only sample from the top K options for each subsequent token.\n\nUsed to remove \"long tail\" low probability responses. [Learn more technical details here](https://towardsdatascience.com/how-to-sample-from-language-models-682bceb97277).\n\nRecommended for advanced use cases only.",
      "minimum": 0,
      "title": "Top K",
      "type": "integer",
      "x-providers-default": "drop",
      "x-providers": {
        "anthropic": {},
        "bedrock": {},
        "cohere": {},
        "gemini": {
          "to": [
            "generationConfig",
            "topK"
          ]
        },
        "vertex": {
          "to": [
            "generationConfig",
            "topK"
          ]
        }
      }
    },
    "top_p": {
      "deprecated": true,
      "description": "Use nucleus sampling.\n\nIn 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`.\n\nRecommended for advanced use cases only.",
      "maximum": 1,
      "minimum": 0,
      "title": "Top P",
      "type": "number",
      "x-providers": {
        "gemini": {
          "to": [
            "generationConfig",
            "topP"
          ]
        },
        "vertex": {
          "to": [
            "generationConfig",
            "topP"
          ]
        }
      }
    }
  },
  "required": [
    "model",
    "messages",
    "max_tokens"
  ],
  "type": "object",
  "$defs": {
    "AnthropicAllowedCaller": {
      "description": "Specifies who can invoke a tool.\n\nValues:\n    direct: The model can call this tool directly.\n    code_execution_20250825: The tool can be called from the code execution environment (v1).\n    code_execution_20260120: The tool can be called from the code execution environment (v2 with persistence).",
      "enum": [
        "direct",
        "code_execution_20250825",
        "code_execution_20260120"
      ],
      "title": "AllowedCaller",
      "type": "string",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicBase64ImageSource": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "format": "byte",
          "title": "Data",
          "type": "string"
        },
        "media_type": {
          "enum": [
            "image/jpeg",
            "image/png",
            "image/gif",
            "image/webp"
          ],
          "title": "Media Type",
          "type": "string"
        },
        "type": {
          "const": "base64",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "data",
        "media_type",
        "type"
      ],
      "title": "Base64ImageSource",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicBase64PDFSource": {
      "additionalProperties": false,
      "properties": {
        "data": {
          "format": "byte",
          "title": "Data",
          "type": "string"
        },
        "media_type": {
          "const": "application/pdf",
          "title": "Media Type",
          "type": "string"
        },
        "type": {
          "const": "base64",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "data",
        "media_type",
        "type"
      ],
      "title": "Base64PDFSource",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicBashCodeExecutionToolResultErrorCode": {
      "enum": [
        "invalid_tool_input",
        "unavailable",
        "too_many_requests",
        "execution_time_exceeded",
        "output_file_too_large"
      ],
      "title": "BashCodeExecutionToolResultErrorCode",
      "type": "string",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicBashTool_20250124": {
      "additionalProperties": false,
      "properties": {
        "allowed_callers": {
          "items": {
            "$ref": "#/$defs/AnthropicAllowedCaller"
          },
          "title": "Allowed Callers",
          "type": "array"
        },
        "cache_control": {
          "anyOf": [
            {
              "oneOf": [
                {
                  "$ref": "#/$defs/AnthropicCacheControlEphemeral"
                }
              ]
            },
            {
              "type": "null"
            }
          ],
          "description": "Create a cache control breakpoint at this content block.",
          "title": "Cache Control"
        },
        "defer_loading": {
          "description": "If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search.",
          "title": "Defer Loading",
          "type": "boolean"
        },
        "input_examples": {
          "items": {
            "additionalProperties": {
              "$ref": "#/$defs/AnthropicJsonValue"
            },
            "type": "object"
          },
          "title": "Input Examples",
          "type": "array"
        },
        "name": {
          "const": "bash",
          "description": "Name of the tool.\n\nThis is how the tool will be called by the model and in `tool_use` blocks.",
          "title": "Name",
          "type": "string"
        },
        "strict": {
          "description": "When true, guarantees schema validation on tool names and inputs",
          "title": "Strict",
          "type": "boolean"
        },
        "type": {
          "const": "bash_20250124",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type"
      ],
      "title": "BashTool_20250124",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicCacheControlEphemeral": {
      "additionalProperties": false,
      "properties": {
        "ttl": {
          "description": "The time-to-live for the cache control breakpoint.\n\nThis may be one the following values:\n- `5m`: 5 minutes\n- `1h`: 1 hour\n\nDefaults to `5m`.",
          "enum": [
            "5m",
            "1h"
          ],
          "title": "Ttl",
          "type": "string"
        },
        "type": {
          "const": "ephemeral",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "CacheControlEphemeral",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicCodeExecutionToolResultErrorCode": {
      "enum": [
        "invalid_tool_input",
        "unavailable",
        "too_many_requests",
        "execution_time_exceeded"
      ],
      "title": "CodeExecutionToolResultErrorCode",
      "type": "string",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicCodeExecutionTool_20250522": {
      "additionalProperties": false,
      "properties": {
        "allowed_callers": {
          "items": {
            "$ref": "#/$defs/AnthropicAllowedCaller"
          },
          "title": "Allowed Callers",
          "type": "array"
        },
        "cache_control": {
          "anyOf": [
            {
              "oneOf": [
                {
                  "$ref": "#/$defs/AnthropicCacheControlEphemeral"
                }
              ]
            },
            {
              "type": "null"
            }
          ],
          "description": "Create a cache control breakpoint at this content block.",
          "title": "Cache Control"
        },
        "defer_loading": {
          "description": "If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search.",
          "title": "Defer Loading",
          "type": "boolean"
        },
        "name": {
          "const": "code_execution",
          "description": "Name of the tool.\n\nThis is how the tool will be called by the model and in `tool_use` blocks.",
          "title": "Name",
          "type": "string"
        },
        "strict": {
          "description": "When true, guarantees schema validation on tool names and inputs",
          "title": "Strict",
          "type": "boolean"
        },
        "type": {
          "const": "code_execution_20250522",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type"
      ],
      "title": "CodeExecutionTool_20250522",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicCodeExecutionTool_20250825": {
      "additionalProperties": false,
      "properties": {
        "allowed_callers": {
          "items": {
            "$ref": "#/$defs/AnthropicAllowedCaller"
          },
          "title": "Allowed Callers",
          "type": "array"
        },
        "cache_control": {
          "anyOf": [
            {
              "oneOf": [
                {
                  "$ref": "#/$defs/AnthropicCacheControlEphemeral"
                }
              ]
            },
            {
              "type": "null"
            }
          ],
          "description": "Create a cache control breakpoint at this content block.",
          "title": "Cache Control"
        },
        "defer_loading": {
          "description": "If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search.",
          "title": "Defer Loading",
          "type": "boolean"
        },
        "name": {
          "const": "code_execution",
          "description": "Name of the tool.\n\nThis is how the tool will be called by the model and in `tool_use` blocks.",
          "title": "Name",
          "type": "string"
        },
        "strict": {
          "description": "When true, guarantees schema validation on tool names and inputs",
          "title": "Strict",
          "type": "boolean"
        },
        "type": {
          "const": "code_execution_20250825",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type"
      ],
      "title": "CodeExecutionTool_20250825",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicCodeExecutionTool_20260120": {
      "additionalProperties": false,
      "description": "Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint).",
      "properties": {
        "allowed_callers": {
          "items": {
            "$ref": "#/$defs/AnthropicAllowedCaller"
          },
          "title": "Allowed Callers",
          "type": "array"
        },
        "cache_control": {
          "anyOf": [
            {
              "oneOf": [
                {
                  "$ref": "#/$defs/AnthropicCacheControlEphemeral"
                }
              ]
            },
            {
              "type": "null"
            }
          ],
          "description": "Create a cache control breakpoint at this content block.",
          "title": "Cache Control"
        },
        "defer_loading": {
          "description": "If true, tool will not be included in initial system prompt. Only loaded when returned via tool_reference from tool search.",
          "title": "Defer Loading",
          "type": "boolean"
        },
        "name": {
          "const": "code_execution",
          "description": "Name of the tool.\n\nThis is how the tool will be called by the model and in `tool_use` blocks.",
          "title": "Name",
          "type": "string"
        },
        "strict": {
          "description": "When true, guarantees schema validation on tool names and inputs",
          "title": "Strict",
          "type": "boolean"
        },
        "type": {
          "const": "code_execution_20260120",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "name",
        "type"
      ],
      "title": "CodeExecutionTool_20260120",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicContentBlockSource": {
      "additionalProperties": false,
      "properties": {
        "content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "oneOf": [
                  {
                    "$ref": "#/$defs/AnthropicRequestTextBlock"
                  },
                  {
                    "$ref": "#/$defs/AnthropicRequestImageBlock"
                  }
                ],
                "title": "content_block_source_content_item"
              },
              "type": "array",
              "title": "content_block_source_content"
            }
          ],
          "title": "Content"
        },
        "type": {
          "const": "content",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "content",
        "type"
      ],
      "title": "ContentBlockSource",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicDirectCaller": {
      "additionalProperties": false,
      "description": "Tool invocation directly from the model.",
      "properties": {
        "type": {
          "const": "direct",
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "title": "DirectCaller",
      "type": "object",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicEffortLevel": {
      "description": "All possible effort levels.",
      "enum": [
        "low",
        "medium",
        "high",
        "xhigh",
        "max"
      ],
      "title": "EffortLevel",
      "type": "string",
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicInputContentBlock": {
      "oneOf": [
        {
          "$ref": "#/$defs/AnthropicRequestTextBlock",
          "description": "Regular text content."
        },
        {
          "$ref": "#/$defs/AnthropicRequestImageBlock",
          "description": "Image content specified directly as base64 data or as a reference via a URL."
        },
        {
          "$ref": "#/$defs/AnthropicRequestDocumentBlock",
          "description": "Document content, either specified directly as base64 data, as text, or as a reference via a URL."
        },
        {
          "$ref": "#/$defs/AnthropicRequestSearchResultBlock",
          "description": "A search result block containing source, title, and content from search operations."
        },
        {
          "$ref": "#/$defs/AnthropicRequestThinkingBlock",
          "description": "A block specifying internal thinking by the model."
        },
        {
          "$ref": "#/$defs/AnthropicRequestRedactedThinkingBlock",
          "description": "A block specifying internal, redacted thinking by the model."
        },
        {
          "$ref": "#/$defs/AnthropicRequestToolUseBlock",
          "description": "A block indicating a tool use by the model."
        },
        {
          "$ref": "#/$defs/AnthropicRequestToolResultBlock",
          "description": "A block specifying the results of a tool use by the model."
        },
        {
          "$ref": "#/$defs/AnthropicRequestServerToolUseBlock"
        },
        {
          "$ref": "#/$defs/AnthropicRequestWebSearchToolResultBlock"
        },
        {
          "$ref": "#/$defs/AnthropicRequestWebFetchToolResultBlock"
        },
        {
          "$ref": "#/$defs/AnthropicRequestCodeExecutionToolResultBlock"
        },
        {
          "$ref": "#/$defs/AnthropicRequestBashCodeExecutionToolResultBlock"
        },
        {
          "$ref": "#/$defs/AnthropicRequestTextEditorCodeExecutionToolResultBlock"
        },
        {
          "$ref": "#/$defs/AnthropicRequestToolSearchToolResultBlock"
        },
        {
          "$ref": "#/$defs/AnthropicRequestContainerUploadBlock"
        },
        {
          "$ref": "#/$defs/AnthropicRequestMidConvSystemBlock"
        }
      ],
      "x-source": {
        "from": "avs://anthropic/official",
        "authority": "official"
      }
    },
    "AnthropicInputMessage": {
      "additionalProperties": false,
      "properties": {
        "content": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "items": {
                "$ref": "#/$defs/AnthropicInputContentBlock"
              },
              "type": "array"
            }
          ],
          "title": "Content"
        },
        "role": {
          "enum": [
            "user",
            "assistant",
            "system"
          ],
          "title": "Role",
          "type": "string"
        }
      },
      "required": [
        "content

# --- truncated at 32 KB (134 KB total) ---
# Full source: https://artifacts.apis.io/aihubmix/json-schema/aihubmix-anthropic-create-message-params-schema.json

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/aihubmix-anthropic-create-message-params"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.