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

# List Available Feature Extractors

> Discover all available feature extractors with their capabilities, supported modalities, output features, and example usage. Use this to understand what extractors are available when configuring namespaces and collections in manifests.



## OpenAPI

````yaml get /v1/discovery/extractors
openapi: 3.1.0
info:
  title: Mixpeek API
  description: >-
    This is the Mixpeek API, providing access to various endpoints for data
    processing and retrieval.
  termsOfService: https://mixpeek.com/terms
  contact:
    name: Mixpeek Support
    url: https://mixpeek.com/contact
    email: info@mixpeek.com
  version: '0.82'
servers:
  - url: https://api.mixpeek.com
    description: Production
security: []
paths:
  /v1/discovery/extractors:
    get:
      tags:
        - Discovery
      summary: List Available Feature Extractors
      description: >-
        Discover all available feature extractors with their capabilities,
        supported modalities, output features, and example usage. Use this to
        understand what extractors are available when configuring namespaces and
        collections in manifests.
      operationId: list_extractors_v1_discovery_extractors_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/ExtractorDiscovery'
                type: array
                title: Response List Extractors V1 Discovery Extractors Get
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ExtractorDiscovery:
      properties:
        name:
          type: string
          title: Name
          description: Feature extractor name (e.g., 'multimodal_extractor')
        version:
          type: string
          title: Version
          description: Feature extractor version (e.g., 'v1')
        description:
          type: string
          title: Description
          description: Human-readable description of what this extractor does
        supported_modalities:
          items:
            type: string
          type: array
          title: Supported Modalities
          description: List of supported input modalities (text, image, video, audio)
        output_features:
          items:
            additionalProperties: true
            type: object
          type: array
          title: Output Features
          description: List of features produced by this extractor
        input_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Input Schema
          description: >-
            JSON Schema for extractor inputs — what fields the extractor reads
            from source objects
        parameter_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Parameter Schema
          description: >-
            JSON Schema for tunable parameters (defaults, ranges, descriptions
            for every knob)
        output_schema:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Output Schema
          description: >-
            JSON Schema for output documents — what fields appear in extracted
            documents
        costs:
          anyOf:
            - $ref: '#/components/schemas/CostsInfo'
            - type: 'null'
          description: Credit cost information (tier, per-unit rates)
        type_mode:
          anyOf:
            - type: string
            - type: 'null'
          title: Type Mode
          description: >-
            What input types this extractor can handle: 'type_specific' (only
            one type, e.g. video-only) or 'multimodal' (handles multiple types
            with conditional processing). Type-specific extractors cannot use
            automatic-typed bucket properties.
        expected_input_types:
          anyOf:
            - additionalProperties:
                type: string
              type: object
            - type: 'null'
          title: Expected Input Types
          description: >-
            For type-specific extractors: maps input keys to required types
            (e.g., {'video': 'video', 'thumbnail': 'image'}). For multimodal
            extractors: null.
        inference_type:
          anyOf:
            - type: string
            - type: 'null'
          title: Inference Type
          description: >-
            Kind of real-time inference this extractor provides: 'embedding',
            'rerank', 'classify', 'generate', or 'general'. Determines which
            retriever stages are compatible. Null if the extractor is
            batch-only.
        supported_input_types:
          items:
            type: string
          type: array
          title: Supported Input Types
          description: Accepted input types (e.g., ['video', 'image'])
        max_inputs:
          additionalProperties:
            type: integer
          type: object
          title: Max Inputs
          description: 'Maximum number of inputs per type (e.g., {''video'': 1})'
        default_parameters:
          additionalProperties: true
          type: object
          title: Default Parameters
          description: Default parameter values — use as a starting point for tuning
        required_vector_indexes:
          anyOf:
            - items:
                additionalProperties: true
                type: object
              type: array
            - type: 'null'
          title: Required Vector Indexes
          description: >-
            Vector indexes produced by this extractor (name, dimensions,
            distance metric, feature_uri)
        position_fields:
          items:
            type: string
          type: array
          title: Position Fields
          description: >-
            Fields that uniquely identify each output document within a source
            object
        capabilities:
          items:
            type: string
          type: array
          title: Capabilities
          description: >-
            What this extractor can do: 'batch' (feature extraction during
            ingestion), 'realtime' (query-time inference for retriever stages)
        example_usage:
          additionalProperties: true
          type: object
          title: Example Usage
          description: >-
            Minimal working configuration for namespace + collection +
            input_mappings + parameters
      type: object
      required:
        - name
        - version
        - description
      title: ExtractorDiscovery
      description: |-
        Feature extractor discovery information.

        Provides comprehensive information about a feature extractor
        for agent-driven configuration and manifest generation.
      examples:
        - costs:
            rates:
              - credits_per_unit: 10
                description: Per minute of video processed
                unit: minute
            tier: 2
            tier_label: STANDARD
          description: Extracts embeddings from text, images, and video frames
          example_usage:
            collection:
              feature_extractor:
                input_mappings:
                  content: video
                name: multimodal_extractor
                parameters:
                  split_method: time
                  time_split_interval: 10
                version: v1
            namespace:
              feature_extractors:
                - name: multimodal_extractor
                  version: v1
          name: multimodal_extractor
          output_features:
            - name: multimodal_embedding
              type: embedding
              uri: mixpeek://multimodal_extractor@v1/multimodal_embedding
          parameter_schema:
            properties:
              split_method:
                default: time
                description: Video splitting strategy
                type: string
              time_split_interval:
                default: 10
                description: Interval in seconds for time splitting
                type: integer
            type: object
          supported_input_types:
            - video
            - image
          supported_modalities:
            - video
            - image
          version: v1
    ErrorResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Always false for error responses
          default: false
        status:
          type: integer
          title: Status
          description: HTTP status code for this error
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: Error details payload
      type: object
      required:
        - status
        - error
      title: ErrorResponse
      description: Error response model.
      examples:
        - error:
            details:
              id: ns_123
              resource: namespace
            message: Namespace not found
            type: NotFoundError
          status: 404
          success: false
    CostsInfo:
      properties:
        tier:
          type: integer
          maximum: 4
          minimum: 1
          title: Tier
          description: 'Cost tier (1-4): 1=SIMPLE, 2=MODERATE, 3=COMPLEX, 4=PREMIUM'
        tier_label:
          type: string
          title: Tier Label
          description: Human-readable tier label (SIMPLE, MODERATE, COMPLEX, PREMIUM)
        rates:
          items:
            $ref: '#/components/schemas/CostRate'
          type: array
          title: Rates
          description: >-
            List of cost rates for different input types this extractor
            processes
      type: object
      required:
        - tier
        - tier_label
        - rates
      title: CostsInfo
      description: >-
        Credit cost information for a feature extractor.


        Describes the pricing tier and standardized cost rates for using this
        extractor.

        Rates are defined using CostUnit types that align with extractor input
        types.
    ErrorDetail:
      properties:
        message:
          type: string
          title: Message
          description: Human-readable error message
        type:
          type: string
          title: Type
          description: Stable error type identifier (machine-readable)
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: >-
            Fine-grained error code for programmatic handling (e.g.,
            namespace_name_taken, feature_extractor_not_found). Present only
            when consumers may need to branch on a specific error condition.
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
          description: >-
            Optional structured details to help debugging (validation errors,
            IDs, etc.)
      type: object
      required:
        - message
        - type
      title: ErrorDetail
      description: Error detail model.
    CostRate:
      properties:
        unit:
          $ref: '#/components/schemas/CostUnit'
          description: The billing unit type
        credits_per_unit:
          type: integer
          minimum: 1
          title: Credits Per Unit
          description: Number of credits charged per unit
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Human-readable description of what this rate covers
      type: object
      required:
        - unit
        - credits_per_unit
      title: CostRate
      description: |-
        Cost rate for a specific billing unit.

        Defines how many credits are charged per unit of a specific type.

        Example:
            CostRate(
                unit=CostUnit.MINUTE,
                credits_per_unit=200,
                description="Video processing"
            )
            # Means: 200 credits per minute of video
    CostUnit:
      type: string
      enum:
        - minute
        - image
        - 1k_tokens
        - page
        - face
        - extraction
      title: CostUnit
      description: |-
        Standard billing units aligned with extractor input types.

        Each unit represents a measurable quantity that extractors process:
        - MINUTE: Video/audio duration in minutes
        - IMAGE: Per image processed
        - TOKENS_1K: Text tokens in thousands
        - PAGE: Document pages (PDF, etc.)
        - FACE: Detected faces in images/video
        - EXTRACTION: Flat per-operation cost

````