Skip to content

Check why mail is or isn't arriving

GET
/v1/addresses/{address}/delivery
curl --request GET \
--url https://api.proxymail.qa/v1/addresses/k7f2x9ab12cd%40mailclub.dev/delivery \
--header 'Authorization: Bearer <token>'

What has reached the address, every message we refused for it (too large, or over an hourly or daily limit) and one sentence on what that means, such as an email provider in sandbox mode. Doesn’t wait. A 404 says what an unknown address can mean.

address
required
string format: email

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.dev

The address’s delivery status

Media typeapplication/json
object
address
string
created_at
string format: date-time
expires_at
string format: date-time
receiving

False once the address has expired: mail to it is refused.

boolean
emails

Emails received so far.

integer
last_email_at
string | null format: date-time
refused

Mail we refused for the address, newest first. Refusals for the same reason within an hour share one entry with a count.

Array<object>
object
reason
string
Allowed values: too_large address_limit daily_limit
first_at
string format: date-time
last_at
string format: date-time
count
integer
size_bytes

The largest refused message, in bytes.

integer | null
hint

What the status means, most important first.

string
help
string format: uri

Example

{
"refused": [
{
"reason": "too_large"
}
],
"help": "https://proxymail.qa/troubleshooting"
}

Nothing arrived in time, or the address isn’t in this project. hint says why as far as we can tell; after a wait, refused lists mail we turned away since since.

Media typeapplication/json
object
error
string
message
string
hint

What we refused, or the likeliest cause, such as an email provider in sandbox mode.

string
refused

Mail we refused for the address, newest first. Refusals for the same reason within an hour share one entry with a count.

Array<object>
object
reason
string
Allowed values: too_large address_limit daily_limit
first_at
string format: date-time
last_at
string format: date-time
count
integer
size_bytes

The largest refused message, in bytes.

integer | null
help
string format: uri

Example

{
"error": "not_found",
"refused": [
{
"reason": "too_large"
}
],
"help": "https://proxymail.qa/troubleshooting"
}