List events (long-poll)
Returns new inbox events since the given cursor. Setwait to hold the connection open until an event arrives or the timeout elapses — this eliminates the need for a polling loop.
GET /api/v1/inboxes/:id/events
Requires: email:read
Query parameters
integer
Seconds to long-poll for new events before returning an empty list. Range: 0–25. Omit or set to
0 for an immediate response.string
Opaque cursor from the previous response’s
next_cursor. Omit on the first call to receive events from now onwards.Long-poll for new events
Event types
string
One of:
message.received— a new inbound message has arrived and passed (or been flagged by) screening.thread.updated— a conversation’s folder, labels, or read state changed.
object
Lightweight payload containing message or thread IDs and a short snippet. The full message body is never included in event payloads.
string
Pass this as
cursor on the next request to receive only events that arrive after this point.Wait for a message
Blocks up to 25 seconds and returns as soon as the next inbound message matching your filter arrives. Simpler than the events stream when you just need to confirm that a specific reply came in.POST /api/v1/inboxes/:id/wait
Requires: email:read
Wait for a reply from a domain
Request parameters
string
Domain or full email address to match against the sender’s
From header. For example, "shop.example" matches any sender at that domain.integer
Maximum seconds to wait. Range: 0–25. Returns immediately with a
null result if no matching message arrives within the timeout.Extract a verification code
Extracts a one-time verification code or confirmation link from the most recent matching inbound message, optionally waiting up to 25 seconds for it to arrive. Codes are copied from real mail — never generated or guessed.POST /api/v1/inboxes/:id/extract/code
Requires: email:read
Extract a verification code
Request parameters
string
Domain or email address that should have sent the verification email. Used to filter recent mail before extracting.
integer
Seconds to wait for a matching message if none has arrived yet. Range: 0–25.
Response fields
string
The numeric or alphanumeric one-time code found in the message, if present.
string
Confirmation or magic-link URL extracted from the message, if present.
object
Screening verdict and reasons for the matched message. Check this before using the code — a suspicious verdict may indicate a phishing or spoofed confirmation email.
Codes and links are extracted from real mail that arrived in the inbox. The API never generates, predicts, or invents codes. If no matching message arrives within the timeout, the endpoint returns without a code or link.
Choosing the right pattern
Continuous processing
Use the events stream with
wait=25 and a cursor loop. Keeps one open connection and receives every event type as it arrives.Waiting for a reply
Use
/wait after sending a message to block until the response arrives — simpler than maintaining a cursor when you only care about one reply.Sign-up automation
Use
/extract/code after submitting a registration form to get the verification code or confirmation link in one call.Error codes
Common error responses
Common error responses
Errors are returned as JSON:
Error response