Deze referentie is alleen in het Engels. Naar het Nederlandse REST API-overzicht

Diese Referenz gibt es nur auf Englisch. Zur deutschen REST-API-Übersicht

Cette référence existe uniquement en anglais. Aller à la présentation de l'API REST en français

Esta referencia solo está en inglés. Ir a la introducción de la API REST en español

PATCH/drive-documents/{drive_document}

Write a document body

PATCHhttps://<your-url>/api/v2/drive-documents/{drive_document}

MCP id drive-documents.updateAlso on this path: GET Read a document body, DELETE Delete a document body

View as Markdown openapi.json

Replaces or extends a document body.

Access

Permission
project_drive::create

Without it: 403 insufficient-permission.

Rate cost
1 unit, write bucket. A write costs the same whatever view you ask for.
Also
Accepts If-Match. Never cached: private, no-store. Unknown body keys are refused, never dropped.

Both are checked, scope first. A token never does more than its user. How access is checked

This is the one route in the API that writes one: the drive item itself carries no body. content is GitHub-Flavored Markdown, an empty body is rejected and any key other than content and mode is a 422. By default mode is replace: the Markdown you send becomes the whole document, which overwrites whatever somebody else typed since your last read and discards, permanently, the text colours, highlights, alignment and @mentions Markdown cannot express; read ?include=content_html on the document first if it may contain them. With mode: append the Markdown is added after the existing body and nothing already there is touched, which is the safe way to add notes to a shared document. The write goes through the live collaboration session, so anyone with the document open sees it immediately; if the collaboration server refuses the content, or is unavailable while the document is under collaborative editing, the write is refused with a 422 on /content rather than silently lost. Send If-Match with the ETag from your last read to detect a concurrent edit, which answers 412. Treat it as best-effort only: this resource carries no revision number and updated_at is second-precision, so two writes inside the same second are indistinguishable. The declared permission is project_drive::create (editing is part of the create permission); the other three drive prefixes apply by the owning item's owner type, and the record rule is edit access on that item. Note that the owning item being archived does not block this write, even though the item itself then reads as 404 without trashed=with; restore the item first if you want plnnrly and the API to agree.

Path parameters

drive_documentintegerRequired

The DriveDocument's numeric id.

Query parameters

Unknown parameters are refused with 400, naming the parameter.

viewstring

Which field set to render.

summarydetaildefault

Request headers

X-Request-Idstringpattern

A correlation id of your own. It is recorded in our logs next to the server's request id but never returned: the response header always carries the server's id. A value that does not match the pattern is discarded silently, never rejected.

If-Matchstring

The ETag a write is conditional on. A stale validator is 412 precondition-failed.

Request body

Unknown keys are refused with 422, naming the key.

contentstring≤ 262144Required

The document body as GitHub-Flavored Markdown: headings, lists, task lists (- [ ]), tables, code fences, links and images all survive. Detail-only: pass ?view=detail to get it on the collection. Markdown cannot express text colours, highlights, alignment or @mentions, so read ?include=content_html first if the document may contain them: a read of content followed by a PATCH of it discards all four permanently.

modestring

Write-only, on update only: replace (the default) makes content the whole body; append adds it after the existing body and keeps everything already there, colours and @mentions included.

replaceappend

Response 200

Returns a DriveDocument in the detail view.

Headers

ETag
A strong validator of exactly this representation.
RateLimit
The IETF httpapi-ratelimit-headers form of your remaining allowance on the tightest bucket this request touched.
RateLimit-Policy
The ceiling and window of that bucket, as <limit>;w=<seconds>.
X-Request-Id
The server-generated ULID correlating this response with our logs.

Every response also carries Cache-Control, Vary, X-Content-Type-Options, X-Plnnrly-Api-Version, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. Headers and versioning

Errors

7 errors every operation can return: 400, 401, 404, 406, 429, 500, 503

This path allows GET, PATCH, DELETE. Anything else answers 405.