Quickstart

Five minutes from signup to a passing wait-for-message request. Keep the API key in a secret manager; it is shown only once. The free tier is 11 active inboxes and 33 inbound emails per UTC month — enough for one flow on a laptop. Quota detail is on InboxRhino pricing.

1. Create an account and API key

Sign in to the InboxRhino console with Google or email, open API keys, and create a named key. Copy the secret immediately.

2. Create an inbox

POST creates a real address on test.inboxrhino.in and the Cloudflare receiving rule. Omit prefix to get a generated name.

curl --request POST https://api.inboxrhino.in/v1/inboxes \
  --header "Authorization: Bearer $INBOXRHINO_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: signup-test-1" \
  --data '{"prefix":"signup-test"}'

3. Send mail, then wait

Point the application under test at the returned address. The list route waits up to 180 seconds. A match returns 200; a timeout returns 204.

curl --get https://api.inboxrhino.in/v1/inboxes/INBOX_ID/messages \
  --header "Authorization: Bearer $INBOXRHINO_API_KEY" \
  --data-urlencode "wait_seconds=180" \
  --data-urlencode "limit=1" \
  --data-urlencode "include=content" \
  --data-urlencode "subject=Verify"

4. Delete the inbox

Deleting an inbox frees active-inbox quota immediately. Message deletion does not restore monthly email quota. Full request and error detail, plus a free Postman collection, is on the API reference. For a test runner example, see Playwright email testing.

curl --request DELETE https://api.inboxrhino.in/v1/inboxes/INBOX_ID \
  --header "Authorization: Bearer $INBOXRHINO_API_KEY"

If the wait returns 204

HTTP 204 means the poll timed out with no match. Check the address you sent to, loosen or correct the subject/sender filter, and confirm the application actually sent mail. Do not call response.json() on 204. Status codes and filters are documented in the messages API.