Collections

Update Collection

Changed on

Update mutable collection fields (collection_name, description, taxonomy_applications, enabled)

patch/v1/collections/{collection_identifier}

Request

  • Base URL: https://api.mixpeek.com
  • URL: https://api.mixpeek.com/v1/collections/{collection_identifier}
  • Auth: HTTP bearer and API key in header X-Namespace

Path parameters

collection_identifierstring required

The ID or name of the collection to update

Request body

object required

Response

Successful Response

collection_idstring

NOT REQUIRED (auto-generated). Unique identifier for this collection. Used for: API paths, document queries, pipeline references. Format: 'col_' prefix + 10 random alphanumeric characters. Stable after creation - use for all collection references.

collection_namestring required

REQUIRED. Human-readable name for the collection. Must be unique within the namespace. Used for: Display, lookups (can query by name or ID), organization. Format: Alphanumeric with underscores/hyphens, 3-100 characters. Examples: 'product_embeddings', 'video_frames', 'customer_documents'.

descriptionstring nullable

NOT REQUIRED. Human-readable description of the collection's purpose. Use for: Documentation, team communication, UI display. Common pattern: Describe what the collection contains and what processing is applied.

source_bucket_schemasobject nullable

NOT REQUIRED (auto-computed). Snapshot of bucket schemas at collection creation. Only populated for multi-bucket collections (source.type='bucket' with multiple bucket_ids). Key: bucket_id, Value: BucketSchema at time of collection creation. Used for: Schema compatibility validation, document lineage, debugging. Schema snapshot is immutable - bucket schema changes after collection creation do not affect this. Single-bucket collections may omit this field (schema in input_schema is sufficient).

index_mapobject nullable

Which feature URI answers each URI a search names, for a collection that opted into feature URIs as its version contract. Null (the default) means not opted in: a search uses the URI it names. Each key is one of the collection's own feature URIs; each value is a URI the collection holds vectors for, listed in vector_indexes (its own, or one a completed reembed.target_feature_uri added). Switching to a new embedding model and rolling back are both PATCH /v1/collections/{collection_id} with a new map; neither rewrites a vector. Every search result reports the URI that scored it in feature_uri.

embedding_taskstring nullable

Override the embedding task hint for instruction-aware models (E5, Gemini). Defaults to 'retrieval_document' for indexing pipelines. Values: retrieval_document, retrieval_query, semantic_similarity, classification, clustering. Applied to all task-aware embedding models in this collection's extractor pipeline.

enabledboolean

NOT REQUIRED (defaults to True). Whether the collection accepts new documents. False: Collection exists but won't process new objects. True: Active and processing. Use for: Temporarily disabling collections without deletion.

metadataobject nullable

NOT REQUIRED. Additional user-defined metadata for the collection. Arbitrary key-value pairs for custom organization, tracking, configuration. Not used by the platform - purely for user purposes. Common uses: team ownership, project tags, deployment environment.

trigger_idstring nullable

NOT REQUIRED. ID of the linked trigger for scheduled re-processing. Automatically set when a schedule is configured.

created_atstring date-time nullable

Timestamp when the collection was created. Automatically set by the system when the collection is first saved to the database.

updated_atstring date-time nullable

Timestamp when the collection was last updated. Automatically updated by the system whenever the collection is modified.

lifecycle_statestring

Storage lifecycle state: 'active' (vector store + S3), 'cold' (S3 only), 'archived' (metadata only). Managed via lifecycle API.

s3_vector_indexstring nullable

S3 Vectors index name for this collection (e.g. 'col_{collection_id}').

last_lifecycle_transitionstring date-time nullable

Timestamp of the most recent lifecycle state change.

document_countinteger nullable

Number of documents in the collection

schema_versioninteger

Version number for the output_schema. Increments automatically when schema is updated via document sampling. Used to track schema evolution and trigger downstream collection schema updates.

last_schema_syncstring date-time nullable

Timestamp of last automatic schema sync from document sampling. Used to debounce schema updates (prevents thrashing).

schema_sync_enabledboolean

Whether automatic schema discovery and sync is enabled for this collection. When True, schema is periodically updated by sampling documents. When False, schema remains fixed at creation time.

document_schemaobject nullable

NOT REQUIRED. JSON Schema for validating documents on create/update. When set with schema_validation='strict', non-conforming documents are rejected (422). When set with schema_validation='warn', violations are recorded but document is accepted. Schema follows JSON Schema draft-07 format. Only validates user-defined fields (system fields like _internal, collection_id, document_id are excluded from validation).

schema_validation'strict' | 'warn' | 'off'

Document schema validation mode. 'strict': reject non-conforming documents with 422. 'warn': accept but attach _schema_violations field to the document. 'off': no validation (default, preserves current behavior).

vector_countinteger nullable

Total number of vector entries across all documents in this collection. Computed as document_count * number_of_vector_indexes. Each document stores one vector per configured vector index (e.g. a collection with 1 embedding produces 1 vector per document).

taxonomy_countinteger nullable

Number of taxonomies connected to this collection

retriever_countinteger nullable

Number of retrievers connected to this collection

indexing_statusstring nullable

Whether every vector the vector store has accepted for this collection's namespace is searchable now. This is separate from the collection's own RUNNING/COMPLETED status: a collection can be COMPLETED while this reads 'indexing'. One of: 'quiesced' (everything the store has accepted for this namespace is searchable; documents still moving through extraction have not reached the store yet, so compare document_count with what you sent if you need completeness), 'indexing' (some accepted vectors are waiting to become searchable and will be shortly; a search run now may miss them), 'blocked' (indexing cannot proceed without intervention, and waiting will not resolve it), 'unknown' (the signal is unavailable, for example an older store build or a transient error; treat it as not confirmed ready). Null when this endpoint did not compute it, for example a list request whose store reading took too long.

indexing_status_scopedboolean nullable

True when indexing_status describes this collection's namespace alone. False when the store could only report the whole shard, which several namespaces can share, so an 'indexing' or 'blocked' value may come from another namespace's backlog. A 'quiesced' reading is always scoped.

warningsstring[] nullable

NOT REQUIRED. Non-fatal problems detected while creating the collection. The collection WAS created; these describe things that will make it produce nothing at run time. The case this exists for: input_mappings can name a field that is valid in the bucket SCHEMA and absent from the bucket's OBJECTS, because a sync with no schema_mapping writes its blob to the default property instead. Schema validation passes, the batch then finds nothing, and the batch error arrives long after the decision was made. A warning here reaches the caller while they can still change it.

Example response

{
  "collection_id": "col_a1b2c3d4e5",
  "collection_name": "article_embeddings",
  "description": "Simple text collection: News articles with text embeddings from bucket source",
  "enabled": true,
  "feature_extractor": {
    "feature_extractor_name": "text_extractor",
    "field_passthrough": [
      {
        "source_path": "title"
      }
    ],
    "input_mappings": {
      "text": "content"
    },
    "version": "v1"
  },
  "input_schema": {
    "properties": {
      "title": {
        "type": "string"
      },
      "content": {
        "type": "text"
      }
    }
  },
  "output_schema": {
    "properties": {
      "title": {
        "type": "string"
      },
      "text_extractor_v1_embedding": {
        "type": "array"
      }
    }
  },
  "source": {
    "bucket_id": "bkt_articles",
    "type": "bucket"
  }
}

Changes

    • warning

      added the new markdown enum value to the /// response property for the response status

    • warning

      added the new markdown enum value to the /// response property for the response status

    • warning

      added the new markdown enum value to the ///// response property for the response status

    • warning

      added the new markdown enum value to the ///// response property for the response status

    • info

      added the optional property //// to the response with the status

    • info

      added the optional property ////// to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status

    • info

      added the optional property to the response with the status