---
title: "Update document metadata"
method: PATCH
path: "/contents/v1/documents/{content_id}"
tags: ["Documents"]
---

# Update document metadata

`PATCH /contents/v1/documents/{content_id}`

Partially update a document's metadata. Send only the fields you want to change.

- **`tags`**: Array of **tag IDs** (UUIDs) to assign to the document. This replaces the document's current tag set, so you can add or remove tags by including the full list you want applied. Each ID must refer to an existing tag (use **POST** `/contents/v1/tags` to create one, or **GET** `/contents/v1/tags` to list IDs). If any ID is invalid, the API returns `400` with error code `INVALID_TAGS_ERROR`.
- **`share_with_org`**: When `true`, the document is available to all members of your organization. When `false`, only you can access it.

## Path parameters

- `content_id` string, required

## Request body

- DocumentUpdatePayload — Fields to update on a document. Include only the properties you want to change.
  - `tags` string[] — Tag IDs to assign to the document. Replaces the current tag assignment. Every ID must exist; otherwise the API returns `INVALID_TAGS_ERROR`.
  - `share_with_org` boolean — If true, all members of your organization can access the document. If false, only you can access it.

## Response `200`

Updated document metadata.

- DocumentListItem — Metadata for a single document. Returned by List documents and Get document. Use the id (content_id) with Get annotated document or Get original document to retrieve the file content.
  - `id` string, required — Content ID: unique 32-character uppercase hexadecimal identifier for the document. Use this when calling Get document, Get annotated document, or Get original document.
  - `file_name` string, required — Original file name of the uploaded document.
  - `user_id` string, required — ID of the user who uploaded the document.
  - `org_id` string, required — ID of the organization the document belongs to.
  - `rp_collection_id` string — ID of the collection the document belongs to. This is applicable only for emails and attachments.
  - `raw_size` integer — Size of the raw document in bytes.
  - `request_origin` 'email' | 'investment_research' | 'sharepoint' | 'file_upload' — Origin of the content ingestion request: how the document entered the platform.
  - `content_type` string — MIME type of the document.
  - `status` 'pending' | 'processing' | 'completed' | 'failed', required — Processing status of the document.
  - `shared_with_orgs` string[] — List of organization IDs the document is shared with.
  - `created_at` string, date-time, required — Timestamp when the document was created.
  - `updated_at` string, date-time, required — Timestamp when the document was last updated.
  - `published_at` string, date-time, required — Timestamp when the document was published. This is the reference timestamp used for search and retrieval.
  - `connector_id` string, uuid — ID of the connector used to upload the document.
  - `error_code` string, nullable — Error code if the document processing failed.
  - `delete_started_ts` string, date-time, nullable — Timestamp when document deletion started, if applicable.
  - `file_metadata` object, nullable — Additional metadata about the file.
  - `tags` Tag[] — Tags associated with the document.
    - `id` string, required — Unique identifier for the tag.
    - `name` string, required — Name of the tag (e.g. `from:user@email.com` for email; `broker:Broker Name` for investment research).

## Other responses

- `400` — Invalid request body (e.g. one or more tag IDs do not exist).
- `401` — Unauthorized - Invalid or missing API key.
- `403` — You do not have permission to update this document.
- `404` — No document found with this content_id.

---

[API](https://skmtc.dev/bigdata/apis/bigdata-structured-data-api.md) · [All operations](https://skmtc.dev/bigdata/apis/bigdata-structured-data-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bigdata/bigdata-structured-data-api/revisions/18082de268c4/schema)
