ReportRun

A request or response body; the type column links to the schemas it refers to.

ReportRun

FieldTypeRequiredDescription
idstring (uuid)yes—
report_idstring (uuid)yes—
triggerstringyes

`scheduled`: claimed by the cron tick. `manual`: a superuser's send-now.

one of "scheduled" | "manual"

due_atstring (date-time)yes

The scheduled occurrence the run is for; the request time of a manual run.

period_fromstring (date)yes

First day the run's sign-in figures cover, on the deployment's clock.

period_tostring (date)yes

Last day they cover, inclusive.

statusstringyes

one of "running" | "completed" | "failed"

started_atstring (date-time)yes—
finished_atstring (date-time) | nullyes—
sent_countintegeryes

Emails the mail server took.

minimum 0

skipped_countintegeryes

Recipients sent no email: no address on file, or an account since disabled. Those with an address-less but live account still get the in-app notification.

minimum 0

failed_countintegeryes

Recipients whose email the mail server refused or that failed validation.

minimum 0

detailstring | nullyes

Why a run failed, or the first refusal of a run that sent with failures.

triggered_bystring (uuid) | nullyes

The superuser who sent a manual run; null for a scheduled one.

jsonExample
{
  "id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "report_id": "1b671a64-40d5-491e-99b0-da01ff1f3341",
  "trigger": "scheduled",
  "due_at": "2026-01-01T00:00:00.000Z",
  "period_from": "2026-10-19",
  "period_to": "2026-10-19",
  "status": "running",
  "started_at": "2026-01-01T00:00:00.000Z",
  "finished_at": "2026-01-01T00:00:00.000Z",
  "sent_count": 0,
  "skipped_count": 0,
  "failed_count": 0,
  "detail": "string",
  "triggered_by": "1b671a64-40d5-491e-99b0-da01ff1f3341"
}