Roadmap · Webhooks
Pushed event delivery is on the roadmap.
Today you get the answer on the same request: your server calls rh.verify() and reads the result immediately. Webhooks — Root Herald pushing later changes to you (a device going stale, a session revoked) without you having to poll — are planned but not shipping yet. The shapes below are a design preview, not an available feature.
{
"iss": "https://rootherald.io/acme", // who sent it (your Root Herald account)
"iat": 1718500000, // when it happened
"jti": "set_9f2c…", // unique ID for this event
"events": {
"https://rootherald.io/event/attestation-completed": {
"subject": { "device_ueid": "2f9c8a14…" }, // anonymous ID for the device
"earStatus": "affirming", // how strong the hardware proof was
"acr": "urn:rootherald:device:high" // assurance level
}
}
}What you get instead today
You get the answer on the same request.
Every answer you need comes straight back from rh.verify(). There is no event stream to subscribe to and nothing to poll — the check happens on your request and the result returns immediately. When pushed delivery ships, it will sit alongside this path, not replace it.
Planned events
What the event catalog is expected to cover.
attestation-completedA device check succeeded, or passed with a warning.
attestation-failedA device check failed: the proof didn't check out, a rule rejected it, or the challenge expired.
compliance-changeA device's confidence level changed since you last saw it.
session-revokedA session was revoked out of band.
enrollment-revokedA device enrollment was revoked.
device-staleA device hasn't checked in within your staleness window.
Build on the same-request answer today.
Free up to 10,000 device checks a month.