Syschecks/Docs/Reports

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:

ExportFormatContents
Incidents CSVCSVAll incidents with start/end time, duration, old/new status, error message
Logs CSVCSVRecent 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

  1. Open a check's detail page
  2. Click the Export or Report button
  3. Choose the format (PDF, CSV, or JSON)
  4. Select the time range and sections to include
  5. Click Generate

From the Dashboard

  1. Go to the Dashboard
  2. Click the Export button
  3. Choose to export all checks or apply filters first
  4. Select the format and options
  5. Click Generate

From a Status Page

  1. Open a public status page
  2. Click the Download Report link
  3. 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:

ScopeWhat's Included
Single checkOne check only
Whole organizationAll active checks in your organization
Selected checksA 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:

FrequencyWhen it is sent
DailyEvery day, at the hour you pick
WeeklyOn the weekday you pick, at the hour you pick
MonthlyOn 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:

SectionDescription
SummaryCheck name, type, URL, current status, configuration overview
UptimeUptime percentages for 24h, 7d, 30d periods
IncidentsList of all incidents with timestamps, duration, and error details
Response TimesAverage, minimum, maximum, and p95 response times
LogsRecent check execution logs with details
SLOSLO 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

POST/api/reports/generateGenerate a report (async for PDF)
GET/api/reports/{id}Get report status and download
GET/api/reports/List your generated reports
GET/api/checks/{id}/export/incidents.csvQuick export: incidents as CSV
GET/api/checks/{id}/export/logs.csvQuick export: check logs as CSV
Example: Generate a PDF Report
POST /api/reports/generate
{
  "check_id": 42,
  "format": "pdf",
  "period_days": 30,
  "sections": ["summary", "uptime", "incidents", "response_times"]
}
Example: Response (report queued)
{
  "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.

Next Steps