included_range_days) and the destinations it fans out to.
Destinations are not configured in this API: they are integration destinations created via the Integrations API. Use GET /v4/scheduled-reports/destinations to discover what’s available for the project, then reference the destination by {type, id} when creating or updating a report.
Key concepts
- Send time —
send_atis a UTC time-of-day inHH:MMformat, aligned to 30-minute slots ("00:00"…"23:30"). The daily job runs within a few minutes of this time. - Coverage window —
included_range_daysis the number of days of data bundled into each delivery. Only three values are supported:1,3,7. - Status — Reports are
"draft"(paused, no deliveries) or"active"(scheduled). - Environment — Each report targets a single environment:
"sandbox"or"production". - Send test —
POST /v4/scheduled-reports/{report_id}/send-testtriggers an immediate one-off delivery. Rate-limited to one call per minute per report (returns429if exceeded).
send_at values
Must be in UTC HH:MM, aligned to 30-minute slots, "00:00" to "23:30":
"23:45" is invalid (not aligned). "12:15" is invalid (not aligned). "24:00" is invalid (out of range).
included_range_days values
Only three values are accepted:
| Value | Description |
|---|---|
1 | Prior day (most recent UTC day closed before send_at) |
3 | Prior 3 days |
7 | Prior 7 days |
status values
| Value | Meaning |
|---|---|
"draft" | Paused — no deliveries are scheduled. |
"active" | Active — enqueued for delivery at each send_at. |
environment values
| Value | Meaning |
|---|---|
"sandbox" | Report covers sandbox/testing events only. |
"production" | Report covers live production events. |
Destinations
A destination is a{type, id} pair. type is a namespaced kind; id is the destination’s opaque identifier. The only type currently exposed is target_integration, which points at an integration destination created via the Integrations API (typically a webhook, Slack channel, or email endpoint).
Call GET /v4/scheduled-reports/destinations to enumerate all valid destinations for a project before creating or updating a report.
Available endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /v4/scheduled-reports | List scheduled reports (paginated via limit/offset) |
| POST | /v4/scheduled-reports | Create scheduled report |
| GET | /v4/scheduled-reports/destinations | List available destinations |
| GET | /v4/scheduled-reports/{report_id} | Get scheduled report |
| PUT | /v4/scheduled-reports/{report_id} | Partially update scheduled report |
| DELETE | /v4/scheduled-reports/{report_id} | Delete scheduled report |
| POST | /v4/scheduled-reports/{report_id}/send-test | Trigger a one-off test delivery (202; rate-limited) |
Example: create an active daily report at 09:00 UTC
201 Created):
Example: partial update (pause a report)
PUT accepts a partial body — omit any field to keep it unchanged. To pause a report, send only the new status:
Example: send a one-off test
Useful when verifying destination credentials or report content:202 Accepted immediately; the delivery runs asynchronously.
The send-test endpoint is rate-limited to one call per minute per report. Repeated calls within 60 seconds return 429 Too Many Requests with a Retry-After: 60 header.