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

> Searches 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 or an image. 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:
  - bearerAuth: []
  - apiKeyAuth: []
paths:
  /video-search:
    post:
      summary: Video Search
      description: >-
        Searches 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:
                code: 0
                msg: success
                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
                      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
                      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
                request_id: req_abc123def456
        '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
      properties:
        code:
          type: integer
          description: Business status code. 0 indicates success.
        msg:
          type: string
          description: A message describing the result.
        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 message describing the error.
        request_id:
          type: string
          description: Unique identifier for the request.
      required:
        - code
        - msg
        - request_id
    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.
        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.
  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
            request_id: req_abc123def456
    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
            request_id: req_abc123def456
    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
            request_id: req_abc123def456
    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
            request_id: req_abc123def456
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Bearer token used for request authentication. Alternatively, you can
        send the API key in the `x-api-key` header. Note: A payment method is
        required to use the API.
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: >-
        API key used for request authentication. Alternatively, you can send the
        key as a Bearer token in the `Authorization` header. Note: A payment
        method is required to use the API.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.