HonkWatch
PricingLocationsAPI Log inGet started

REST API

Everything you can do in the app you can do from a script. Base URL https://honkwatch.com/api/v1. Send your key from Settings as Authorization: Bearer hw_.... Answers are JSON.

Monitors

GET /monitorsList monitors with status, last response time, uptime and expiry details.
GET /monitors/{id}One monitor, including the latest result per location.
POST /monitorsCreate. Body: type (http, api, keyword, pageload, ping, tcp, udp, dns, ssl, domain, heartbeat), target, optional name, interval seconds, port, keyword, expected, tags, slow_ms.
POST /monitors/{id}/pause, /resumePause or resume.
DELETE /monitors/{id}Delete the monitor and its history.

Hooks (push events to you)

GET /hooksList your REST hooks.
POST /hooksSubscribe: {"target_url": "https://...", "event": "down|up|slow|ssl|all"}. We POST a JSON event to that URL. Zapier, Make and n8n use this.
DELETE /hooks/{id}Unsubscribe.
GET /hooks/sampleA sample event payload for testing.

Account

GET /mePlan, limits, monitors used, SMS credits left.

Heartbeats

A heartbeat monitor gives you a URL. Call it from cron, a backup job or a queue worker; we alert when the call stops coming.

curl -fsS https://honkwatch.com/hb/YOUR-HEARTBEAT-KEY

Badges

https://honkwatch.com/badge/{monitor id}.svg shows the current status as an image for a README or an intranet page.

Examples

curl -H "Authorization: Bearer hw_..." https://honkwatch.com/api/v1/monitors

curl -X POST -H "Authorization: Bearer hw_..." -H "Content-Type: application/json" \
  -d '{"type":"http","target":"https://example.com","interval":60,"name":"Shop"}' \
  https://honkwatch.com/api/v1/monitors

curl -X POST -H "Authorization: Bearer hw_..." -H "Content-Type: application/json" \
  -d '{"target_url":"https://hooks.zapier.com/hooks/catch/...","event":"down"}' \
  https://honkwatch.com/api/v1/hooks

Limits

60 requests a minute per key. Errors come back as {"error": "..."} with a 4xx status.