Skip to main content
POST
/
v1
/
taxonomies
/
execute
/
{taxonomy_identifier}
Test taxonomy configuration (validation only)
curl --request POST \
  --url https://api.mixpeek.com/v1/taxonomies/execute/{taxonomy_identifier} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --header 'X-Namespace: <x-namespace>' \
  --data '{
  "batch_size": 1000,
  "join_mode": "on_demand",
  "source_collection_id": "col_catalog_v2",
  "target_collection_id": "col_catalog_enriched_v2",
  "taxonomy": {
    "config": {
      "input_mappings": [
        {
          "input_key": "image_vector",
          "path": "features.clip",
          "source_type": "vector"
        }
      ],
      "retriever_id": "ret_clip_v1",
      "source_collection": {
        "collection_id": "col_products_v1"
      },
      "taxonomy_type": "flat"
    },
    "input_mappings": [
      {
        "input_key": "image_vector",
        "path": "features.clip",
        "source_type": "vector"
      }
    ],
    "namespace_id": "ns_123",
    "retriever_id": "ret_clip_v1",
    "taxonomy_name": "product_tags"
  }
}'
{
  "stats": {
    "processed_docs": 0,
    "batches": 0,
    "errors": 0
  },
  "results": [
    {}
  ]
}

Authorizations

Authorization
string
header
required

Bearer token authentication using your API key. Format: 'Bearer your_api_key'. To get an API key, create an account at mixpeek.com/start and generate a key in your account settings.

Headers

Authorization
string
required

REQUIRED: Bearer token authentication using your API key. Format: 'Bearer sk_xxxxxxxxxxxxx'. You can create API keys in the Mixpeek dashboard under Organization Settings.

Examples:

"Bearer sk_live_abc123def456"

"Bearer sk_test_xyz789"

X-Namespace
string
required

REQUIRED: Namespace identifier for scoping this request. All resources (collections, buckets, taxonomies, etc.) are scoped to a namespace. You can provide either the namespace name or namespace ID. Format: ns_xxxxxxxxxxxxx (ID) or a custom name like 'my-namespace'

Examples:

"ns_abc123def456"

"production"

"my-namespace"

Path Parameters

taxonomy_identifier
string
required

Taxonomy ID or name to validate

Query Parameters

version
integer | null

Optional taxonomy version (defaults to latest)

Body

application/json
  • ExecuteTaxonomyRequest
  • Payload

Request model for on-demand taxonomy validation and testing ONLY.

āš ļø IMPORTANT: This endpoint is ONLY for testing taxonomy configuration with sample documents.

DO NOT USE THIS FOR BATCH ENRICHMENT: āŒ Do NOT use this to enrich an entire collection āŒ Do NOT use source_collection_id expecting batch processing āŒ Do NOT use target_collection_id expecting persistence

HOW TAXONOMY ENRICHMENT ACTUALLY WORKS: āœ… Automatic during ingestion: Attach taxonomies to collections via taxonomy_applications āœ… On-the-fly in retrieval: Add taxonomy_join stage to retriever pipelines

This endpoint validates:

  • Taxonomy configuration is correct
  • Retriever can find matching taxonomy nodes
  • Enrichment fields are properly applied

For production enrichment, see:

  • Collections API: attach taxonomies via taxonomy_applications field
  • Retrievers API: add taxonomy_join stage for on-the-fly enrichment
taxonomy
object
required

Full taxonomy model with configuration (fetched from DB by controller)

Examples:
{
"config": {
"default_input_mappings": [
{
"input_key": "image_vector",
"path": "features.clip_vit_l_14",
"source_type": "vector"
}
],
"default_retriever_id": "ret_clip_v1",
"source_collection": { "collection_id": "col_products_v1" },
"taxonomy_type": "flat"
},
"namespace_id": "ns_123",
"taxonomy_name": "product_tags",
"taxonomy_type": "flat"
}
{
"config": {
"build_mode": "explicit",
"default_input_mappings": [
{
"input_key": "face_vec",
"path": "features.face",
"source_type": "vector"
}
],
"default_retriever_id": "ret_face_v1",
"hierarchical_nodes": [
{ "collection_id": "col_employees_v1" },
{
"collection_id": "col_executives_v1",
"parent_collection_id": "col_employees_v1"
}
],
"taxonomy_type": "hierarchical"
},
"namespace_id": "ns_123",
"taxonomy_name": "org_hierarchy",
"taxonomy_type": "hierarchical"
}
retriever
object | null

Optional retriever configuration override for testing. If omitted, uses the retriever configured in the taxonomy. Retriever model.

source_documents
Source Documents Ā· object[] | null

Sample documents to test enrichment (typically 1-5 docs). Results are returned immediately, not persisted. āš ļø Do NOT pass collection_id expecting batch processing!

source_collection_id
string | null

āš ļø IGNORED IN ON_DEMAND MODE. This field exists for legacy compatibility only. To enrich collections, use taxonomy_applications on the collection.

target_collection_id
string | null

āš ļø IGNORED IN ON_DEMAND MODE. This field exists for legacy compatibility only. Results are never persisted via this endpoint.

join_mode
enum<string>

Must be 'on_demand'. BATCH mode is NOT supported via API. Batch enrichment is automatic (triggered by engine during ingestion).

Available options:
on_demand,
batch
batch_size
integer
default:1000

Batch size for the scroll iterator

Required range: 1 <= x <= 10000
scroll_filters
object | null

Additional filters applied to the source collection prior to enrichment. Represents a logical operation (AND, OR, NOT) on filter conditions.

Allows nesting with a defined depth limit.

Also supports shorthand syntax where field names can be passed directly as key-value pairs for equality filtering (e.g., {"metadata.title": "value"}).

Response

Successful Response

stats
object
required
results
Results Ā· object[] | null