Uptime monitoring API: manage monitors, alerts and status pages from code
HostTracker's uptime monitoring API is one REST surface - 182 operations across 14 resource groups - for creating monitors, reading results and API uptime, managing incidents and alerts, and wiring up webhooks, all from your own code. One token authenticates every call, and the same 300+ checkpoints that back the dashboard back every one of them.
How a call travels, from your code to 300+ checkpoints and back
One token, every doorThe token you mint once authenticates the REST API, the SDKs, ht-cli, the Terraform provider and the MCP server.
182 operations, 14 groupsMonitors, results, incidents, contacts, alerts, reports, webhooks, status pages, instant checks and jobs - from your own code.
Writes you can retryIdempotency-Key on the writes that fan out; 202 plus a job you can poll or get a callback on for the bulk ones.
A few lines of curl. The whole surface.
One bearer header, JSON in and out, cursor paging on every list.
Mint it once on Integrations - API with the scopes the integration needs; every call carries it as an Authorization header.
Cursor paging on every list
nextCursor and hasMore on each page, so a script never misses a row or reads one twice.
Events out, signed twice
Register a webhook for monitor.down and monitor.up; every delivery carries HT-Signature and a Standard Webhooks signature.
Getting started
Up and running in three steps
Mint, call, subscribe - a minute end to end.
Mint a token
Sign in, open Integrations - API, choose the scopes the integration needs, and copy the token - it is shown once. Left alone it lasts ten years and cannot be revoked before it expires, so scope it narrowly and add an IP allow-list if it leaves your own hands.
Make the first call
Any endpoint proves the token; listing what is currently down is a good place to start.
Register your endpoint and pick the events it cares about. Every delivery is signed twice - HT-Signature and Standard Webhooks - and, for the events the monitoring engine raises, retried up to five times over roughly 2.6 hours.
Every domain the dashboard touches has a matching set of endpoints - read what you need, write what you need, and nothing requires a second credential.
Core
Monitors
Create, list, update and delete monitors of 13 check types; pause, resume, copy and bulk-create.
Core
Monitor types
The type catalogue - one entry per check type, its settings schema and your account's own limits.
Data
Results
The raw check-result history behind every monitor, filterable by time window and location.
Data
Incidents
Every confirmed down episode, open or closed, with duration and the checkpoints that confirmed it.
Control
Maintenance
Scheduled windows that suppress alerting without pausing the monitor underneath them.
Alerting
Contacts
The people and channels alerts reach - email, SMS, voice call, webhook, Slack and messengers.
Alerting
Alerts
Per-monitor alert subscriptions - which contact hears about which monitor, and after what delay.
Alerting
Reports
Scheduled and on-demand uptime reports over a set of monitors and a time range.
Alerting
Webhooks
Signed HTTPS deliveries of monitor and account events, with retries and a delivery log.
Public
Status pages
The status page API: public pages built from your monitors, with incidents you can post to them directly.
Account
Account
Your plan, usage and quota - read on demand without spending any of it.
Account
Monitoring locations
The pools of checkpoints a monitor can run from, and how many agents each one holds.
On demand
Instant checks
A ping and uptime check API: one-off checks across 10 types, run synchronously and returned in the same request.
Async
Jobs
The async door for bulk creates, bulk updates, bulk deletes and reports - poll it or get a callback.
Recipes
What you can build with a token: uptime checks, status pages, webhooks
signed = timestamp + "." + raw_body_bytes
expected = hmac_sha256_hex(secret, signed)
if not any(hmac_equal(expected, s) for s in signatures_from(header)):
reject() # never trust a re-serialized body
AssertRuleLang rules judge the response, not just the status code - here, up means a 2xx that also contains the text a working checkout page always renders.
Pause a monitor during a deploy
A monitor's enabled flag is a plain PATCH - flip it off before a release and back on when the deploy is done.
List what is down
The same filter the dashboard uses, straight over the wire.
Open a status-page incident
Declaring an incident fans out to the page's subscribers, so this is one of the nine writes that require an Idempotency-Key.
Run an instant check from several regions and poll it
An instant check is synchronous work behind an async door - it answers 202 with a Retry-After, and the same id resolves the result.
Subscribe a contact to a monitor
Setting the alert-type set for a (monitor, contact) pair is idempotent - send the whole set every time, not a diff.
Verify a webhook signature
HMAC-SHA256 over the timestamp and the raw body, keyed on the whole secret string - the full working code, in Python and Node, is in the webhooks guide.
Bulk-create monitors from a CSV, safely
The bulk door is async and requires an Idempotency-Key - a timed-out request can be retried without creating the batch twice.
By the numbers
Surface182 operations14 resource groups, 145 paths, one token.
Coverage300+ checkpoints334 checkpoints across 158 cities.
Monitor types13 typesHttp, API, Ping, Port, DNS, SSL and more, one API.
Webhooks15 event types13 subscribable, 2 callback-only, signed twice.
Async writesIdempotency-Key + jobs202 plus a job you can poll or get a callback on.
Track recordSince 2004Two decades of uptime data behind every call.
One surface, five doors
REST, SDKs, ht-cli, Terraform, MCP - and webhooks in and out
One token. Stated limits. Nothing hidden behind "generous".
The same personal API token authenticates the REST API v2, every official SDK, the ht-cli command line client and the MCP server. Mint it once on your HostTracker profile, pick the scopes it may use, and point any of the four at it.
Plan
API access
Reads
Writes
Free, Personal, Webmaster
Not included
-
-
30-day trial
Included
10 per minute, 10,000 per month
5 per minute, 500 per month
Business
Included
60 per minute, 100,000 per month
30 per minute, 20,000 per month
Enterprise
Included
120 per minute, 1,000,000 per month
60 per minute, 100,000 per month
Scoped tokens
A token carries only the scopes you tick - monitor, contact, webhook, check, status page, report, incident, maintenance, job, account - each as read or write. Grant what the integration needs and nothing else.
Long-lived, not revocable
Tokens are JWTs with a lifetime you choose (10 years by default) and cannot be revoked before they expire; an account-wide API switch disables every token at once. Treat a token like a password: keep it out of source control, and add an IP allow-list and a per-token request cap when you mint it.
Limits you can read
Every response carries RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset and RateLimit-Policy; a 429 carries Retry-After. Current usage is on the Integrations - API page and at GET /account/quota.
Safe retries
Writes accept an Idempotency-Key, so a retried request is never a duplicate; long operations return a job you can poll or have delivered to a webhook.
Every chapter opens in place, so the page stays short.
API v1 - legacy
API v1 is the older REST API at https://api1.host-tracker.com/ (also reachable through www.host-tracker.com/api/web/v1/). It manages monitoring tasks, contacts, subscriptions, statistics, outages, incidents and agents, and it authenticates by exchanging a login and password for a 48-hour token rather than a long-lived bearer token.
API v1 is obsolete: it keeps working and has no removal date, but it gets no new capability. Maintenance windows, webhooks, contact groups, status pages, instant checks and the bulk job doors exist only in API v2 - new integrations use v2. Existing v1 integrations do not need to change on any particular schedule.
Looking for a tool that monitors YOUR API? That is a different job - API monitoring checks that someone else's (or your own) API endpoints are up and answering correctly. This page is about calling HostTracker's own API to control your monitoring.
Key takeaways
Key takeaways
The HostTracker REST API v2 publishes 182 operations across 14 resource groups: monitors, results, incidents, maintenance, contacts, alert and report subscriptions, status pages, webhooks, agents, account, instant checks and jobs.
Authentication is a bearer JWT (JSON Web Token) with per-scope permissions; errors follow RFC 9457 problem+json, lists use cursor paging, and every write accepts an idempotency key.
Webhooks deliver 15 typed events - monitor up, down and repeatedly down, incident opened and closed, certificate and domain expiring, and others - signed with HMAC and retried on a durable ladder.
The OpenAPI 3.1 document is published, and four official SDKs, a 139-command CLI and an MCP (Model Context Protocol) server are generated from it.
API access is included in the 30-day trial (100 monitors, no credit card) and on the Business plan and above; paid plans start at $14 per month.
Integrations
One token, five doors
The same REST API v2 behind every one of them - pick the door that fits the job, and the token you minted once works on all five.
The REST API v2 is included in the 30-day free trial and in the Business and Enterprise plans. It is not part of the Free, Personal or Webmaster plans - upgrade or start a trial to mint a token. The access and limits table below states exactly what each plan's token can do.
Sign in, open Integrations - API on your profile, choose the scopes the integration needs - monitor, contact, webhook, check, status page, report, incident, maintenance, job or account, each as read or write, or the whole family - and mint the token. It is shown once and is not stored on our side, so copy it immediately; if you lose it, mint another. Left alone a token lasts ten years, but you can set a shorter expiration, an IP allow-list of up to ten addresses, and a per-token request cap.
They are set by plan, not by endpoint. The 30-day trial gets 10 reads and 5 writes per minute, 10,000 reads and 500 writes a month. Business gets 60 reads and 30 writes per minute, 100,000 reads and 20,000 writes a month. Enterprise gets 120 reads and 60 writes per minute, 1,000,000 reads and 100,000 writes a month. Every response carries RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset and RateLimit-Policy headers, and a 429 adds Retry-After, so you back off exactly as long as needed instead of guessing.
No. The Free, Personal and Webmaster plans do not include API access at all - there is no free tier of the API on its own. The 30-day trial does include it, with no card required, which is the way to evaluate the API before committing to a paid plan. Production use needs Business or Enterprise.
Webhooks, for anything time-sensitive. Fifteen event types cover monitor state changes, incidents, monitor lifecycle, maintenance and expiry warnings, delivered as a signed HTTPS POST with a five-attempt retry ladder over about 2.6 hours for the events the monitoring engine raises. Poll GET /monitor or GET /monitor/incident when you only need current state on your own schedule, or as a fallback before you have a receiving endpoint wired up - both ride the same token and the same scopes.
Any write accepts an Idempotency-Key header, and nine operations - the bulk create, update and delete doors, reset-stats, and the status-page incident writes - refuse without one, because a retried request after a timeout must never repeat the effect. Bulk operations answer 202 with a job id instead of doing the work inline; poll GET /job/{id} or name a webhook as a callback, and read state (queued, running, succeeded, partial, failed, interrupted) rather than assuming success or failure from the HTTP status alone.
No, you do not have to migrate: API v1 keeps working with no removal date. But it gets no new capability - maintenance windows, webhooks, contact groups, status pages, instant checks and the bulk job doors exist only in v2, and v1 authenticates with a login-and-password exchange for a 48-hour token rather than a long-lived bearer token. New integrations should start on v2; the migration guide maps every v1 endpoint to its v2 equivalent.
Both are part of the same REST API v2. The status-pages resource group creates and updates public status pages and posts incidents to them; the instant-checks door runs a one-off ping, HTTP, port, DNS or traceroute check from the locations you name and returns the result in the same request, no monitor required.
Yes. The v2 API is described by a published OpenAPI 3.1 document at https://api2.host-tracker.com/openapi/v2.json (source at github.com/HostTracker/openapi), and it is the same document the four official SDKs are generated from - any OpenAPI-generator-compatible tool can produce a client in a language we do not ship. You lose the hand-written layer the official SDKs add - retries, idempotency keys, paging, webhook verification - but the endpoint coverage is identical.