---
title: "Update document resource"
method: PATCH
path: "/knowledge-base/resources/documents/{id}"
tags: ["Knowledge Base"]
---

# Update document resource

`PATCH /knowledge-base/resources/documents/{id}`

Apply a partial update to a document (FILE-type) resource. Omitted
fields are left untouched. To swap the underlying file, use
`POST /v1/knowledge-base/resources/documents/{id}/upload`. Returns
404 for an unknown id or a URL-type resource.

## Path parameters

- `id` string, required

## Request body

- UpdateDocumentResourceInput
  - `title` string — The title of the document resource.
  - `description` string, nullable — A description for the document resource. Pass `null` to clear.
  - `ownerAssignment` KnowledgeBaseResourceActorAssignmentInput
    - `type` 'User', required — The type of actor. Currently only "User" is supported.
    - `id` string, required — The unique identifier of the user.
  - `customerVisibility` 'PRIVATE' | 'SHAREABLE' | 'REQUEST_ACCESS' | 'PUBLIC' — Customer-facing visibility of a knowledge-base resource on the Trust Center. Use {@link CUSTOMER_VISIBILITY_TO_DB} to translate to {@link TrustCenterResourceVisibility} when persisting.
  - `downloadPermission` 'VIEW_ONLY' | 'VIEW_AND_DOWNLOAD' — Customer-facing download permission for a knowledge-base resource on the Trust Center. Use {@link DOWNLOAD_PERMISSION_TO_DB} to translate to {@link TrustKnowledgeBaseResourceDownloadSetting} when persisting.
  - `isUsedInQuestionnaires` boolean — Whether the resource should be used for question-answering in Questionnaire Automation.
  - `expirationDate` string, nullable — Expiration date in ISO 8601 format. Pass `null` to clear.
  - `tags` TagInput[] — Tags to associate with the resource. A non-empty array replaces the existing tag set; pass `[]` to clear all tags.
    - `categoryId` string, required
    - `tagId` string, required
  - `categoryId` string, nullable — Trust Center category id to associate this resource with. Pass `null` to move the resource to uncategorized. Only valid when the resource's effective visibility (after applying any patched `customerVisibility`) is REQUEST_ACCESS or PUBLIC; other combinations and unknown ids return an InvalidInputError.

## Response `200`

Ok

- KnowledgeBaseDocumentResourceOutput
  - `id` string, required
  - `type` 'FILE', required
  - `title` string, required
  - `description` string, nullable, required
  - `fileUrl` string, required — Presigned S3 URL for the underlying document. Expires after 1 hour due to AWS IAM Role limitations on presigned URL lifetimes. Re-fetch the resource to obtain a fresh URL once this one expires.
  - `customerVisibility` 'PRIVATE' | 'SHAREABLE' | 'REQUEST_ACCESS' | 'PUBLIC' | 'null', nullable, required
  - `downloadPermission` 'VIEW_ONLY' | 'VIEW_AND_DOWNLOAD' | 'null', nullable, required
  - `isUsedInQuestionnaires` boolean, nullable, required
  - `ownerAssignment` KnowledgeBaseResourceActorAssignment, required
    - `type` 'User' | 'Team', required
    - `id` string, required
    - `displayName` string, nullable, required
  - `expirationStatus` 'CURRENT' | 'EXPIRED', required — Customer-facing expiration status used by knowledge-base API responses (answer library entries and resources). Derived from the persisted `expiresAt` field at read time.
  - `expirationDate` string, nullable, required
  - `lastUpdated` string, required
  - `lastVerified` string, nullable, required
  - `tags` TagInput[], required
    - `categoryId` string, required
    - `tagId` string, required
  - `categoryId` string, nullable, required — Trust Center category id the resource is currently filed under, or `null` if uncategorized (or not on the Trust Center, which is the case for `PRIVATE` / `SHAREABLE` resources).

---

[API](https://skmtc.net/vanta/apis/build-integrations.md) · [All operations](https://skmtc.net/vanta/apis/build-integrations/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vanta/build-integrations/revisions/6c1f7590538b/schema)
