TwelveLabs Search API

Any-to-video semantic search powered by Marengo.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/twelvelabs-search-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

twelvelabs-search-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: TwelveLabs Analyze Search API
  description: REST API for the TwelveLabs video-understanding platform. Upload and index video, run any-to-video semantic search (Marengo), generate text from video (Pegasus) - open-ended analysis, gist, and summaries - and create multimodal embeddings. All requests are authenticated with an `x-api-key` header.
  termsOfService: https://www.twelvelabs.io/terms-of-use
  contact:
    name: TwelveLabs Support
    url: https://docs.twelvelabs.io
    email: support@twelvelabs.io
  version: '1.3'
servers:
- url: https://api.twelvelabs.io/v1.3
security:
- apiKeyAuth: []
tags:
- name: Search
  description: Any-to-video semantic search powered by Marengo.
paths:
  /search:
    post:
      operationId: createSearch
      tags:
      - Search
      summary: Make any-to-video search request
      description: Searches an index using a text query and/or media (image) queries. Powered by Marengo. Returns paginated clip or video matches with relevance scores and timestamps.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - index_id
              - search_options
              properties:
                index_id:
                  type: string
                  description: Unique identifier of the index to search.
                search_options:
                  type: array
                  description: Sources of information the platform uses.
                  items:
                    type: string
                    enum:
                    - visual
                    - audio
                query_text:
                  type: string
                  description: Natural-language query (up to 500 tokens).
                query_media_type:
                  type: string
                  enum:
                  - image
                  description: Type of media query.
                query_media_url:
                  type: string
                  description: Publicly accessible URL of the query media.
                query_media_file:
                  type: string
                  format: binary
                  description: Local query media file.
                group_by:
                  type: string
                  enum:
                  - clip
                  - video
                  default: clip
                operator:
                  type: string
                  enum:
                  - or
                  - and
                  default: or
                page_limit:
                  type: integer
                  default: 10
                  maximum: 50
                filter:
                  type: string
                  description: Stringified JSON filter over video metadata.
                threshold:
                  type: string
                  enum:
                  - high
                  - medium
                  - low
                  - none
                  description: Minimum confidence level of returned results.
                sort_option:
                  type: string
                  enum:
                  - score
                  - clip_count
                  default: score
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
  /search/{page_token}:
    get:
      operationId: retrieveSearchPage
      tags:
      - Search
      summary: Retrieve a specific page of search results
      description: Retrieves a subsequent page of search results using the `next_page_token` returned by a prior search request.
      parameters:
      - name: page_token
        in: path
        required: true
        schema:
          type: string
        description: Token identifying the page of results to retrieve.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
components:
  schemas:
    SearchClip:
      type: object
      properties:
        score:
          type: number
        start:
          type: number
        end:
          type: number
        video_id:
          type: string
        confidence:
          type: string
          enum:
          - high
          - medium
          - low
        thumbnail_url:
          type: string
        clips:
          type: array
          items:
            type: object
            properties:
              score:
                type: number
              start:
                type: number
              end:
                type: number
              video_id:
                type: string
              confidence:
                type: string
    PageInfo:
      type: object
      properties:
        limit_per_page:
          type: integer
        total_results:
          type: integer
        page:
          type: integer
        total_page:
          type: integer
        next_page_token:
          type: string
        prev_page_token:
          type: string
    SearchResults:
      type: object
      properties:
        search_pool:
          type: object
          properties:
            total_count:
              type: integer
            total_duration:
              type: number
            index_id:
              type: string
        data:
          type: array
          items:
            $ref: '#/components/schemas/SearchClip'
        page_info:
          $ref: '#/components/schemas/PageInfo'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: TwelveLabs API key sent in the `x-api-key` request header.