Skip to content
mittr

Hosted test destinations

Sometimes you just need to know whether Mittr will retry a 503, what a 2-second timeout looks like in the dashboard, or whether your alert fires on a deliberate 500 — without standing up a real webhook receiver first. Mittr hosts a small mailbox of simulator endpoints you can point any outbound endpoint at.

All endpoints are public, no auth required, and accept any HTTP method (GET, POST, PUT, PATCH, DELETE). Base URL: https://app.mittr.io.

PathWhat it does
/sim/200Returns 200 with {"ok":true,"simulated":200}
/sim/204Returns 204 No Content
/sim/<NNN> (e.g. /sim/418)Returns any HTTP status in [100, 599]
/sim/slow?ms=NSleeps N ms (capped at 30s), then returns 200
/sim/malformedReturns 200 with Content-Type: application/json but a broken JSON body — useful for testing receiver error handling
/sim/echoReturns 200 with a JSON body echoing the request’s method, path, query, headers, and raw body (body capped at 1 MB)

A request to an unknown /sim/... path returns 404 with a list of what’s available.

Terminal window
# Confirm your endpoint config works against a known-good 200.
curl https://app.mittr.io/sim/200
# Trigger a retry cascade against a guaranteed 503.
curl -X POST https://app.mittr.io/sim/503
# See what Mittr's delivery worker actually sends — every header,
# the raw body — by pointing an endpoint at /sim/echo and reading
# the response body in the Activity → Outbound expand.
curl -X POST https://app.mittr.io/sim/echo \
-H 'X-Custom: value' \
-d '{"hello":"world"}'
# Test your delivery timeout setting.
curl -X POST "https://app.mittr.io/sim/slow?ms=5000"

The plan calls for a /sim/drop-then-recover?n=N endpoint that returns 500 for the first N requests in a sequence and then 200 — handy for testing exact retry counts. That needs per-caller state with a TTL, which we’d rather get right than rush; it’ll land in a follow-up.

These endpoints are for testing — they’re free, but they’re also not part of any SLA. Don’t wire them into a production data flow. They’re here to make “does my retry config do what I think it does?” a 10-second question instead of a half-day yak-shave.