Schedule report subscriptions
Instead of checking the uptime report yourself, you can have HostTracker generate and deliver it automatically on a schedule, to a contact you choose.
What a report contains
Section titled “What a report contains”A report covers one monitor’s activity since the last one was sent (or the range you request for an on-demand report): its up/down state over the period, uptime and response-time statistics, the outages that occurred, the incident records behind them, and - if you choose - the detailed check log. Which of these appear is controlled by the sections you pick (see below); a periodic subscription always includes state, stats, outages and incidents, and you choose the output format.
Settings reference
Section titled “Settings reference”| Setting (UI label) | API field | Type / allowed values | Default | Plan limits | What it does for you |
|---|---|---|---|---|---|
| Contact | contactId (path segment) |
one of your alert contacts | - | - | Who receives the report. Must be an Email contact - reports are Email-only. |
| Frequency | frequencies |
set of daily, weekly, monthly, quarterly, yearly |
none | which frequencies are available depends on your plan | How often the report is generated and sent for this monitor/contact pair. You can subscribe a pair to more than one frequency at once. |
| Format | (report-generation only; a scheduled subscription uses the account’s report-format setting) | pdf, html, xml, csv |
pdf |
- | The file/rendering the report is delivered as. |
Subscribe a contact to a report in the app
Section titled “Subscribe a contact to a report in the app”- Open a monitor’s settings and go to its Reports section (alongside its alert Subscriptions).
- Choose the contact to deliver the report to (add them as a contact first if they aren’t one yet).
- Choose how often it’s sent - daily, weekly, monthly, quarterly or yearly. You can pick more than one.
- Choose the delivery format.
- Save.
The contact then receives a report on that schedule, covering that monitor’s uptime and check activity for the period since the last one.
Formats
Section titled “Formats”Reports can be delivered as:
- PDF - a formatted document, the most common choice for sharing with a client or manager.
- HTML - viewable directly in an email client or browser.
- XML - for feeding into another system.
- CSV - the raw data, for spreadsheets.
Who can receive a report
Section titled “Who can receive a report”A report is delivered to a contact - the same contacts you use for alerts, and it must be an Email contact (reports are not sent by SMS, voice or messenger channels). If you want a report emailed to someone who isn’t already a contact on your account, add them as one first.
Do it with the API or MCP
Section titled “Do it with the API or MCP”Managing the schedule: PUT /monitor/{monitorId}/report/{contactId} sets the whole frequency set for
that monitor/contact pair in one call (idempotent - send every frequency you want the pair to have, not just
the one you’re adding); GET /monitor/{monitorId}/report lists who a monitor reports to and on what
schedule; DELETE /monitor/{monitorId}/report/{contactId} removes one pair.
PUT /monitor/<monitorId>/report/<contactId>{ "frequencies": ["weekly", "monthly"] }Generating a report on demand (for a one-off document, or to build your own summary) is asynchronous:
POST /monitor/report{ "monitorIds": ["<id1>", "<id2>"], "from": 1758000000, "to": 1758604800, "format": "pdf", "sections": ["state", "stats", "outages", "incidents"]}This answers a job id - poll GET /job/{id} until it concludes, then read the finished job’s report content
url. An MCP client uses the generate_report tool with the same fields (times in Unix seconds), then
get_job/wait_for_job to retrieve it; list_report_types lists the available formats, sections and
frequencies. For a quick numeric summary instead of a rendered document, get_uptime_summary and
list_incidents (see the uptime report page) are usually the faster path - reach
for generate_report when you actually need the formatted file.
Limits and gotchas
Section titled “Limits and gotchas”- A report contact must be Email type - subscribing a non-Email contact to a report is refused.
- Which frequencies are available depends on your plan; a plan with no reporting entitlement refuses every frequency.
PUT .../report/{contactId}replaces the frequency set for that pair - send the full set you want, not a delta.

