Communicate

Reporting: availability, SLA, performance and scheduled delivery

The six report types and their CSV/PDF exports, SLA targets and error budgets, custom reports with widgets, and scheduled reports delivered to a notification destination.

Reporting is on Pro and above. Every report is available in the app, as JSON, CSV or PDF from the API (?format=json|csv|pdf), and on a schedule to any notification destination.

Report types

ReportRouteContents
AvailabilityGET /api/v1/reports/availabilityUptime per monitor over the period, with downtime totals and the incidents that caused them.
PerformanceGET /api/v1/reports/performanceResponse-time distribution per monitor (percentiles, trend), and the anomalies recorded.
SLAGET /api/v1/reports/slaAvailability against each SLA target, met/missed, and the remaining error budget for the period.
IncidentsGET /api/v1/reports/incidents (+ /export)Every incident in the period: source, duration, acknowledge and resolve times.
IntelligenceGET /api/v1/reports/intelligenceChange events, anomalies and correlations, by monitor and category.
Monitor healthGET /api/v1/reports/monitor-healthWhich monitors are noisy, flapping, misconfigured or never succeeded.

SLA targets

An SLA target (/api/v1/sla-targets) pairs a set of monitors with an availability percentage and a period of daily, weekly, monthly or quarterly. The SLA report computes achieved availability per target and the error budget left in the current period, and the SLA calculator shows what a target means in minutes.

Custom reports

A custom report (/api/v1/custom-reports) is a named page of widgets — availability, performance, sla, incidents, intelligence, monitor_health — over a chosen period, with visibility of private, organization or shared (to shared_with_user_ids). Use one for the monthly ops review and another for a customer's QBR.

Scheduled reports

FieldValues
report_typeavailability · performance · sla · incidents · intelligence · monitor_health · custom (with custom_report_id)
frequencydaily · weekly (with day_of_week 0–6) · monthly · quarterly (with day_of_month 1–28)
time_of_day, timezoneHH:MM in an IANA timezone, e.g. 08:00 / Europe/Berlin.
destination_idsNotification destinations that receive the scheduled_report event — an email destination for the client contact, a Slack channel for the team.
enabledPause without deleting. next_run_at, last_run_at and last_status are read-only.
scheduled-report.shbash
curl -X POST https://api.pulsetrace.app/api/v1/scheduled-reports \
  -H "Authorization: Bearer $PULSETRACE_API_KEY" -H "Content-Type: application/json" \
  -d '{
    "report_type": "sla",
    "frequency": "monthly",
    "day_of_month": 1,
    "time_of_day": "07:00",
    "timezone": "Europe/Berlin",
    "destination_ids": ["…"],
    "enabled": true
  }'

The cron builder is handy for reasoning about a schedule, but scheduled reports use the fields above rather than a cron expression.

Try it on your own endpoints.

Ten monitors, one region and a status page are free — no card.

Start free