Reports
Generate on-demand reports in PDF, CSV, or JSON format, or schedule recurring reports delivered by email. Export incidents, check logs, uptime statistics, and more for compliance, auditing, or stakeholder communication.
Report Types
Full Check Report
A comprehensive report for a single check or an entire project. Includes:
- Check configuration summary
- Uptime statistics (24h, 7d, 30d)
- Incident history with durations
- Response time statistics (avg, min, max, p95)
- Recent check logs
- SLO status (if configured)
Quick Exports
For quick data access, use the instant CSV exports:
| Export | Format | Contents |
|---|---|---|
| Incidents CSV | CSV | All incidents with start/end time, duration, old/new status, error message |
| Logs CSV | CSV | Recent check logs with timestamp, status, response time, details |
Status Page Report
A public-facing report for a status page. Available without authentication for public status pages. Includes overall status, per-check uptime, and incident summary.
Generating a Report
From the Check Detail Page
- Open a check's detail page
- Click the Export or Report button
- Choose the format (PDF, CSV, or JSON)
- Select the time range and sections to include
- Click Generate
From the Dashboard
- Go to the Dashboard
- Click the Export button
- Choose to export all checks or apply filters first
- Select the format and options
- Click Generate
From a Status Page
- Open a public status page
- Click the Download Report link
- A pre-configured status page report will be generated
Scheduled Reports
Besides one-off exports, you can schedule recurring reports that are generated automatically and emailed to a list of recipients.
Report Scope
A scheduled report can cover:
| Scope | What's Included |
|---|---|
| Single check | One check only |
| Whole organization | All active checks in your organization |
| Selected checks | A custom selection of checks you pick yourself |
Creating a Scheduled Report
- From the Reports page — Click New report and choose Whole organization or Selected checks, then set the schedule, format, period, and recipients.
- From a check's report dialog — The schedule section has the same scope selector with the current check pre-selected. You can tick additional checks or switch to whole organization.
When the Report Is Sent
You choose how often the report goes out and at what hour:
| Frequency | When it is sent |
|---|---|
| Daily | Every day, at the hour you pick |
| Weekly | On the weekday you pick, at the hour you pick |
| Monthly | On the 1st of every month, at the hour you pick |
The hour follows the timezone of the person who owns the report — the one who created it — not the timezone of whoever is looking at it. So a report set to 08:00 by a colleague in Warsaw arrives at 08:00 Warsaw time, even if you open it from another country. The dialog spells out the timezone next to the hour, so you always know which clock applies. The owner’s timezone comes from their profile settings.
Daylight saving time is handled for you: a report set to 08:00 keeps arriving at 08:00 local time on both sides of the clock change.
Editing a Scheduled Report
Scheduled reports can be fully edited later from the Reports page — name, scope (including the check selection), frequency, send hour, weekday, format, period, and recipients. Changing the hour or the weekday re-schedules the next send immediately, so the very next report already goes out at the new time.
Send Now
The Send now button (on Reports page rows and in the check report dialog) dispatches a scheduled report immediately without affecting its schedule. Use it to test the recipients and content before the next scheduled run.
Delivery & Timing
- Report emails are HTML-formatted with a summary table (scope, period, format, schedule) and the report file attached.
- Schedules fire at 6:00 AM in the report owner's profile timezone: daily reports every day, weekly reports on Monday, monthly reports on the 1st.
Output Formats
PDF Reports
Professional PDF reports with formatted tables, statistics, and headers. Supports Unicode characters (international text). PDF generation runs asynchronously — for large reports, you'll see a progress indicator and can download when ready.
- Best for: Sharing with management, compliance documentation, archiving
- Includes: Formatted tables, headers, summary statistics
- Font: DejaVu Sans (full Unicode support)
CSV Reports
Comma-separated values for easy import into spreadsheets (Excel, Google Sheets) or data analysis tools.
- Best for: Data analysis, importing into other tools, automated processing
- Includes: Raw data with headers, one row per record
- Encoding: UTF-8 with BOM (for Excel compatibility)
JSON Reports
Machine-readable JSON for programmatic access and integration with other systems.
- Best for: API integrations, automated reporting pipelines, custom dashboards
- Includes: Structured data matching the API response format
Report Sections
When generating a full report, you can select which sections to include:
| Section | Description |
|---|---|
| Summary | Check name, type, URL, current status, configuration overview |
| Uptime | Uptime percentages for 24h, 7d, 30d periods |
| Incidents | List of all incidents with timestamps, duration, and error details |
| Response Times | Average, minimum, maximum, and p95 response times |
| Logs | Recent check execution logs with details |
| SLO | SLO target, current uptime, error budget status (if SLO configured) |
Tip
For quick incident exports, use the Incidents CSV quick export button. It's instant and doesn't require configuring report options.
Report API
/api/reports/generateGenerate a report (async for PDF)/api/reports/{id}Get report status and download/api/reports/List your generated reports/api/checks/{id}/export/incidents.csvQuick export: incidents as CSV/api/checks/{id}/export/logs.csvQuick export: check logs as CSVPOST /api/reports/generate
{
"check_id": 42,
"format": "pdf",
"period_days": 30,
"sections": ["summary", "uptime", "incidents", "response_times"]
}{
"id": 15,
"status": "generating",
"format": "pdf",
"created_at": "2026-02-12T14:30:00Z"
}Poll GET /api/reports/{id} until status changes to "completed", then download the file from the response URL.
Report Retention
Generated reports are stored temporarily and cleaned up automatically:
- Reports are stored for 7 days after generation
- A daily cleanup task removes expired reports
- Download your report promptly after generation
Temporary Storage
Reports are not permanent. If you need to keep a report, download it and store it in your own systems. Reports older than 7 days are automatically deleted.