Skip to main content

Email Status API

Email Status API​

The Email Status API is part of the Domains API and lets you retrieve the current delivery status of an email sent through POST /api/v1/send, including the reason when it bounced or was flagged as spam.

Use the id returned by the Send endpoint together with the ID of the domain the email was sent from.

Only HTTPS is supported

Authentication​

Email Status requests can be authenticated with either:

  • an Organization API token via MailPace-Organization-Token, which can access any domain in the organization, or
  • the domain's Server token via MailPace-Server-Token, which can only access that domain.

The :domain_id in the URL must match the domain that owns the email. Requests for emails belonging to another domain return 404 Not Found.

Required headers:

Header NameContents
Acceptapplication/jsonRequired
Content-Typeapplication/jsonRequired
MailPace-Organization-TokenOrganization API tokenRequired, unless using MailPace-Server-Token
MailPace-Server-TokenDomain API tokenRequired, unless using MailPace-Organization-Token

You can create and revoke Organization API tokens from your Organization's API Tokens page, and find a domain's Server token on that domain's API Tokens page in the MailPace dashboard.

Get an email's status​

GET /api/v1/domains/:domain_id/emails/:id

NameTypeNotes
domain_idintegerID of the domain the email was sent fromRequired
idintegerEmail ID returned by POST /api/v1/sendRequired

Using an Organization API token:

curl "https://app.mailpace.com/api/v1/domains/123/emails/456" \
-X GET \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "MailPace-Organization-Token: ORGANIZATION_TOKEN_GOES_HERE"

Using the domain's Server token:

curl "https://app.mailpace.com/api/v1/domains/123/emails/456" \
-X GET \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "MailPace-Server-Token: TOKEN_GOES_HERE"

Example response​

{
"id": 456,
"domain_id": 123,
"status": "bounced",
"message_id": "<4c0f6d2a-6f2b-4b1e-9d1a-1b2c3d4e5f60@mailer.ohmysmtp.com>",
"from": "Example <hello@example.com>",
"to": "recipient@example.org",
"cc": null,
"bcc": null,
"subject": "Welcome",
"replyto": null,
"inreplyto": null,
"references": null,
"list_unsubscribe": null,
"tags": ["welcome"],
"bounce_reason": "550 5.7.1 Message rejected as spam",
"bounce": {
"category": "spam",
"response": "550 5.7.1 Message rejected as spam",
"fbl": "abuse",
"to": "recipient@example.org",
"return_path": "bounces@example.com",
"sequence": "1",
"message_id": "<4c0f6d2a-6f2b-4b1e-9d1a-1b2c3d4e5f60@mailer.ohmysmtp.com>",
"created_at": "2026-10-22T12:00:00.000Z"
},
"deferred": null,
"created_at": "2026-10-22T11:59:59.000Z",
"modified_at": "2026-10-22T12:00:00.000Z"
}

Email fields​

FieldTypeDescription
idintegerEmail ID
domain_idintegerID of the domain the email was sent from
statusstringCurrent status: queued, delivered, deferred, bounced, or spam. See Email Lifecycle for details
message_idstringMessage-ID header used for the email
fromstringFrom address
tostringTo address(es)
ccstringCC address(es), or null
bccstringBCC address(es), or null
subjectstringSubject, or null
replytostringReply-To address, or null
inreplytostringIn-Reply-To header, or null
referencesstringReferences header, or null
list_unsubscribestringList-Unsubscribe header, or null
tagsarray of stringsTags attached to the email
bounce_reasonstringReason for the current bounce, spam classification, or deferral, when there is one. Otherwise null
bounceobjectMost recent hard bounce or spam report, or null. See below
deferredobjectMost recent soft bounce (deferral), or null. See below
created_atstringTime the email was accepted
modified_atstringTime the email was last updated

Bounce object​

bounce is null unless a hard bounce or spam report exists.

FieldTypeDescription
categorystringBounce category, for example spam
responsestringResponse returned by the receiving server
fblstringFeedback loop information, when supplied
tostringRecipient the report relates to
return_pathstringReturn-Path used for the email
sequencestringBounce sequence number
message_idstringMessage-ID the report relates to
created_atstringTime the bounce report was received

Deferred object​

deferred is null unless the email has been deferred by a receiving server.

FieldTypeDescription
categorystringDeferral category
responsestringResponse returned by the receiving server
defcountintegerNumber of delivery attempts so far
next_attemptstringTime of the next delivery attempt, or null
tostringRecipient being delivered to
mxstringMX host that responded
hoststringHost that responded
ipstringIP address that responded
created_atstringTime the deferral was recorded

Errors and status codes​

  • 200 OK: Request succeeded
  • 401 Unauthorized: Missing, invalid, or revoked token
  • 404 Not Found: The domain or email was not found, or the email does not belong to the specified domain