Skip to main content
POST
Generate a matter summary

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.

Headers

Idempotency-Key
string | null

A unique value of your choosing, so a retried launch returns the FIRST operation instead of starting a second billable job. Reusing one with a different body is refused. Retrying with the same key and the same body is free and is the intended way to recover from a timeout.

Path Parameters

matterId
string
required

mat_ identifier of the matter to work inside. Everything in this API hangs off a matter, and the matter in the path is what the authorization boundary is checked against. Take it from GET /v1/matters.

Body

application/json

What to generate.

There is no force. On the summary route that flag bypasses the already-fresh short circuit and is a straight cost lever with nothing behind it, because metering and usage caps were cut. A caller that genuinely needs a rebuild changes something the corpus hash can see.

There is also no cancel operation anywhere on this capability. The web app's cancel marks the job and its summary cancelled and does NOT revoke the Celery task, so the worker keeps running and moves a cancelled job back to completed when it finishes. Publishing that would take an operation terminal and then move it, which the operation contract does not allow, and would sell a customer a control over spend that does not stop the spend.

altitude
enum<string>
default:executive

executive for a short brief, detailed for the long form. detailed uses the stronger synthesis model; both read the same extracted evidence.

Available options:
executive,
detailed
Example:

"executive"

Response

Successful Response

One long-running operation, whatever kind of work it is.

Readable for OPERATION_RETENTION_DAYS after creation, per AIP-151.

id
string
required

Public identifier, op_ followed by 32 hex characters. Poll GET /v1/operations/{operationId} with it.

Example:

"op_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

type
string
required

What kind of work this is, for example matrix.run or draft.generate.

Example:

"matrix.run"

status
enum<string>
required

One of five values: queued, running, succeeded, failed, cancelled. There is no sixth and there are no synonyms. Stop polling once it is succeeded, failed or cancelled.

Available options:
queued,
running,
succeeded,
failed,
cancelled
Example:

"succeeded"

createdAt
string<date-time>
required

When the operation was accepted (RFC 3339).

Example:

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

completedAt
string<date-time> | null

When the operation reached a terminal status (RFC 3339). Present if and only if the status is terminal.

Example:

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

matterId
string | null

mat_ identifier of the matter this work belongs to, when it belongs to one.

Example:

"mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

resource
OperationResource · object | null

What the operation produced. Absent until the underlying job row exists, which an idempotent replay can briefly observe, so treat absence as 'not yet' rather than 'never'.

error
OperationError · object | null

Why the work failed. Present only when status is failed. Partial success is succeeded with progress.done < progress.total, never an error.

progress
OperationProgress · object | null

How far along the work is, when the underlying job reports it. Absent does not mean no progress.

requestId
string | null

The X-Request-ID of the request that created this operation. Quote it in a support ticket.

Example:

"req_5f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

Last modified on August 23, 2026