Skip to main content
One credential, no browser after provisioning. Every path below is prefixed with 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

Poll until 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

You get typed lists rather than a blob of prose: 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

Answers 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.

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.
Last modified on August 19, 2026