Skip to main content
POST
Create a client

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

name
string
required

The client's display name. Trimmed; whitespace alone is refused.

Required string length: 1 - 200
Example:

"Acme Corporation"

email
string<email> | null

Primary contact email address. Validated for shape, never sent to.

Maximum string length: 255
Example:

"counsel@acme.example"

phone
string | null

Primary contact phone number. Stored verbatim, not normalized.

Maximum string length: 30
Example:

"+1 415 555 0142"

address
string | null

Street address, one free-text line.

Maximum string length: 500
Example:

"500 Howard Street"

city
string | null

City or town.

Maximum string length: 100
Example:

"San Francisco"

state
string | null

State, province or region.

Maximum string length: 100
Example:

"CA"

zipCode
string | null

Postal or ZIP code.

Maximum string length: 20
Example:

"94105"

country
string | null

Country as free text. Unlike a matter's country, this is NOT an ISO code and is not validated as one.

Maximum string length: 100
Example:

"US"

clientType
enum<string>
default:individual

What kind of client this is. Defaults to individual.

Available options:
individual,
organization,
corporation
Example:

"individual"

taxId
string | null

Tax or company registration number.

Maximum string length: 50
Example:

"94-3211110"

notes
string | null

Free-text notes to keep against this client.

Maximum string length: 10000
Example:

"Primary contact is in-house counsel, not procurement."

metadata
Metadata · object | null

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

Response

Successful Response

A client as this API publishes it.

id
string
required

Public identifier, cli_ followed by 32 hex characters.

Example:

"cli_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

name
string
required

The client's display name, as the customer entered it.

Example:

"Acme Corporation"

email
string | null

Primary contact email address.

Example:

"counsel@acme.example"

phone
string | null

Primary contact phone number, stored as written and not normalized.

Example:

"+1 415 555 0142"

address
string | null

Street address, one free-text line.

Example:

"500 Howard Street"

city
string | null

City or town.

Example:

"San Francisco"

state
string | null

State, province or region.

Example:

"CA"

zipCode
string | null

Postal or ZIP code.

Example:

"94105"

country
string | null

Country as free text, NOT an ISO code. matters.country is a two-letter code; this column is not.

Example:

"US"

clientType
string | null

What kind of client this is. Usually one of individual, organization or corporation, but published as a plain string because the column's CHECK is the only thing constraining it. Do not branch on it without a fallback.

Example:

"organization"

taxId
string | null

Tax or company registration number.

Example:

"94-3211110"

notes
string | null

Free-text notes the customer keeps against this client.

Example:

"Primary contact is in-house counsel, not procurement."

metadata
Metadata · object

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

createdAt
string<date-time> | null

When the client was created (RFC 3339). Absent on a small number of rows that predate the column default.

Example:

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

updatedAt
string<date-time> | null

When the client was last modified (RFC 3339).

Example:

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

Last modified on August 23, 2026