Skip to main content
POST
Create a matter

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

Everything a caller may set when creating a matter.

name
string
required

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

Required string length: 1 - 100
Example:

"Acme / Series B Financing"

clientId
string | null

cli_ identifier of the client to file this matter under. Must belong to your organization.

Example:

"cli_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

description
string | null

Free-text description of the matter.

Maximum string length: 5000
Example:

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

instructions
string | null

Standing instructions to apply to AI work on this matter. Carried into drafting and review prompts, so this is where house style and known counterparties belong.

Maximum string length: 10000
Example:

"House paper. Cap liability at 12 months of fees; never accept uncapped indemnity."

status
enum<string>
default:open

Lifecycle status. Defaults to open.

Available options:
open,
pending,
closed
Example:

"open"

practiceArea
string | null

Practice area, for example employment. Free text.

Maximum string length: 100
Example:

"commercial"

matterType
string | null

Your own sub-classification of the matter. Free text.

Maximum string length: 50
Example:

"financing"

caseNumber
string | null

Docket or internal case reference.

Maximum string length: 100
Example:

"2026-CV-0117"

responsibleAttorneyName
string | null

Name of the responsible attorney. A name, not an identifier: this API does not resolve users.

Maximum string length: 255
Example:

"Dana Whitfield"

openDate
string<date> | null

Date the matter opened (YYYY-MM-DD).

Example:

"2026-08-19"

closeDate
string<date> | null

Date the matter closed (YYYY-MM-DD).

Example:

"2026-08-19"

billingType
enum<string> | null

Billing arrangement for the matter.

Available options:
hourly,
flat_fee,
contingency,
pro_bono
Example:

"hourly"

billingRate

Billing rate in billingCurrency. Send it as a JSON string to keep the value exact.

Required range: x >= 0
Example:

"450.00"

billingCurrency
string | null

ISO 4217 currency code for billingRate, three uppercase letters, for example USD.

Pattern: ^[A-Z]{3}$
Example:

"USD"

country
string | null

ISO 3166-1 alpha-2 country code, two uppercase letters, for example US.

Pattern: ^[A-Z]{2}$
Example:

"US"

metadata
Metadata · object | null

Arbitrary JSON to store against the matter. Vaquill never reads it.

Response

Successful Response

A matter as this API publishes it.

id
string
required

Public identifier, mat_ followed by 32 hex characters. This is the value that goes in every matter-nested path.

Example:

"mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

name
string
required

The matter's display name.

Example:

"Acme / Series B Financing"

clientId
string | null

cli_ identifier of the client this matter belongs to, if one was set.

Example:

"cli_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

description
string | null

Free-text description of the matter.

Example:

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

instructions
string | null

Standing instructions the customer wants applied to AI work on this matter. Carried into drafting and review prompts.

Example:

"House paper. Cap liability at 12 months of fees; never accept uncapped indemnity."

status
string | null

Lifecycle status. Usually open, pending or closed, but published as a plain string because production holds values no UI offers. Do not branch on it without a fallback.

Example:

"open"

practiceArea
string | null

Practice area, for example employment or real_estate. Free text.

Example:

"commercial"

matterType
string | null

Customer's own sub-classification of the matter. Free text.

Example:

"financing"

caseNumber
string | null

Docket or internal case reference.

Example:

"2026-CV-0117"

responsibleAttorneyName
string | null

Name of the attorney responsible for the matter. The underlying user id is deliberately not published.

Example:

"Dana Whitfield"

openDate
string<date> | null

Date the matter opened (YYYY-MM-DD).

Example:

"2026-08-19"

closeDate
string<date> | null

Date the matter closed (YYYY-MM-DD). Absent while it is open.

Example:

"2026-08-19"

billingType
string | null

Billing arrangement, normally one of hourly, flat_fee, contingency or pro_bono. Published as a plain string.

Example:

"hourly"

billingRate
string | null

Billing rate in billingCurrency. Rendered as a JSON STRING, not a number, so the value stays exact.

Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
Example:

"450.00"

billingCurrency
string | null

ISO 4217 currency code for billingRate, for example USD.

Example:

"USD"

country
string | null

ISO 3166-1 alpha-2 country code, for example US. Unlike a client's country, this is a validated code.

Example:

"US"

metadata
Metadata · object

Arbitrary JSON the customer stores against the matter. Vaquill never reads it.

isDefault
boolean
default:false

True for the one matter minted at signup that unfiled work lands in. Read-only: exactly one exists per organization and this API cannot create or move it.

Example:

false

createdAt
string<date-time> | null

When the matter was created (RFC 3339).

Example:

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

updatedAt
string<date-time> | null

When the matter was last modified (RFC 3339).

Example:

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

Last modified on August 23, 2026