Inboxhook

API reference

Create a temporary endpoint, send HTTP requests to it, then read them back as JSON. The same API powers the inspector page. No key is required.

https://edge.rooni.dev/api/v1

Create an endpoint

POST/v1/bins

Optional body: {"response_status": 202}. Supported codes: 200, 201, 202, 204, 400, 401, 404, 409, 422, 500, 503.

{
  "id": "k7m2xq9fh3ad",
  "url": "https://edge.rooni.dev/h/k7m2xq9fh3ad",
  "inspect_url": "https://edge.rooni.dev/b/k7m2xq9fh3ad",
  "response_status": 200,
  "expires_at": "2026-11-15T12:00:00Z"
}

Sending requests

ANY/h/{id}/optional/sub/path

Every method is accepted, including OPTIONS preflights from browsers. The endpoint answers with the configured status and a fixed JSON body, so it never echoes what you send. Bodies up to 256 KB are accepted; the first 16 KB are stored. Non-UTF-8 bodies are stored as base64.

List requests

GET/v1/bins/{id}/requests?limit=50

Newest first, without headers and bodies. The response has an ETag; poll with If-None-Match to get 304 until something new arrives.

Get a request

GET/v1/bins/{id}/requests/{request_id}

Full headers and body.

Change the response

PATCH/v1/bins/{id}
{"response_status": 500}

Useful for testing how a sender retries failed deliveries.

Delete

DELETE/v1/bins/{id}/requests

Clears captured requests. DELETE /v1/bins/{id} removes the endpoint itself.

Limits

Endpoint lifetime24 hours
Stored requestslast 100 per endpoint
Incoming rate300 requests per 10 minutes per endpoint
New endpoints20 per hour per client

Anyone who knows the endpoint ID can read its requests. Do not send production secrets.