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

# Analyze Video

> Analyze a video and answer questions about it. Pass a video URL and a text prompt — for example, "Describe what happens" or "Rate the visual quality 1-10." Returns the generated text.



## OpenAPI

````yaml api-reference/openapi/content.json POST /api/content/analyze
openapi: 3.1.0
info:
  title: Recoup API - Content
  description: >-
    API documentation for the Recoup platform - an AI agent platform for the
    music industry
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://api.recoupable.dev
security: []
paths:
  /api/content/analyze:
    post:
      description: >-
        Analyze a video and answer questions about it. Pass a video URL and a
        text prompt — for example, "Describe what happens" or "Rate the visual
        quality 1-10." Returns the generated text.
      requestBody:
        description: Video analysis parameters
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContentCreateAnalyzeRequest'
      responses:
        '200':
          description: Video analyzed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentCreateAnalyzeResponse'
        '400':
          description: Validation failed — invalid or missing request body fields
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentErrorResponse'
        '401':
          description: Unauthorized — invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentErrorResponse'
        '502':
          description: Video analysis failed upstream
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContentErrorResponse'
      security:
        - apiKeyAuth: []
        - bearerAuth: []
components:
  schemas:
    ContentCreateAnalyzeRequest:
      type: object
      required:
        - video_url
        - prompt
      properties:
        video_url:
          type: string
          format: uri
          description: >-
            Publicly accessible URL of the video to analyze. Supported formats:
            MP4, MOV, AVI, and other FFmpeg-compatible formats. Maximum
            duration: 1 hour.
        prompt:
          type: string
          maxLength: 2000
          description: >-
            A text prompt that guides the analysis. Can be instructive,
            descriptive, or phrased as a question. Examples: "Describe the key
            moments in this video", "Generate 5 SEO keywords for this video".
        temperature:
          type: number
          minimum: 0
          maximum: 1
          default: 0.2
          description: >-
            Controls the randomness of the text output. Lower values produce
            more focused results. Defaults to `0.2`.
        max_tokens:
          type: integer
          minimum: 1
          maximum: 4096
          description: >-
            Maximum number of tokens to generate. If omitted, uses the model
            default.
    ContentCreateAnalyzeResponse:
      type: object
      required:
        - text
      properties:
        text:
          type: string
          description: The generated analysis text based on the video and prompt.
        finish_reason:
          type: string
          enum:
            - stop
            - length
          nullable: true
          description: >-
            `stop` if the generation completed normally. `length` if truncated
            at the token limit.
        usage:
          type: object
          nullable: true
          properties:
            output_tokens:
              type: integer
              description: Number of tokens in the generated text.
    ContentErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: string
          description: Error message describing what went wrong
          example: Unauthorized
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Recoup API key. [Learn more](/quickstart#api-keys).
    bearerAuth:
      type: http
      scheme: bearer

````