How AI is applied across API Evangelist and APIs.io. Read my AI disclosure →
API Evangelist API Evangelist
Discovery
Learnings
Guidance
Toolbox
Alignment
API Evangelist LLC

Vaquill AI Drafting API

Generating, revising and exporting draft documents. Bodies come out as sections and go in as markdown; the editor's own format is never on the wire. Rendered files come from the export route.

Vaquill AI Drafting API is one of 26 APIs that Vaquill AI publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 18 JSON Schema definitions.

Tagged areas include Drafting. The published artifact set on APIs.io includes an OpenAPI specification, API documentation, an API reference, a getting-started guide, a changelog, and 18 JSON Schemas.

This API exposes 22 operations across 16 paths, and defines 34 schemas. It is described by OpenAPI 3.2.0, at version 1.0.0.

Requests are made against 2 base URLs: https://api.vaquill.ai/workspace, /workspace.

22 operations 16 paths 34 schemas 2 DELETE7 GET11 POST2 PUT

Metadata

The identity and technical contract details declared by the specification.

Specification
OpenAPI 3.2.0
API Version
1.0.0
Base URL
https://api.vaquill.ai/api/v1
Authentication
HTTP Bearer
Resource Areas
1

Authentication & Security 1

Vaquill AI Drafting API declares 1 security scheme for authenticating requests. It accepts HTTP bearer tokens (vq_ws_*) (WorkspaceAuth). By default, every request must be authenticated.

  • WorkspaceAuth — Workspace credential issued from the automation console at /automation. Send it as Authorization: Bearer vqws.... This is NOT a Data API key: a vqkey credentia…

Paths & Operations 22

Across 16 paths, the API surfaces 22 operations — 2 DELETE, 7 GET, 11 POST, 2 PUT. Each is listed below with its method, path, parameters, and response codes.

Drafting 22

Generating, revising and exporting draft documents. Bodies come out as sections and go in as markdown; the editor's own format is never on the wire. Rendered files come from the e…

GET
/v1/draft-categories
List drafting categories
draftCategories.list 2 params → 200422401403429500503
GET
/v1/matters/{matterId}/drafts
List drafts in a matter
drafts.list 4 params → 200422401403404429500503
POST
/v1/matters/{matterId}/drafts
Generate a draft
drafts.generate 2 params body → 202422401403404429500503
POST
/v1/matters/{matterId}/drafts/from-document
Create a draft from an uploaded document
drafts.createFromDocument 1 param body → 201422401403404429500503
GET
/v1/matters/{matterId}/drafts/{draftId}
Get a draft
drafts.get 2 params → 200422401403404429500503
PUT
/v1/matters/{matterId}/drafts/{draftId}
Replace a draft's body
drafts.update 2 params body → 200422401403404429500503
DELETE
/v1/matters/{matterId}/drafts/{draftId}
Move a draft to the trash
drafts.delete 2 params → 204422401403404429500503
POST
/v1/matters/{matterId}/drafts/{draftId}/improvements
Revise a draft into a new one
drafts.improve 3 params body → 202422401403404429500503
GET
/v1/matters/{matterId}/drafts/{draftId}/versions
List a draft's versions
drafts.versions 4 params → 200422401403404429500503
POST
/v1/matters/{matterId}/drafts/{draftId}/exports
Export a draft as DOCX or PDF
drafts.export 2 params body → 200422401403404429500503
POST
/v1/matters/{matterId}/drafts/{draftId}/copies
Copy a draft
drafts.duplicate 2 params body → 201422401403404429500503
POST
/v1/matters/{matterId}/drafts/{draftId}/restore
Restore a trashed draft
drafts.restore 2 params → 200422401403404429500503
POST
/v1/matters/{matterId}/drafts/{draftId}/documents
File a draft into its matter as a document
drafts.saveAsDocument 3 params → 202422401403404429500503
GET
/v1/templates
List templates
templates.list 2 params → 200422401403429500503
POST
/v1/templates
Create a template from markdown
templates.create body → 201422401403429500503
POST
/v1/templates/from-document
Create a template from an uploaded document
templates.createFromDocument body → 201422401403429500503
GET
/v1/templates/{templateId}
Get a template
templates.get 1 param → 200422401403404429500503
PUT
/v1/templates/{templateId}
Replace a template's body
templates.update 1 param body → 200422401403404429500503
DELETE
/v1/templates/{templateId}
Delete a template
templates.delete 1 param → 204422401403404429500503
POST
/v1/templates/{templateId}/copies
Copy a template
templates.duplicate 1 param body → 201422401403404429500503
POST
/v1/matters/{matterId}/templates/{templateId}/runs
Generate a draft from a template
templates.run 3 params body → 202422401403404429500503
GET
/v1/matters/{matterId}/template-runs/{runId}
Get a template run
templateRuns.get 2 params → 200422401403404429500503

Schemas 34

The contract defines 34 schemas that model the data the API accepts and returns. The most detailed are Draft (13 properties), DraftSummary (12 properties), Operation (10 properties), TemplateDetail (9 properties). Each schema is shown below with its type and property counts.

Draft
object
One draft with its body, section by section.
13 properties 11 required
TemplateCopyRequest
object
Copy a template, optionally under a new name. Send {} to accept the defaults. A copy is a real second template with its own id and its own variable rows, so ed…
1 property
TemplateCreateRequest
object
Author a template from markdown you supply. Variables are detected for you, on this call, and the response carries what was found. A placeholder written as [CO…
4 properties 2 required
TemplateUpdateRequest
object
Replace a template's body, and optionally its title and description. A PUT rather than a PATCH, matching drafts.update: contentMarkdown is the WHOLE body, so s…
3 properties 1 required
DraftSummary
object
A draft as it appears in a list: everything except the body.
12 properties 10 required
ValidationProblem
object
A problem document for a schema rejection. errors lists the fields that were refused. The value you submitted is deliberately not echoed, so a validation failu…
7 properties 6 required
Pagination
object
Where the caller is, and whether there is more. total is the count of rows matching the filter, not the count returned, so a caller can size a job before runni…
4 properties 4 required
TemplateFromDocumentRequest
object
Turn a document you already uploaded into a template. Takes a documentId rather than a file. Bytes reach this API exactly one way, through uploads.initiate and…
4 properties 1 required
TemplateRun
object
One invocation, and what it produced.
9 properties 5 required
Page_DraftSummary_
object
2 properties 2 required
DraftExport
object
A rendered draft, returned as bytes rather than as a URL. Every other artifact on this API is a signed URL over an object a worker already wrote. A draft expor…
5 properties 5 required
Operation
object
One long-running operation, whatever kind of work it is. Readable for OPERATIONRETENTIONDAYS after creation, per AIP-151.
10 properties 4 required
DraftCategory
object
One document type the drafting pipeline knows how to write.
3 properties 3 required
Page_DraftCategory_
object
2 properties 2 required
OperationStatus
string
The public five. There is no sixth, and there are no synonyms. Internal vocabularies spell terminal success completed, ready, extracted, succeeded and fresh; t…
Page_Template_
object
2 properties 2 required
TemplateRunRequest
object
What to fill the template with. Context documents are deliberately absent in v1. The internal flow can take document ids as extra evidence for the extractor, a…
2 properties
OperationResource
object
What the operation produced, or is producing. url is a path on this API rather than an absolute URL, because the service is mounted today and gets its own host…
3 properties 2 required
DraftFromDocumentRequest
object
Turn a document you already uploaded into an editable draft. Takes a documentId rather than a file, for the reason every other file on this surface does: bytes…
3 properties 1 required
DraftExportRequest
object
Ask for the draft rendered to a file.
1 property 1 required
DraftCreateRequest
object
Start a generation. There is no synchronous create. jurisdiction is deliberately absent and fixed at US: this is a US-only product (OPINIONS.md), and a field w…
7 properties 3 required
DraftSection
object
One heading and the text beneath it. heading is null for body text that precedes the first heading, which is where a parties block or a preamble lives. Droppin…
3 properties 1 required
OperationError
object
Why a failed operation failed, in terms a customer can act on. code is stable and machine-readable. message is sanitized: the internal job tables store stack t…
2 properties 2 required
Page_DraftVersion_
object
2 properties 2 required
TemplateSlot
object
One variable and the value the run put in it.
3 properties 1 required
Template
object
One uploaded template, as listed. The TipTap body and the variable definitions are not published. The body is the same editor document a draft carries, and the…
7 properties 5 required
DraftReplaceRequest
object
Replace a draft's body, and optionally its title and lifecycle status. A PUT rather than a PATCH because contentMarkdown is the whole body: a partial body is n…
5 properties 1 required
TemplateDetail
object
One template with everything needed to run it without guessing. variables is the reason this model exists at all, and sections is here for the same reason a dr…
9 properties 7 required
DraftImproveRequest
object
Revise an existing draft into a NEW one. The improvement never overwrites its source. That is the internal pipeline's behaviour and it is the right one to publ…
3 properties
TemplateVariable
object
One fillable span the template declares. Published because slotOverrides on a run is keyed by id and nothing else on this surface publishes one. Before this mo…
7 properties 4 required
DraftVersion
object
One point in a draft's history. Metadata only. The stored CONTENT of an old version is not published. A version body would be a second representation of the sa…
3 properties 2 required
OperationProgress
object
How far along, and in what units. The unit is not decoration. A workflow run stores only a percentage while a matrix run stores cell counts, so {done: 43, tota…
3 properties 3 required
DraftCopyRequest
object
Copy a draft, optionally under a new name. Send {} to accept the defaults. The copy starts at version 1 with no history of its own and status draft, and it lan…
1 property
Problem
object
An RFC 9457 problem document. Branch on type, which is stable; title and detail are written for people and may be reworded. Some problems carry extra members (…
6 properties 5 required

Specification

The full machine-readable OpenAPI contract behind this narrative.

Source

vaquill-ai-drafting-api-openapi.yml Raw ↑

Other APIs Vaquill AI publishes across the network.

Vaquill AI Board Watches API
Vaquill AI Chronology API
Vaquill AI Clients API
Vaquill AI Comparisons API
Vaquill AI Compliance API
Vaquill AI Credits API
Vaquill AI Documents API
Vaquill AI Facts API
Vaquill AI Folders API
Vaquill AI India Credits API
Vaquill AI India Pricing API
Vaquill AI Indian Acts and Legislation API
Where this information came from

This is an independent, third-party profile of Vaquill AI Drafting API, published by API Evangelist. We do not operate, host, resell, or support these APIs, and we are not affiliated with or endorsed by the company unless stated above. Everything here is built from publicly available information — the company's own site, developer portal, documentation, public repositories, and the specifications it publishes for public use. Nothing is obtained by breaching a system, defeating an access control, or using credentials.

The Kin Score and Agent Readiness rating are independently calculated assessments of a company's public API artifacts, scored against a published rubric. They are not certifications, endorsements, security assessments, or audits.

Corrections, re-scores, and removal are free — no partnership or purchase required, and you do not need to justify the request. A removed company is recorded as unrated, never scored zero for having asked. Acknowledgement within one business day; removal within two.

info@apievangelist.com · Read the full data-sourcing policy →
On a security or compliance team? Put security in the subject line and you will get a person, not a form — we will tell you exactly which public URLs this profile was built from.