---
title: "Get All Discovery Information"
method: GET
path: "/v1/discovery"
tags: ["Discovery"]
---

# Get All Discovery Information

`GET /v1/discovery`

Returns combined discovery information including extractors, stages, and manifest schema in a single request. Use this for comprehensive capability discovery.

## Response `200`

Successful Response

- DiscoveryResponse — Combined discovery response with all available resources.
  - `extractors` ExtractorDiscovery[] — Available feature extractors
    - `name` string, required — Feature extractor name (e.g., 'multimodal_extractor')
    - `version` string, required — Feature extractor version (e.g., 'v1')
    - `description` string, required — Human-readable description of what this extractor does
    - `supported_modalities` string[] — List of supported input modalities (text, image, video, audio)
    - `output_features` object[] — List of features produced by this extractor
    - `input_schema` object, nullable — JSON Schema for extractor inputs — what fields the extractor reads from source objects
    - `parameter_schema` object, nullable — JSON Schema for tunable parameters (defaults, ranges, descriptions for every knob)
    - `output_schema` object, nullable — JSON Schema for output documents — what fields appear in extracted documents
    - `costs` CostsInfo — 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.
      - `tier` integer, required — Cost tier (1-4): 1=SIMPLE, 2=MODERATE, 3=COMPLEX, 4=PREMIUM
      - `tier_label` string, required — Human-readable tier label (SIMPLE, MODERATE, COMPLEX, PREMIUM)
      - `rates` CostRate[], required — List of cost rates for different input types this extractor processes
        - `unit` 'minute' | 'image' | '1k_tokens' | 'page' | 'face' | 'extraction', required — 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
        - `credits_per_unit` integer, required — Number of credits charged per unit
        - `description` string, nullable — Human-readable description of what this rate covers
    - `type_mode` string, nullable — 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` object, nullable — For type-specific extractors: maps input keys to required types (e.g., {'video': 'video', 'thumbnail': 'image'}). For multimodal extractors: null.
    - `inference_type` string, nullable — 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` string[] — Accepted input types (e.g., ['video', 'image'])
    - `max_inputs` object — Maximum number of inputs per type (e.g., {'video': 1})
    - `default_parameters` object — Default parameter values — use as a starting point for tuning
    - `required_vector_indexes` object[], nullable — Vector indexes produced by this extractor (name, dimensions, distance metric, feature_uri)
    - `position_fields` string[] — Fields that uniquely identify each output document within a source object
    - `capabilities` string[] — What this extractor can do: 'batch' (feature extraction during ingestion), 'realtime' (query-time inference for retriever stages)
    - `example_usage` object — Minimal working configuration for namespace + collection + input_mappings + parameters
  - `stages` StageDiscovery[] — Available retriever stages
    - `stage_id` string, required — Unique identifier for the stage
    - `description` string, required — Human-readable description of stage behavior
    - `category` string, required — Transformation category: filter, sort, reduce, apply, enrich
    - `icon` string, required — Lucide React icon identifier
    - `parameter_schema` object, nullable — JSON Schema for stage parameters
    - `example_config` object, nullable — Example stage configuration
    - `common_use_cases` string[] — Common scenarios where this stage is useful
    - `cost_tier` string — Relative cost tier: cheap, moderate, expensive
    - `requires_collections` boolean — Whether this stage requires collection access
  - `manifest_schema` ManifestSchemaDiscovery — Manifest schema discovery for agent-driven configuration.
    - `manifest_version` string, required — Current manifest schema version
    - `resource_types` string[], required — List of supported resource types
    - `schemas` object, required — JSON Schema for each resource type
    - `dependency_graph` object, required — Resource dependencies (key depends on values)
    - `examples` object — YAML example for each resource type

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/versions/220a3b263fda/schema)
