Skip to main content
POST
Create a playbook

Authorizations

Authorization
string
header
required

Workspace credential issued from the automation console at /automation. Send it as Authorization: Bearer vq_ws_.... This is NOT a Data API key: a vq_key_ credential is refused here and names the other product in the error.

Body

application/json

Author a playbook from positions the caller supplies.

name
string
required

Display name for the playbook. Trimmed; whitespace alone is refused.

Required string length: 1 - 200
Example:

"MSA, buyer side"

contractType
enum<string>
required

Which contract type this playbook governs. Cannot be changed afterwards, because it determines which reviews resolve the playbook.

Available options:
saas,
professional_services,
msa,
sow,
consulting,
license,
sale,
partnership,
procurement,
vendor_agreement,
reseller_distribution,
supply,
lease,
loan,
eula,
terms_of_service,
baa,
order_form,
nda,
dpa,
ip_assignment,
employment,
executive_employment,
independent_contractor,
offer_letter,
severance_agreement,
non_compete,
asset_purchase,
stock_purchase,
merger_agreement,
shareholders_agreement,
operating_agreement,
safe,
term_sheet,
settlement_agreement,
engagement_letter,
protective_order,
joint_defense,
other
Example:

"saas"

description
string | null

Free-text description of what this playbook covers.

Maximum string length: 1000
Example:

"Master services agreement with Acme for the 2026 platform rollout."

positions
Positions · object

Negotiating positions keyed by clause-type slug. May be empty: creating the shell and filling it clause by clause is a supported flow.

Response

Successful Response

One organization playbook, with every position it holds.

Positions are returned in full rather than summarized. A playbook is the input to a review, so a caller that cannot read the positions cannot tell what its reviews are being measured against, and a separate positions endpoint would make the common case two calls.

id
string
required

Public identifier, pbk_ followed by 32 hex characters.

Example:

"pbk_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

name
string
required

The playbook's display name.

Example:

"MSA, buyer side"

contractType
string
required

Which contract type this playbook governs. Fixed at creation: changing it would silently redirect which reviews resolve it.

Example:

"msa"

description
string | null

Free-text description of what this playbook covers.

Example:

"Master services agreement with Acme for the 2026 platform rollout."

positions
Positions · object

Every negotiating position the playbook holds, keyed by clause-type slug. Returned in full, because a caller that cannot read the positions cannot tell what its reviews are measured against.

isDefault
boolean
default:false

True when reviews of this contract type resolve to this playbook if none is named. Read-only here: exactly one default per contract type is enforced by the database, and this API cannot set it.

Example:

false

sourceFilename
string | null

Filename of the exemplar this playbook was extracted from, when it was imported rather than authored by hand.

Example:

"msa-acme-v3.docx"

createdAt
string<date-time> | null

When the playbook was created (RFC 3339).

Example:

"2026-08-19T14:32:10Z"

updatedAt
string<date-time> | null

When the playbook was last modified (RFC 3339).

Example:

"2026-08-19T14:32:10Z"

Last modified on August 23, 2026