Documents

Documents are the PDFs your signers act on. Upload a file, wait for it to become ready, then attach it to an envelope.

The document object

FieldTypeDescription
id uuidUnique identifier of the document.
filename stringOriginal file name.
status enumuploaded · processing · ready · quarantined · failed.
created_at datetimeUpload timestamp (UTC).

Upload a document

POST /documents

Send the file as multipart/form-data under the file field. Requires the documents:write scope.

curl -X POST 'https://api.sign.quathos.com/api/v1/documents' \
  -H 'Authorization: Bearer $QUATHOS_SIGN_TOKEN' \
  -F 'file=@contract.pdf'

Upload is fail-closed

Every upload is validated before it counts. Anything that fails validation is quarantined — no usable document is created and no credit is consumed. A quarantined file surfaces as 422 unprocessable_pdf or as status quarantined.

List & retrieve

GET /documents

Lists your documents. Requires documents:read.

GET /documents/{id}

Returns a single document, including its current status. Requires documents:read.

Download

GET /documents/{id}/download

Returns a short-lived signed URL to fetch the file — storage is never exposed directly. Requires documents:read.

response
{
  "url": "https://…/download?signature=…",
  "expires_at": "2026-07-21T14:08:22Z"
}

Short-lived by design

Signed URLs expire quickly. Fetch the file promptly, or request a fresh URL when you need it again — don't cache or share the URL.