Skip to main content
Baobyte AML Suite
Documentation contents

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

GET/v1/report-board-layouts

List validated internal-board layouts

Required permission: distribution.schedule.readlistReportBoardLayouts

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 responses

Responses

  • 200Validated board layoutsReportBoardLayoutPage
GET/v1/report-runs/{runID}

Get an immutable aggregate report run

Required permission: distribution.schedule.readgetScheduledReportRun
Show parameters and responses

Parameters

NameInTypeDescription
runIDrequiredpathstringTenant-scoped immutable aggregate report occurrence identifier.

Responses

  • 200The run and its current delivery stateReportRun
  • 404—
GET/v1/report-runs/{runID}/artifact

Download the stored aggregate artifact bytes

Required permission: distribution.artifact.downloaddownloadScheduledReportArtifact

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 responses

Parameters

NameInTypeDescription
runIDrequiredpathstringTenant-scoped immutable aggregate report occurrence identifier.

Responses

  • 200Immutable artifact bytesstring
  • 404—
  • 409—
GET/v1/report-runs/{runID}/events

List append-only generation and delivery transitions

Required permission: distribution.schedule.readlistScheduledReportRunEvents
Show parameters and responses

Parameters

NameInTypeDescription
runIDrequiredpathstringTenant-scoped immutable aggregate report occurrence identifier.

Responses

  • 200The immutable transition ledgerReportRunEventPage
  • 404—
GET/v1/report-schedules

List aggregate report schedules

Required permission: distribution.schedule.readlistReportSchedules

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 responses

Parameters

NameInTypeDescription
include_retiredquerybooleanInclude soft-retired schedules without deleting their history.

Responses

  • 200Aggregate report schedulesReportSchedulePage
POST/v1/report-schedules

Create an aggregate report schedule

Required permission: distribution.schedule.managecreateReportSchedule

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 responses

Responses

  • 201The active schedule and its first occurrenceReportSchedule
  • 400—
GET/v1/report-schedules/{scheduleID}

Get an aggregate report schedule

Required permission: distribution.schedule.readgetReportSchedule
Show parameters and responses

Parameters

NameInTypeDescription
scheduleIDrequiredpathstringTenant-scoped aggregate report schedule identifier.

Responses

  • 200The scheduleReportSchedule
  • 404—
PATCH/v1/report-schedules/{scheduleID}

Replace an aggregate report schedule's editable configuration

Required permission: distribution.schedule.manageupdateReportSchedule

Existing run occurrences and their recipient user snapshots are unchanged.

Show parameters and responses

Parameters

NameInTypeDescription
scheduleIDrequiredpathstringTenant-scoped aggregate report schedule identifier.

Responses

  • 200The updated scheduleReportSchedule
  • 400—
  • 404—
POST/v1/report-schedules/{scheduleID}/run

Queue the schedule's latest completed reporting window

Required permission: distribution.schedule.managerunReportSchedule

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 responses

Parameters

NameInTypeDescription
scheduleIDrequiredpathstringTenant-scoped aggregate report schedule identifier.

Responses

  • 200The occurrence already existedReportRunRequestResult
  • 201A new occurrence was durably queuedReportRunRequestResult
  • 404—
  • 409—
GET/v1/report-schedules/{scheduleID}/runs

List a schedule's immutable run ledger

Required permission: distribution.schedule.readlistScheduledReportRuns
Show parameters and responses

Parameters

NameInTypeDescription
scheduleIDrequiredpathstringTenant-scoped aggregate report schedule identifier.

Responses

  • 200Newest report occurrences firstReportRunPage
  • 404—
POST/v1/report-schedules/{scheduleID}/state/{action}

Pause, resume or retire an aggregate report schedule

Required permission: distribution.schedule.managechangeReportScheduleState

Pausing or retiring is soft; immutable run and delivery history is retained.

Show parameters and responses

Parameters

NameInTypeDescription
scheduleIDrequiredpathstringTenant-scoped aggregate report schedule identifier.
actionrequiredpathpause | resume | retire—

Responses

  • 200The schedule in its new stateReportSchedule
  • 400—
  • 404—
POST/v1/report-schedules/preview

Preview an aggregate board artifact

Required permission: distribution.schedule.managepreviewScheduledReport

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 responses

Responses

  • 200Generated preview bytesstring
  • 400—