Skip to main content
PATCH
/
v1
/
retrievers
/
{retriever_id}
Patch Retriever
curl --request PATCH \
  --url https://api.mixpeek.com/v1/retrievers/{retriever_id} \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --header 'X-Namespace: <x-namespace>' \
  --data '
{
  "retriever_name": "product_search_v2",
  "description": "Enhanced version with better caching",
  "tags": [
    "production",
    "v2"
  ]
}
'
{
  "retriever": {
    "retriever_name": "<string>",
    "collection_ids": [
      "<string>"
    ],
    "stages": [
      {
        "stage_name": "<string>",
        "config": {},
        "stage_type": "filter",
        "batch_size": "<string>",
        "description": "<string>"
      }
    ],
    "retriever_id": "<string>",
    "description": "<string>",
    "input_schema": {},
    "budget_limits": {
      "max_credits": 1,
      "max_time_ms": 1
    },
    "feature_dependencies": [
      {
        "extractor": "<string>",
        "version": "<string>",
        "scheme": "mixpeek",
        "output": "<string>"
      }
    ],
    "tags": [
      "<string>"
    ],
    "version": 1,
    "created_at": "2023-11-07T05:31:56Z",
    "updated_at": "2023-11-07T05:31:56Z",
    "created_by": "<string>",
    "updated_by": "<string>"
  }
}

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.

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'

Path Parameters

retriever_id
string
required

Retriever ID or name.

Body

application/json

Request to update a retriever's metadata.

IMPORTANT: Partial Updates with Controlled Mutability

This endpoint allows updating ONLY metadata fields. Core retriever logic is immutable to ensure consistency for dependent resources (taxonomies, cached results, etc.).

✅ Fields You CAN Update (Metadata Only):

  • retriever_name: Rename the retriever
  • description: Update documentation
  • tags: Update organization tags

❌ Fields You CANNOT Update (Immutable Core Logic):

  • input_schema: Input field definitions (breaks dependent taxonomies)
  • stages: Retriever stages and configurations (changes matching behavior)
  • collection_ids: Target collections (changes data sources)

Behavior:

  • All fields are OPTIONAL - provide only what you want to update
  • Version number automatically increments on each update
  • Empty updates (no fields provided) will be rejected with 400 error
  • For structural changes, create a new retriever version instead

Why This Design?

  • Taxonomies reference retrievers by ID and expect consistent behavior
  • Cached results remain valid after metadata-only changes
  • Version tracking enables auditing and rollback
retriever_name
string | null

Updated retriever name. OPTIONAL - only provide if you want to rename the retriever.

Minimum string length: 1
Example:

"product_search_v2"

description
string | null

Updated human-readable description. OPTIONAL - only provide if you want to update the description.

Example:

"Enhanced version with better caching"

tags
string[] | null

Updated tags for organization and filtering. OPTIONAL - replaces existing tags if provided.

Example:
["production", "v2"]

Response

Successful Response

Response after updating a retriever.

retriever
RetrieverConfig · object
required

Updated retriever configuration.