InboxDome API

Test email flows in CI: create a disposable inbox, trigger your signup or password-reset, wait for the message, extract the verification code, assert. One HTTP call each.

Get an API keyOpenAPI specUsage dashboard

1. Get a key (free)

Free plan: 30 requests/min, 50 inboxes/day, 1 webhook. Your key is shown once — store it safely. Guides: Playwright ·Cypress · Node ·Python · PHP ·MCP (AI agents) · GitHub Actions ·WordPress

2. Create an inbox

curl -X POST https://inboxdome.com/v1/inboxes \
  -H "Authorization: Bearer idk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"domain":"smart","ttlSeconds":3600}'

# → {"inbox":{"id":"inb_...","emailAddress":"h4x8s2kq@mail.inboxdome.com",...}}

3. Wait for the OTP

# Blocks up to 30s until a verification code arrives
curl "https://inboxdome.com/v1/inboxes/inb_.../wait?for=otp&timeoutSeconds=30" \
  -H "Authorization: Bearer idk_live_..."

# → {"message":{...},"otp":{"value":"482913","confidence":0.95}}

4. Read messages & attachments

GET /v1/inboxes/{id}/messages                    # newest first, cursor pagination
GET /v1/inboxes/{id}/messages/{messageId}        # text, sanitized HTML, OTP, links
GET /v1/inboxes/{id}/messages/{mid}/attachments/{attId}   # binary download
DELETE /v1/inboxes/{id}                          # immediate purge

5. Signed webhooks

POST /v1/webhooks {"url":"https://ci.example.com/hook"}   # secret returned once

# Every message.received POST carries:
#   X-InboxDome-Event: message.received
#   X-InboxDome-Signature: hex(HMAC-SHA256(secret, body))
# Failed deliveries retry automatically (5 attempts). Delivery log: GET /v1/webhooks/deliveries

6. Email assertions

# Wait for the email AND verify it in one call
curl -X POST https://inboxdome.com/v1/inboxes/inb_.../assert \
  -H "Authorization: Bearer idk_live_..." \
  -H "Content-Type: application/json" \
  -d '{"timeoutSeconds":45,"assertions":[
        {"type":"otpPresent"},
        {"type":"containsText","text":"Welcome"},
        {"type":"linkResponds","urlContains":"verify"},
        {"type":"auth","check":"dkim"}]}'

# → {"passed":true,"arrived":true,"arrivalSeconds":2.1,"results":[...]}
# Save a named set once (POST /v1/scenarios), then POST /v1/scenarios/{id}/run per test.

7. Testing platform

Plans

PlanRequests/minInboxes/dayWebhooks
Free30501
Pro1205005
Scale3005,00020

Paid plans launch via RapidAPI shortly (direct billing later). Until then, need higher limits? Contact us. See API Terms.