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

# Video Search

> Search the web for videos from a text query. Contact us to request beta access.



## OpenAPI

````yaml /api-reference/openapi.json post /video-search
openapi: 3.1.0
info:
  title: Octen API
  description: >-
    Octen API provides Broad Search, Web Search, Image Search, Video Search,
    Extract, Embeddings, VL Embeddings, Answer, and Deep Research services. The
    Web Search API searches ranked web results with optional filters,
    highlights, and full content. The Image Search API searches for images from
    a text query, an image, or both, with an optional design mode that returns a
    structured summary and a reusable HTML snippet for each result. The Video
    Search API searches for videos from a text query. The Broad Search API
    decomposes a query into multiple sub-queries, searches them in parallel, and
    returns results grouped by sub-query. The Extract API extracts clean content
    from URLs, with optional query-focused highlights, page classification, and
    multimedia resources. The Embeddings API converts text into vector
    representations. The VL Embeddings API converts multimodal inputs into
    vector representations. The Answer API decomposes queries into multiple
    sub-queries for comprehensive search and synthesis. The Deep Research API
    runs a multi-round adaptive research pipeline that produces a structured
    research plan, executes iterative searches, and streams a final long-form
    report.
  version: 1.0.0
servers:
  - url: https://api.octen.ai
security:
  - apiKeyAuth: []
paths:
  /video-search:
    post:
      summary: Video Search
      description: >-
        Search the web for videos from a text query. Contact us to request beta
        access.
      operationId: video-search
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/VideoSearchRequest'
            examples:
              text:
                summary: Text query
                value:
                  inputs:
                    - type: text
                      data: how to make sourdough bread at home
                  count: 5
      responses:
        '200':
          description: Successful video search response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VideoSearchResponse'
              example:
                request_id: 20260627120000001ABCDE12345
                data:
                  results:
                    - title: How to Make Sourdough Bread at Home (Beginner's Guide)
                      url: >-
                        https://videos.example.com/watch/sourdough-beginners-guide.mp4
                      source_page: https://www.example.com/blog/sourdough-beginners-guide
                      description: >-
                        A step-by-step beginner tutorial covering starter
                        feeding, autolyse, stretch-and-fold, shaping, and baking
                        in a Dutch oven.
                      cover_url: >-
                        https://cdn.example.com/thumbs/sourdough-beginners-guide.jpg
                      duration_seconds: 842
                      match_segment:
                        start_seconds: 312.5
                        end_seconds: 408
                      authors: The Home Baker
                      time_published: '2026-02-14T09:30:00Z'
                      time_last_crawled: '2026-06-20T11:02:18Z'
                    - title: Easy No-Knead Sourdough for Beginners
                      url: https://videos.example.com/watch/no-knead-sourdough.mp4
                      source_page: https://www.example.com/recipes/no-knead-sourdough
                      description: >-
                        Demonstrates a simplified no-knead method, from mixing a
                        high-hydration dough to scoring and baking a crusty loaf
                        in a home oven.
                      cover_url: https://cdn.example.com/thumbs/no-knead-sourdough.jpg
                      duration_seconds: 615
                      match_segment:
                        start_seconds: 0
                        end_seconds: 73.4
                      authors: Everyday Sourdough
                      time_published: '2026-01-28T17:45:00Z'
                      time_last_crawled: '2026-06-19T22:14:55Z'
                meta:
                  usage:
                    num_search_queries: 1
                  latency: 482
        '400':
          description: >-
            Missing parameter inputs — Returned when a required parameter is
            missing.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                code: 400
                msg: Missing parameter inputs
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/InsufficientBalance'
        '429':
          $ref: '#/components/responses/RateLimited'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    VideoSearchRequest:
      type: object
      required:
        - inputs
      description: Request body for the Video Search API.
      properties:
        inputs:
          type: array
          maxItems: 1
          description: Input array carrying a text query (at most 1).
          items:
            $ref: '#/components/schemas/VideoSearchInput'
        count:
          type: integer
          minimum: 1
          maximum: 10
          default: 5
          description: Number of results to return.
        time_range:
          type: string
          enum:
            - day
            - week
            - month
            - year
            - d
            - w
            - m
            - 'y'
          description: >-
            Relative time window counting back from the current time, filtered
            by publish time. Mutually exclusive with `start_time`/`end_time` —
            if both are provided, `start_time`/`end_time` take precedence.
        start_time:
          type: string
          format: date-time
          description: Start time for filtering results by publish time. ISO 8601 format.
          example: '2025-01-01T00:00:00+08:00'
        end_time:
          type: string
          format: date-time
          description: End time for filtering results by publish time. ISO 8601 format.
          example: '2025-01-01T00:00:00+08:00'
        safesearch:
          type: string
          enum:
            - 'off'
            - strict
          default: strict
          description: >-
            Controls filtering of explicit/adult content. `off` disables
            filtering; `strict` drops all adult content.
    VideoSearchResponse:
      type: object
      description: A successful Video Search response.
      properties:
        request_id:
          type: string
          description: The unique identifier for this request.
        data:
          $ref: '#/components/schemas/VideoSearchData'
        meta:
          $ref: '#/components/schemas/VideoSearchMeta'
    ErrorResponse:
      type: object
      properties:
        code:
          type: integer
          description: Business status code. Non-zero values indicate an error.
        msg:
          type: string
          description: A human-readable message describing the error.
      required:
        - code
        - msg
    VideoSearchInput:
      type: object
      required:
        - type
      description: A single text input. At most one input per request.
      properties:
        type:
          type: string
          enum:
            - text
          description: The input type.
        data:
          type: string
          description: The query content, max 500 characters.
    VideoSearchData:
      type: object
      description: The main response payload.
      properties:
        results:
          type: array
          description: A list of video search results.
          items:
            $ref: '#/components/schemas/VideoSearchResult'
    VideoSearchMeta:
      type: object
      description: Additional metadata for the Video Search request.
      properties:
        usage:
          $ref: '#/components/schemas/VideoSearchUsage'
        latency:
          type: number
          description: Response time in milliseconds.
        warning:
          type: string
          nullable: true
          description: Warning message, if any.
    VideoSearchResult:
      type: object
      description: A single video search result.
      properties:
        title:
          type: string
          description: The title of the video.
        url:
          type: string
          description: The video URL.
        source_page:
          type: string
          description: URL of the original page hosting the video.
        description:
          type: string
          description: Server-generated text description of the video content.
        cover_url:
          type: string
          description: Video cover image URL.
        duration_seconds:
          type: integer
          description: Video duration in seconds.
        match_segment:
          $ref: '#/components/schemas/VideoSearchMatchSegment'
        authors:
          type: string
          description: Website name or author.
        time_published:
          type: string
          format: date-time
          description: Publish time in ISO 8601.
        time_last_crawled:
          type: string
          format: date-time
          description: Last crawl time in ISO 8601.
    VideoSearchUsage:
      type: object
      description: Usage information for the Video Search request.
      properties:
        num_search_queries:
          type: integer
          description: Number of search queries executed.
    VideoSearchMatchSegment:
      type: object
      description: The time segment of the video most relevant to the query.
      required:
        - start_seconds
        - end_seconds
      properties:
        start_seconds:
          type: number
          format: float
          description: >-
            Start second of the matched segment. Range [0, duration_seconds).
            Decimals supported.
        end_seconds:
          type: number
          format: float
          description: >-
            End second of the matched segment. Range (start_seconds,
            duration_seconds]. Decimals supported.
  responses:
    Unauthorized:
      description: Invalid API Key — Returned when the API key is missing or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 401
            msg: Invalid API Key
    InsufficientBalance:
      description: >-
        Insufficient balance in account — Returned when the account balance is
        insufficient to complete the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 403
            msg: Insufficient balance in account
    RateLimited:
      description: >-
        Exceeding the rate limit — Returned when the request exceeds the
        configured rate limit.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 429
            msg: Exceeding the rate limit
    InternalError:
      description: Internal error — Returned when an unexpected server-side error occurs.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
          example:
            code: 500
            msg: Internal error
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key used for request authentication. Obtain an API key before using
        the API. Note: A payment method is required to use the API.

````