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

POST/drive-items/{drive_item}/uploads

Start a file upload on a drive item

POSThttps://<your-url>/api/v2/drive-items/{drive_item}/uploads

MCP id drive-items.uploads.store

View as Markdown openapi.json

Step 1 of 3.

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 Idempotency-Key. 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

Returns an upload ticket whose upload_url you PUT the raw bytes to, after which you POST the ticket's id as upload_id to drive-items/{drive_item}/files to turn those bytes into a file. The bytes never travel through this API: /api/v2 accepts application/json and nothing else, so the upload target is a separate signed route. The file always lands in the document's attachments collection (content belongs to the editor and file is the document's own single payload, so neither is writable here), and the collection, the storage location and the ticket lifetime are all chosen by the server. The declared size is not a bound: the server counts what arrives and refuses anything over 10 MB. The declared permission is project_drive::create; customer_drive, organization_drive and user_drive apply by owner type, and the record rule requires edit access: read access to a document is not enough to attach to it, which is deliberately stricter than plnnrly. An archived document is 404. The ticket is yours alone, is single-use, expires in 30 minutes, and can be deleted with DELETE uploads/{upload} while unregistered.

Path parameters

drive_itemintegerRequired

The DriveItem's numeric id. Accepts a soft-deleted record.

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.

Idempotency-Keystring≤ 255

A caller-chosen key that makes this POST safe to retry. Replaying it returns the original response with Idempotency-Replayed: true.

Request body

Unknown keys are refused with 422, naming the key.

file_namestring≤ 255Required

The sanitized file name the file will carry. Sent when the ticket is created; control characters are stripped and #, /, \ and spaces become hyphens, so what you read back can differ from what you sent.

byte_sizeinteger1 to 10485760Required

The size you declared when creating the ticket. A declaration, not a bound: the server counts the bytes it actually receives.

checksum_sha256string or null≤ 64

The optional SHA-256 you declared when creating the ticket. When present the server refuses bytes that do not match it.

sha-256 hex digest

Response 201

Returns a Upload in the detail view.

Headers

ETag
A strong validator of exactly this representation.
Idempotency-Replayed
true when this response was replayed from a stored Idempotency-Key rather than produced by a new write.
Location
The absolute URL of the created or queued resource.
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 POST. Anything else answers 405.