Check that no email arrives
const url = 'https://api.proxymail.qa/v1/addresses/k7f2x9ab12cd%40mailclub.dev/none?timeout=30&type=code';const options = { method: 'GET', headers: { 'Proxy-Mail-QA-Test': 'sign-up%20%E2%80%BA%20sends%20one%20code', 'Proxy-Mail-QA-Run-Retry': 'true', Authorization: 'Bearer <token>' }};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.proxymail.qa/v1/addresses/k7f2x9ab12cd%40mailclub.dev/none?timeout=30&type=code' \ --header 'Authorization: Bearer <token>' \ --header 'Proxy-Mail-QA-Run-Retry: true' \ --header 'Proxy-Mail-QA-Test: sign-up%20%E2%80%BA%20sends%20one%20code'Holds for up to timeout seconds and passes (200) if no matching email reaches the address in that time, for checks such as “an unsubscribed user gets nothing” or “a second reset request is rate-limited”. Fails at once (409, error email_arrived) when one arrives, saying when and from whom, never what it says. Pass since as the time the action happened, so an email that came before the call still counts. For longer checks, call again with the same since.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”The test address, URL-encoded. A variant also works: capitals, or a +tag (k7f2x9ab12cd+o’brien@mailclub.dev). It acts on the plain address; waiting on a +tag variant, or listing its messages, only finds mail sent to that variant.
Example
k7f2x9ab12cd@mailclub.devQuery Parameters
Section titled “Query Parameters”Only email received at or after this time. Default: the time of the request.
Seconds to watch. 0 checks once.
Only email from this service, by name or domain (e.g. ‘spotify’).
Only emails with a code, or with a link. Codes leave out coupons, and links count verify, magic_signin, invite and reset, unless subtype says otherwise.
With type, comma-separated: otp or coupon for codes; verify, magic_signin, invite, reset or other for links; or any.
Header Parameters
Section titled “Header Parameters”A run’s id (POST /v1/runs): adds what this call saw to the run. If it can’t be added (the run finished, or isn’t in this project), the call still works and the Proxy-Mail-QA-Run-Warning response header says why.
With Proxy-Mail-QA-Run: the test this call belongs to, percent-encoded (encodeURIComponent), up to 200 characters once decoded. The run’s report shows it beside what the call saw.
Example
sign-up%20%E2%80%BA%20sends%20one%20codeTrue when you’ll call again if nothing arrives (waits longer than 30 seconds), so only the last call’s “nothing arrived” is added to the run.
Responses
Section titled “Responses”Nothing arrived
object
Nothing matching arrived between since and this time.
Example
{ "arrived": false}An error
object
Example generated
{ "error": "example", "message": "example"}An error
object
Example generated
{ "error": "example", "message": "example"}An email arrived
object
An email without its content: when it arrived, who sent it and the kind of its main code or link.
object
Who sent it, e.g. Spotify.
Otp or coupon; verify, magic_signin, invite, reset or other.
Example
{ "error": "email_arrived", "message": "An email reached k7f2x9ab12cd@mailclub.dev since 2026-10-15T10:00:00.000Z, the first from Spotify.", "arrived": true, "email": { "type": "code" }}