Skip to main content
GET
Get an NDA triage

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.

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.

ndaTriageId
string
required

ndt_ identifier of the NDA triage. Returned on the operation that launched it.

Response

Successful Response

One NDA triage: its screen, or its progress toward one.

id
string
required

Public identifier, ndt_ followed by 32 hex characters.

Example:

"ndt_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

matterId
string
required

mat_ identifier of the matter this triage belongs to.

Example:

"mat_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

status
enum<string>
required

Triage status, using the same five public values as an operation. While queued or running, criteria is empty and the scalar fields are absent. That is the truthful shape of a screen that has not happened yet, not an error.

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

"queued"

createdAt
string<date-time>
required

When the triage was created (RFC 3339).

Example:

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

classification
string | null

The screen's own verdict: green (standard approval), yellow (counsel review) or red (significant issues).

Example:

"yellow"

effectiveClassification
string | null

The verdict after layering your playbook on top, which is the one to act on. A deal-breaker flips this to red even where the screen said green. Equal to classification when no playbook applied.

Example:

"red"

summary
string
default:""

Overall assessment, in prose.

Example:

"Twelve substantive changes, seven of them in the liability and indemnity sections."

ndaType
string | null

Structure of the agreement: mutual, unilateral_disclosing, unilateral_receiving, or unknown.

Example:

"mutual"

counterpartyName
string | null

Counterparty, echoed from the request.

Example:

"Acme Corporation"

playbookId
string | null

The playbook the triage actually ran against. Absent when it ran against the built-in defaults, so the two cases can be told apart after the fact.

Example:

"pbk_9f2c8b1e4a7d43c9b6e0f1a2c3d4e5f6"

jurisdiction
string | null

Jurisdiction the default positions were drawn from.

Example:

"US"

criteria
NdaTriageCriterion · object[]

The ten screening criteria and their results.

passCount
integer
default:0

How many criteria passed.

Example:

0

warnCount
integer
default:0

How many criteria drew a warning.

Example:

0

failCount
integer
default:0

How many criteria failed.

Example:

0

keyIssues
string[]

The issues that need attention first.

Example:
routingRecommendation
string | null

What to do next, given the classification.

Example:

"Route to counsel for full review before signature; do not sign as received."

estimatedTimeline
string | null

How long resolution is expected to take, for example Same day.

Example:

"3-5 business days"

missingCarveouts
string[]

Standard carve-outs the NDA does not have. The one finding that cannot be expressed as a criterion result, because there is nothing there to assess.

Example:
problematicProvisions
string[]

Provisions that do not belong in an NDA at all, for example a non-compete or an assignment of IP.

Example:
parseWarning
string | null

Set when the model's output only partly parsed, which means the screen may be incomplete. Present is the difference between routing on it and asking a human first.

Example:

"Two clauses could not be parsed and are omitted from the findings."

completedAt
string<date-time> | null

When the triage reached a terminal status (RFC 3339).

Example:

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

Last modified on August 23, 2026