API & endpoint monitoring
Scheduled REST API checks with JSON-path assertions, header auth, response-time SLOs and alert escalation. For SaaS, integrations and internal services.
Checking uptime is only half the job — the other half is: does the API actually respond correctly? A 200 OK isn't enough if the JSON body says 'error: true'. XICTRAQ calls your endpoints on the configured interval, sends custom headers (bearer tokens, API keys), optional request bodies and checks the response against concrete expectations: HTTP status, response time, JSON-path values, text-contains checks. When two consecutive checks fail, the alert fires on the same channels as your uptime checks — email, Slack, Teams, Discord, Telegram, webhook.
API & endpoint monitoring features
REST endpoints per interval
GET/POST/PUT/PATCH/DELETE/HEAD. Interval from 30s (Agency) to 5 min (Starter). Timeout 1-30s configurable.
Custom headers & auth
Bearer tokens, API keys, X-Request-ID — send any headers. Body payloads for POST/PUT with JSON or form data.
Status-code assertions
Exact (== 200), range (200-299), not-equal (!= 500). Granular control instead of "not 5xx".
Response-time SLOs
Response-time assertion per check: the check fails when the response time exceeds threshold X ms. History per endpoint with a response-time graph of the last 100 runs.
JSON-path assertions
Check concrete values in the response body: `$.status == "ok"`, `$.data.users[0].email regex "@company.invalid$"`. Full operators: eq, neq, gt, lt, contains, regex, exists.
Alerts on all channels
When two consecutive checks fail, the alert fires through the same pipeline as uptime: email, Slack, Teams, Discord, Telegram, webhook, with escalation. A single outlier shows in the history but raises no alert. The history highlights failed checks, and the run-now debug output evaluates each assertion.
How it works
Create endpoint
URL, method, interval. Optionally add headers and body. Assertions default to HTTP 200-299 — customizable via JSON editor.
Run-now button
One click, instant run with full debug output: HTTP code, response time, per-line assertion evaluation. Test before go-live.
History and alerts
History as a visual timeline directly in the dashboard. A failed assertion marks the run as “Fail” in the history and stores the reason (failure_reason). If the next check fails too, the alert goes out on your channels.