> ## Documentation Index
> Fetch the complete documentation index at: https://docs-vip.apigo.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# /v1/messages

> Creates a Claude message response for text, multimodal input, and tool use.

> Anthropic 官方 HTTP 文档里，Claude 的图片能力主要体现在 Messages API 的视觉理解，而不是独立的图片生成接口。

* 图片通常作为 `content` 里的图像块传入，再配合文本问题一起请求
* 截至目前公开的 Anthropic HTTP 文档，没有单独的 Claude 图片生成或图片编辑端点
* 支持把图片以 base64、URL 或 Files API 的 `file_id` 形式传入
* 如果你要做图片生成或局部编辑，需要路由到支持该能力的 provider，而不是假设 Claude 官方接口能直接生图


## OpenAPI

````yaml POST /v1/messages
openapi: 3.1.0
info:
  title: OpenAPI Plant Store
  description: >-
    A sample API that uses a plant store as an example to demonstrate features
    in the OpenAPI specification
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api-vip.apigo.ai
security:
  - bearerAuth: []
paths:
  /v1/messages:
    post:
      summary: Claude messages
      description: 创建 Claude 消息响应，支持文本、多模态输入和工具调用。
      parameters:
        - name: anthropic-version
          in: header
          description: Anthropic API version header.
          required: true
          schema:
            type: string
            example: '2023-06-01'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClaudeMessagesRequest'
            example:
              model: claude-sonnet-4-5
              max_tokens: 1024
              messages:
                - role: user
                  content:
                    - type: text
                      text: 请总结这张图片里的关键信息
      responses:
        '200':
          description: Successful Claude message response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClaudeMessagesResponse'
              example:
                id: msg_01ABCxyz
                type: message
                role: assistant
                model: claude-sonnet-4-5
                content:
                  - type: text
                    text: 图片中是一张产品宣传海报。
                stop_reason: end_turn
                usage:
                  input_tokens: 128
                  output_tokens: 48
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - anthropicApiKey: []
components:
  schemas:
    ClaudeMessagesRequest:
      type: object
      required:
        - model
        - max_tokens
        - messages
      properties:
        model:
          type: string
          example: claude-sonnet-4-5
        max_tokens:
          type: integer
        system:
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ClaudeContentBlock'
        messages:
          type: array
          items:
            $ref: '#/components/schemas/ClaudeMessage'
        tools:
          type: array
          items:
            $ref: '#/components/schemas/ClaudeTool'
        stream:
          type: boolean
    ClaudeMessagesResponse:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - message
        role:
          type: string
          enum:
            - assistant
        model:
          type: string
        content:
          type: array
          items:
            $ref: '#/components/schemas/ClaudeContentBlock'
        stop_reason:
          type: string
        stop_sequence:
          type: string
        usage:
          $ref: '#/components/schemas/ClaudeUsage'
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: integer
          format: int32
        message:
          type: string
    ClaudeContentBlock:
      type: object
      properties:
        type:
          type: string
          enum:
            - text
            - image
            - tool_use
            - tool_result
        text:
          type: string
        source:
          $ref: '#/components/schemas/ClaudeContentSource'
        id:
          type: string
        name:
          type: string
        input:
          type: object
          additionalProperties: true
        tool_use_id:
          type: string
        content:
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ClaudeContentBlock'
        is_error:
          type: boolean
    ClaudeMessage:
      type: object
      required:
        - role
        - content
      properties:
        role:
          type: string
          enum:
            - user
            - assistant
        content:
          oneOf:
            - type: string
            - type: array
              items:
                $ref: '#/components/schemas/ClaudeContentBlock'
    ClaudeTool:
      type: object
      properties:
        name:
          type: string
        description:
          type: string
        input_schema:
          type: object
          additionalProperties: true
    ClaudeUsage:
      type: object
      properties:
        input_tokens:
          type: integer
        output_tokens:
          type: integer
    ClaudeContentSource:
      type: object
      properties:
        type:
          type: string
          enum:
            - base64
            - url
            - file
        media_type:
          type: string
        data:
          type: string
        url:
          type: string
        file_id:
          type: string
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
    anthropicApiKey:
      type: apiKey
      in: header
      name: x-api-key

````