Skip to main content
A document can be attached to an order or deliverable, or exist independently in Documents Hub. Hub links let several deliverables reference the same document and version history. The generic endpoint supports reads, permanent DELETE, and archive/restore through PATCH { "isArchived": true | false }. Direct POST and PUT requests return 405; create documents through Documents Hub or the deliverable tab.

Fields

Every property the API returns for a document.

Scoping and copying

copyMode controls propagation: none leaves the document in place, copy creates an independent copy, and reference links to the same document so revisions remain shared. When both are supplied, copyMode takes precedence over the legacy boolean. The legacy fields are:
  • deliverableDocument marks the file as belonging to one deliverable rather than the whole order.
  • copyWithDeliverable carries the file along when its deliverable is copied, for example when a route is applied and its structure is instantiated.
documentKey is the durable storage key. documentUrl is a time-limited link generated when you read the record, so it expires: store documentKey and re-read the document when you need a fresh link.

Generic writes

PATCH /document/{id} and PATCH /document/bulk?<filter> accept exactly one field: isArchived. Any other field returns 400. POST /document, PUT /document/{id}, and PUT /document/bulk return 405, because those paths would bypass version and link bookkeeping. Use POST /document/hub/bulk-upload to create Hub documents, the version actions to change file metadata, link actions to attach documents, and the copy-mode action to change propagation behavior.

Deleting

DELETE /document/{id} is destructive.Permanently removes the document record. This cannot be undone. To retain history, archive with PATCH /document/{id} and { "isArchived": true }, and restore with false.
See archiving and deleting for the full picture across resources.

Documents Hub and versions

Hub endpoints require your organization’s documentsHubEnabled flag. Without it, generic reads, permanent DELETE, and archive/restore remain available. Version writes require document update permission. Attaching a link requires document read and target deliverable update permission. Generic list and by-id reads default to deliverableDocument=true. Hub-only documents are therefore omitted from GET /document and can return 404 from GET /document/{id}. Use the Hub endpoints for Hub documents, or pass an explicit deliverableDocument filter on the generic list endpoint. Creating a version requires name and at least one of documentKey or documentUrl. The new version becomes current and updates the document’s file metadata. Versions include id, documentId, versionLabel, name, documentKey, documentUrl, mimeType, lastModifiedAt, metadata, isArchived, appUserId, and standard organization/timestamp fields. Re-read download URLs when needed; they can expire. POST /document/counts-by-deliverable accepts { "deliverableIds": ["<uuid>"] } (maximum 1,000 IDs). It returns { "values": [{ "groupId": "<deliverable-id>", "count": 2 }] }, works with or without Documents Hub, and counts only accessible deliverables.