API reference
Report distribution
12 operations in this area of the contract. Every one declares the permission it requires.
Contract version 0.2.0All areas
Operations
/v1/report-board-layoutsList validated internal-board layouts
Returns the fully resolved, closed-vocabulary layouts available to this tenant. A schedule selects one key; the complete canonical layout and its provenance are then snapshotted into each immutable occurrence, so later configuration changes cannot rewrite an already-created board pack.
Show parameters and responsesHide parameters and responses
Responses
200Validated board layoutsReportBoardLayoutPage
/v1/report-runs/{runID}Get an immutable aggregate report run
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
runIDrequired | path | string | Tenant-scoped immutable aggregate report occurrence identifier. |
Responses
200The run and its current delivery stateReportRun404—
/v1/report-runs/{runID}/artifactDownload the stored aggregate artifact bytes
Returns the write-once bytes generated for this occurrence, not a reconstruction from live data. The digest identifies those exact bytes. This artifact is not a regulatory filing or proof of any external submission.
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
runIDrequired | path | string | Tenant-scoped immutable aggregate report occurrence identifier. |
Responses
200Immutable artifact bytesstring404—409—
/v1/report-runs/{runID}/eventsList append-only generation and delivery transitions
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
runIDrequired | path | string | Tenant-scoped immutable aggregate report occurrence identifier. |
Responses
200The immutable transition ledgerReportRunEventPage404—
/v1/report-schedulesList aggregate report schedules
Returns tenant-owned schedules. Retired schedules are hidden by default but their immutable run history is retained. Recipient addresses are never stored on schedules; only tenant user identifiers are returned.
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
include_retired | query | boolean | Include soft-retired schedules without deleting their history. |
Responses
200Aggregate report schedulesReportSchedulePage
/v1/report-schedulesCreate an aggregate report schedule
Stores tenant user identifiers, not email addresses. Current tenant email addresses are resolved immediately before delivery so an address correction does not leave a second plaintext copy in scheduling history.
Show parameters and responsesHide parameters and responses
Responses
201The active schedule and its first occurrenceReportSchedule400—
/v1/report-schedules/{scheduleID}Get an aggregate report schedule
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
scheduleIDrequired | path | string | Tenant-scoped aggregate report schedule identifier. |
Responses
200The scheduleReportSchedule404—
/v1/report-schedules/{scheduleID}Replace an aggregate report schedule's editable configuration
Existing run occurrences and their recipient user snapshots are unchanged.
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
scheduleIDrequired | path | string | Tenant-scoped aggregate report schedule identifier. |
Responses
200The updated scheduleReportSchedule400—404—
/v1/report-schedules/{scheduleID}/runQueue the schedule's latest completed reporting window
The occurrence key is the schedule and scheduled-for instant. Repeating this request for the same occurrence returns the existing run and cannot enqueue a second delivery.
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
scheduleIDrequired | path | string | Tenant-scoped aggregate report schedule identifier. |
Responses
200The occurrence already existedReportRunRequestResult201A new occurrence was durably queuedReportRunRequestResult404—409—
/v1/report-schedules/{scheduleID}/runsList a schedule's immutable run ledger
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
scheduleIDrequired | path | string | Tenant-scoped aggregate report schedule identifier. |
Responses
200Newest report occurrences firstReportRunPage404—
/v1/report-schedules/{scheduleID}/state/{action}Pause, resume or retire an aggregate report schedule
Pausing or retiring is soft; immutable run and delivery history is retained.
Show parameters and responsesHide parameters and responses
Parameters
| Name | In | Type | Description |
|---|---|---|---|
scheduleIDrequired | path | string | Tenant-scoped aggregate report schedule identifier. |
actionrequired | path | pause | resume | retire | — |
Responses
200The schedule in its new stateReportSchedule400—404—
/v1/report-schedules/previewPreview an aggregate board artifact
Builds a disclosure-controlled artifact for an explicit half-open window without creating a schedule or claiming email delivery. Missing metric streams remain marked unavailable; suppressed cells remain suppressed rather than becoming zero. This is a generation operation and appends an audit event, so read-only artifact-download access is insufficient.
Show parameters and responsesHide parameters and responses
Responses
200Generated preview bytesstring400—