curl --request GET \
--url https://api.vaquill.ai/workspace/v1/matters/default \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/workspace/v1/matters/default"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.vaquill.ai/workspace/v1/matters/default', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vaquill.ai/workspace/v1/matters/default"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"name": "Acme / Series B Financing",
"clientId": "cli_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"description": "Master services agreement with Acme for the 2026 platform rollout.",
"instructions": "House paper. Cap liability at 12 months of fees; never accept uncapped indemnity.",
"status": "open",
"practiceArea": "commercial",
"matterType": "financing",
"caseNumber": "2026-CV-0117",
"responsibleAttorneyName": "Dana Whitfield",
"openDate": "2026-08-19",
"closeDate": "2026-08-19",
"billingType": "hourly",
"billingRate": "450.00",
"billingCurrency": "USD",
"country": "US",
"metadata": {
"externalId": "CRM-4471"
},
"isDefault": false,
"createdAt": "2026-08-19T14:32:10Z",
"updatedAt": "2026-08-19T14:32:10Z"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"errors": [
{
"location": "<string>",
"message": "<string>",
"type": "<string>"
}
],
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}Get the default matter
The organization’s default matter, the one unfiled work lands in.
Minted at signup, exactly one per organization, and never created or renamed
by this API. Answers 404 when the organization has none; it will not
substitute another matter, because filing a client’s contract into a matter
you did not name is worse than an error you can act on.
curl --request GET \
--url https://api.vaquill.ai/workspace/v1/matters/default \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.vaquill.ai/workspace/v1/matters/default"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.vaquill.ai/workspace/v1/matters/default', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.vaquill.ai/workspace/v1/matters/default"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"id": "mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"name": "Acme / Series B Financing",
"clientId": "cli_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"description": "Master services agreement with Acme for the 2026 platform rollout.",
"instructions": "House paper. Cap liability at 12 months of fees; never accept uncapped indemnity.",
"status": "open",
"practiceArea": "commercial",
"matterType": "financing",
"caseNumber": "2026-CV-0117",
"responsibleAttorneyName": "Dana Whitfield",
"openDate": "2026-08-19",
"closeDate": "2026-08-19",
"billingType": "hourly",
"billingRate": "450.00",
"billingCurrency": "USD",
"country": "US",
"metadata": {
"externalId": "CRM-4471"
},
"isDefault": false,
"createdAt": "2026-08-19T14:32:10Z",
"updatedAt": "2026-08-19T14:32:10Z"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"errors": [
{
"location": "<string>",
"message": "<string>",
"type": "<string>"
}
],
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}{
"type": "https://vaquill.ai/docs/workspace-api/errors/insufficient-scope",
"title": "Insufficient scope",
"status": 403,
"detail": "This credential carries matters:read. This operation needs matters:write.",
"instance": "/workspace/v1/matters/mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6",
"requestId": "req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
}Authorizations
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.
Response
Successful Response
A matter as this API publishes it.
Public identifier, mat_ followed by 32 hex characters. This is the value that goes in every matter-nested path.
"mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
The matter's display name.
"Acme / Series B Financing"
cli_ identifier of the client this matter belongs to, if one was set.
"cli_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"
Free-text description of the matter.
"Master services agreement with Acme for the 2026 platform rollout."
Standing instructions the customer wants applied to AI work on this matter. Carried into drafting and review prompts.
"House paper. Cap liability at 12 months of fees; never accept uncapped indemnity."
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.
"open"
Practice area, for example employment or real_estate. Free text.
"commercial"
Customer's own sub-classification of the matter. Free text.
"financing"
Docket or internal case reference.
"2026-CV-0117"
Name of the attorney responsible for the matter. The underlying user id is deliberately not published.
"Dana Whitfield"
Date the matter opened (YYYY-MM-DD).
"2026-08-19"
Date the matter closed (YYYY-MM-DD). Absent while it is open.
"2026-08-19"
Billing arrangement, normally one of hourly, flat_fee, contingency or pro_bono. Published as a plain string.
"hourly"
Billing rate in billingCurrency. Rendered as a JSON STRING, not a number, so the value stays exact.
^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$"450.00"
ISO 4217 currency code for billingRate, for example USD.
"USD"
ISO 3166-1 alpha-2 country code, for example US. Unlike a client's country, this is a validated code.
"US"
Arbitrary JSON the customer stores against the matter. Vaquill never reads it.
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.
false
When the matter was created (RFC 3339).
"2026-08-19T14:32:10Z"
When the matter was last modified (RFC 3339).
"2026-08-19T14:32:10Z"
Was this page helpful?

