https://api.vaquill.ai/workspace/v1, and every call carries Authorization: Bearer vq_ws_....
1
Create a client and a matter
Almost everything in the Workspace API hangs off a matter.
clientType is one of individual, organization or corporation. Take the id it returns, then:2
Upload the contract
Uploads are presigned and go straight to storage, so your bytes never pass through the API. The same three calls work at every size, up to 2 GB.That last call returns
202 with an operation.3
Wait for ingestion
status is succeeded. The resource.id on the finished operation is your documentId.4
Read the extracted text
A review is run over contract text, so pull it once ingestion has finished:You get
{documentId, text, chunkCount, truncated}.5
Run a review
Optionally pick a playbook from
GET /v1/playbooks, or adopt one of ours with GET /v1/playbook-templates and POST /v1/playbooks/from-template. Then:documentText, contractType and userSide are required; playbookId is optional and, without one, the review runs against our default expectations for that contract type. Another 202, another operation to poll.This is a launch, so it takes Idempotency-Key. Reuse the same key on a retry and you get the original operation back rather than a second billable review.6
Read the findings
clauses, redlines, negotiationPriorities, missingClauses and flags, plus overallRisk, liabilityExposure and an approvalGate that tells you whether a human has to sign off.7
Export it
201 with {format, filename, url, expiresAt, sizeBytes, redlineCount, ...}. The url is a signed download link, and the export is a Word file carrying native tracked changes, so it opens in Word as a redline your counterparty can accept or reject.Pass a redlines array to export only the suggestions you accepted, instead of all of them.What to read next
Operations
The job envelope every long call returns, and how to poll it well.
Documents
Upload, text extraction, downloading originals.
Idempotency
Which calls take the header, and what a safe retry looks like.
Errors
The problem+json shape and what each type means.

