Update document metadata
PATCH a document to change its fields. The body is a partial update — send only the fields you want to change; you never resend vectors. Any fields you pass are merged into the document.
Set and remove metadata keys
PUT and PATCH treat metadata the same way. Each key you send is set on the stored
metadata. Keys you omit stay as they are. A key set to null is removed.
metadata.status and removes metadata.stale_field. Every other metadata key
is untouched. A PUT behaves the same way, so a key missing from a PUT body stays.
"metadata": null returns a 422. To remove keys, name each one with a null value.
To update many documents at once, use PATCH /v1/collections/{collection_id}/documents/bulk.
Send update_data with the field-value pairs to apply, and filters to choose which
documents receive them. Omitting filters updates every document in the collection.
Updating metadata does not re-run extraction or change vectors — it only edits the stored payload. To change the embedding model, see Migrate Embedding Models.
PATCH /v1/collections/{collection_id}/documents/{document_id}/acl — see Permissions.
Object metadata vs document metadata are separate. The
PATCH above edits a document (a processed, searchable record in a collection). To edit the source object in the bucket, use PATCH /v1/buckets/{bucket_id}/objects/{object_id} and send the object’s custom fields flat at the root of the body, for example {"campaign_id": "camp_002"}. Only the fields you send change. Editing one does not change the other, and re-processing an object regenerates its documents from the object’s current state.Delete data
Deleting many documents
DELETE /v1/collections/{collection_id}/documents/batch takes document_ids or
filters, and the two are mutually exclusive. Which one you send decides whether the
call is synchronous, so the response shape differs between them.
reason is optional on both modes and is recorded on the DOCUMENT_BULK_SOFT_DELETED
audit entry.
Synced sources
If documents came from a storage sync, the sync’sreconcile.on_delete is true by default, so deleting a file in the source (S3, Google Drive, etc.) automatically removes the corresponding object and its derived documents. Set reconcile.on_delete to false to keep Mixpeek objects when the source asset is deleted.
Related
- Documents — document structure and payload
- Syncs — source-deletion cascade (
on_delete) - Ingest Data — objects, batches, collections

