Skip to main content
GET
Read the released report for a case
This reference is generated from the canonical Ultiwrite OpenAPI contract, shared with the native API documentation. Follow the quickstart to obtain approved account access before calling the API.

Authorizations

Authorization
string
header
required

Create a key at /settings/api after an administrator approves your account. The key is shown once, can be revoked, and shares the account request allowance with other keys and partner OAuth grants. Send only in Authorization. These keys are not accepted by MCP or the legacy provisioned routes.

Path Parameters

caseId
string
required

Case id returned by this API.

Required string length: 1 - 80
Pattern: ^[A-Za-z0-9_-]+$

Query Parameters

cursor
string

Decimal offset into findings. For the next report page use report.nextCursor, or retain report.pageBinding.findingsOffset when it is null (zero only when absent). Send all eight collection cursors together: pageToken binds the entire offered cursor tuple. Do not append this collection again when its offset is unchanged.

Pattern: ^[0-9]{1,9}$
sectionCursor
string

Decimal offset into sections. For the next report page use report.nextSectionCursor, or retain report.pageBinding.sectionOffset when it is null (zero only when absent). Send all eight collection cursors together: pageToken binds the entire offered cursor tuple. Do not append this collection again when its offset is unchanged.

Pattern: ^[0-9]{1,9}$
evidenceCursor
string

Decimal offset into evidence items. For the next report page use report.nextEvidenceCursor, or retain report.pageBinding.evidenceOffset when it is null (zero only when absent). Send all eight collection cursors together: pageToken binds the entire offered cursor tuple. Do not append this collection again when its offset is unchanged.

Pattern: ^[0-9]{1,9}$
limitationCursor
string

Decimal offset into limitations. For the next report page use report.nextLimitationCursor, or retain report.pageBinding.limitationOffset when it is null (zero only when absent). Send all eight collection cursors together: pageToken binds the entire offered cursor tuple. Do not append this collection again when its offset is unchanged.

Pattern: ^[0-9]{1,9}$
chronologyCursor
string

Decimal offset into chronology. For the next report page use report.nextChronologyCursor, or retain report.pageBinding.chronologyOffset when it is null (zero only when absent). Send all eight collection cursors together: pageToken binds the entire offered cursor tuple. Do not append this collection again when its offset is unchanged.

Pattern: ^[0-9]{1,9}$
actionCursor
string

Decimal offset into actions. For the next report page use report.nextActionCursor, or retain report.pageBinding.actionOffset when it is null (zero only when absent). Send all eight collection cursors together: pageToken binds the entire offered cursor tuple. Do not append this collection again when its offset is unchanged.

Pattern: ^[0-9]{1,9}$
metricCursor
string

Decimal offset into metrics. For the next report page use report.nextMetricCursor, or retain report.pageBinding.metricOffset when it is null (zero only when absent). Send all eight collection cursors together: pageToken binds the entire offered cursor tuple. Do not append this collection again when its offset is unchanged.

Pattern: ^[0-9]{1,9}$
extensionCursor
string

Decimal offset into schema extensions. For the next report page use report.nextExtensionCursor, or retain report.pageBinding.extensionOffset when it is null (zero only when absent). Send all eight collection cursors together: pageToken binds the entire offered cursor tuple. Do not append this collection again when its offset is unchanged.

Pattern: ^[0-9]{1,9}$
limit
integer

Findings per page, 1 through 12.

Required range: 1 <= x <= 12
snapshot
string

Use report.snapshot from the previous saved-report response. Required with any non-zero cursor so pages come from one frozen document.

Pattern: ^[a-f0-9]{64}$
pageToken
string

Use the top-level pageToken from the previous response. It binds this grant, target, snapshot and the entire offered cursor tuple: send all eight matching next collection positions together, retaining a collection’s current report.pageBinding offset when its next cursor is null. An arbitrary cursor mix returns unbound_page. Required with any non-zero cursor.

Pattern: ^[A-Za-z0-9_-]{8,2000}\.[A-Za-z0-9_-]{20,200}$
spanTarget
enum<string>

Read one long field in code-point slices instead of a page. Requires spanField and spanCursor.

Available options:
finding,
section,
evidence,
brief,
limitation,
case_title,
chronology,
action,
metric
spanField
enum<string>

Field of spanTarget to read. brief/decisionBrief returns the structured Decision Brief JSON in slices.

Available options:
summary,
conclusion,
whyItMatters,
coherenceExplanation,
action,
counterEvidence,
title,
observation,
interpretation,
takeaway,
statement,
label,
brief,
decisionBrief,
limitation,
detail,
source,
unit,
value
spanId
string

Item id for finding, section and evidence spans.

Pattern: ^[A-Za-z0-9_-]{1,40}$
spanIndex
string

Item index for list spans (counter-evidence, statements, limitations, chronology, actions, metrics).

Pattern: ^[0-9]{1,9}$
spanCursor
string

Unicode code-point offset into the field.

Pattern: ^[0-9]{1,9}$
spanLimit
integer

Code points per slice, 1 through 2000.

Required range: 1 <= x <= 2000

Response

Report page or not_ready.

caseId
string | null
required
reportId
string
state
string

saved_report, not_ready, stale_snapshot, unbound_page, or continuation_unavailable. not_ready is not a negative finding.

report
object | null

Authorized customer document when a report page was returned. savedDecision is the published label, not a stored favorable sentence. Null when the report was not returned.

completeness
object

Present on not_ready and page-denial results. A saved_report page carries completeness inside report.

snapshot
string | null
contentTrust
string