> ## 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.

> Based on Anthropic's current public HTTP docs, Claude does not expose a dedicated video-generation endpoint. Video workflows usually require preprocessing before calling the Messages API.

* Anthropic's official multimodal docs focus on text, images, documents, and file references
* There is no separate public Claude endpoint today for raw video understanding or video generation
* In practice, Claude video integration is an engineering workflow built from preprocessing plus `/v1/messages`
* For summaries, scene analysis, or video Q\&A, extract frames, subtitles, or transcripts first and then send those derived inputs through Claude's supported content blocks
* If you need actual video generation, route the request to a provider whose official API supports video creation


## 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

````