Every change we detect can be pushed straight to your own systems the moment it happens - no polling, no manual checking.
Add a webhook URL in your team's settings and MonitorHQ will POST a JSON payload to it the moment a change is detected on any entity you're tracking. You can also send a test delivery at any time to confirm your endpoint is wired up correctly.
{
"event": "change_detected",
"entity_name": "ACME PTY LTD",
"acn": "123456789",
"abn": null,
"events": [
{
"title": "Document Lodged",
"description": "Change of registered address",
"event_type": "document_lodged",
"effective_date": "2026-08-16",
"source": "asic",
"metadata": null
}
],
"detected_at": "2026-08-16T04:12:00+00:00"
}
Every request carries an X-Monitorhq-Signature header in the form t={timestamp},v1={hmac}, computed as HMAC-SHA256 of {timestamp}.{body} using your webhook secret.
[$timestamp, $hmac] = sscanf(
$_SERVER['HTTP_X_MONITORHQ_SIGNATURE'],
't=%d,v1=%s'
);
$expected = hash_hmac(
'sha256',
$timestamp . '.' . $rawBody,
$webhookSecret
);
$valid = hash_equals($expected, $hmac);
const [, timestamp, hmac] = /^t=(\d+),v1=(.+)$/.exec(
req.headers['x-monitorhq-signature']
);
const expected = crypto
.createHmac('sha256', webhookSecret)
.update(`${timestamp}.${rawBody}`)
.digest('hex');
const valid = crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(hmac)
);
import hmac, hashlib, re
match = re.match(r"t=(\d+),v1=(.+)", request.headers["X-Monitorhq-Signature"])
timestamp, signature = match.group(1), match.group(2)
expected = hmac.new(
webhook_secret.encode(),
f"{timestamp}.{raw_body}".encode(),
hashlib.sha256,
).hexdigest()
valid = hmac.compare_digest(expected, signature)
Head to Team Settings → Webhooks once you're signed in.
A webhook is just an HTTPS request, so MonitorHQ works with anything that can receive one - including these, with no code required on your side.
Point us at a "Catch Hook" trigger to kick off any Zap when a change is detected.
Route alerts into a channel with a Slack incoming webhook or a small relay function.
Use a Make webhook trigger to build multi-step scenarios off entity changes.
Self-hosting your automation? Wire us into an n8n Webhook node instead.
The REST API covers account info, subscription status, ACN/ABN validation, and full read/write access to your monitored entities.