Skip to main content
PATCH
/
v1
/
taxonomies
/
{taxonomy_identifier}
Partially Update Taxonomy
curl --request PATCH \
  --url https://api.mixpeek.com/v1/taxonomies/{taxonomy_identifier} \
  --header 'Content-Type: application/json' \
  --data '
{
  "taxonomy_name": "<string>",
  "description": "<string>",
  "metadata": {}
}
'
{
  "taxonomy_name": "<string>",
  "config": {
    "input_mappings": [
      {
        "input_key": "image_vector",
        "path": "features.clip_vit_l_14",
        "source_type": "vector"
      }
    ],
    "retriever_id": "ret_clip_v1",
    "source_collection": {
      "collection_id": "col_products_v1",
      "enrichment_fields": [
        {
          "field_path": "metadata.tags",
          "merge_mode": "append"
        }
      ]
    },
    "taxonomy_type": "flat"
  },
  "taxonomy_id": "<string>",
  "version": 1,
  "description": "<string>",
  "retriever_id": "<string>",
  "input_mappings": [
    {
      "input_key": "<string>",
      "source_type": "payload",
      "path": "<string>",
      "override": "<unknown>"
    }
  ],
  "ready": true,
  "created_at": "2023-11-07T05:31:56Z",
  "metadata": {}
}

Headers

Authorization
string

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 YOUR_API_KEY"

"Bearer YOUR_STRIPE_API_KEY"

X-Namespace
string

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

Body

application/json

Request to update a taxonomy's metadata.

IMPORTANT: Partial Updates with Controlled Mutability

This endpoint allows updating ONLY metadata fields. Core taxonomy logic is immutable to ensure consistency for join history and dependent resources.

✅ Fields You CAN Update (Metadata Only):

  • taxonomy_name: Rename the taxonomy
  • description: Update documentation
  • metadata: Update custom metadata fields

❌ Fields You CANNOT Update (Immutable Core Logic):

  • config: Taxonomy configuration (retriever_id, input_mappings, collections, hierarchy)
  • taxonomy_type: Type (flat vs hierarchical)
  • retriever_id: Associated retriever
  • input_mappings: Field mappings
  • enrichment_fields: Enrichment configuration

Need to Modify Core Logic? Use POST /taxonomies/{taxonomy_id}/clone instead. Cloning creates a new taxonomy with a new ID, allowing you to:

  • Change retriever or input mappings
  • Modify enrichment fields
  • Update collection configuration
  • Change taxonomy hierarchy

Behavior:

  • All fields are OPTIONAL - provide only what you want to update
  • Empty updates (no fields provided) will be rejected with 400 error
  • Original taxonomy remains unchanged (no destructive operations)

Why This Design?

  • Join history is tied to specific taxonomy configuration
  • Changing retriever would invalidate previous joins
  • Version tracking enables auditing and rollback
taxonomy_name
string | null

Updated name for the taxonomy

description
string | null

Updated description for the taxonomy

metadata
Metadata · object

Updated metadata for the taxonomy

Response

Successful Response

Response model for a taxonomy.

taxonomy_name
string
required

A unique name for the taxonomy within the namespace.

config
FlatTaxonomyConfig · object
required

Configuration for a flat taxonomy - single source collection with one retriever.

Example:
{
  "input_mappings": [
    {
      "input_key": "image_vector",
      "path": "features.clip_vit_l_14",
      "source_type": "vector"
    }
  ],
  "retriever_id": "ret_clip_v1",
  "source_collection": {
    "collection_id": "col_products_v1",
    "enrichment_fields": [
      {
        "field_path": "metadata.tags",
        "merge_mode": "append"
      }
    ]
  },
  "taxonomy_type": "flat"
}
taxonomy_id
string

Unique identifier for the taxonomy

version
integer
default:1

Monotonic version number of the taxonomy configuration

Required range: x >= 1
description
string | null

Optional human-readable description.

retriever_id
string | null

Optional taxonomy-level retriever (prefer per-layer).

input_mappings
InputMapping · object[] | null

Optional taxonomy-level inputs (prefer per-layer).

ready
boolean
default:true

Whether the taxonomy is ready for use. False for async inference (cluster/LLM) that needs processing. True for flat/explicit hierarchies.

created_at
string<date-time>

Creation timestamp for this taxonomy record

metadata
Metadata · object

Additional user-defined metadata for the taxonomy