---
title: "Create Message (Anthropic)"
method: POST
path: "/messages"
---

# Create Message (Anthropic)

`POST /messages`

Create a message using Anthropic format

## Request body

- MessageRequest
  - `model` string, required
  - `messages` AnthropicMessage[], required
    - `role` 'user' | 'assistant', required
    - `content` union, required
      - string
      - AnthropicContentPart[]
        - union
          - AnthropicTextContent
            - `type` 'text', required
            - `text` string, required
          - AnthropicImageContent
            - `type` 'image', required
            - `source` AnthropicImageSource, required
              - …
          - AnthropicToolUseContent
            - `type` 'tool_use', required
            - `id` string, required
            - `name` string, required
            - `input` object, required
          - AnthropicToolResultContent
            - `type` 'tool_result', required
            - `tool_use_id` string, required
            - `content` union
              - …
            - `is_error` boolean
  - `max_tokens` integer — Maximum tokens to generate
  - `temperature` number
  - `top_p` number
  - `top_k` integer
  - `stream` boolean
  - `system` string — System prompt
  - `tools` AnthropicTool[]
    - `name` string, required
    - `description` string
    - `input_schema` object, required
  - `tool_choice` union
    - 'auto' | 'any'
    - object
      - `type` 'tool', required
      - `name` string, required
  - `thinking` ThinkingConfig
    - `type` 'enabled', required
    - `budget_tokens` integer, required — Token budget for thinking
  - `reasoning_effort` 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' — Reasoning effort level. Silently ignored for models that do not support reasoning_effort.

## Response `200`

Success

- MessageResponse
  - `id` string, required
  - `type` 'message', required
  - `role` 'assistant', required
  - `content` AnthropicContentPart[], required
    - union
      - AnthropicTextContent
        - `type` 'text', required
        - `text` string, required
      - AnthropicImageContent
        - `type` 'image', required
        - `source` AnthropicImageSource, required
          - `type` 'base64', required
          - `media_type` string, required
          - `data` string, required — Base64 encoded image data
      - AnthropicToolUseContent
        - `type` 'tool_use', required
        - `id` string, required
        - `name` string, required
        - `input` object, required
      - AnthropicToolResultContent
        - `type` 'tool_result', required
        - `tool_use_id` string, required
        - `content` union
          - string
          - AnthropicContentPart[]
        - `is_error` boolean
  - `model` string, required
  - `stop_reason` 'end_turn' | 'max_tokens' | 'stop_sequence' | 'tool_use', nullable, required
  - `stop_sequence` string, nullable
  - `usage` AnthropicUsage, required
    - `input_tokens` integer, required
    - `output_tokens` integer, required

---

[API](https://skmtc.dev/electronhub/apis/electron-hub-api.md) · [All operations](https://skmtc.dev/electronhub/apis/electron-hub-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/electronhub/electron-hub-api/revisions/727f9c51555b/schema)
