Your AWS SES. Your dedicated Mailat. See how it works
Documentation

List Emails

Request, response and authentication details for your Mailat instance.

← All API operations
GET/api/v1/inbox/received

ListEmails returns a paginated list of received emails GET /api/v1/inbox/received If identityId is 0 or omitted, returns emails from all user's identities (unified inbox) The built-in dmarc-reports folder holds authenticated aggregate reports; all includes those messages. Search, pagination and identity/domain filters work normally. Reading does not change unread state.

Authentication & compatibility

Use a scoped bearer API key with email:read. The key is bound to its user and organization.

SES email workflow and its stored mailbox/configuration data. Provider actions require configured AWS permissions and verified owned domains; receiving is opt-in.

Contract 2026-10-04. Your running instance's /api/v1/openapi.json is authoritative for its deployed release.

Request

Set MAILAT_BASE_URL to your instance origin (without /api/v1) and MAILAT_TOKEN to an appropriate credential. Replace path placeholders and example data before running. These examples do not execute in this page.

cURL request
curl --request GET "$MAILAT_BASE_URL/api/v1/inbox/received" \
  --header "Authorization: Bearer $MAILAT_TOKEN"

Parameters

query
dateFromstring
query
dateTostring
query
domainIdinteger (int64)
query
folderstring

Built-in folder or virtual view. all includes DMARC reports.

Allowed: "inbox" | "dmarc-reports" | "sent" | "drafts" | "outbox" | "spam" | "trash" | "starred" | "archive" | "all"

Default: "inbox"

query
hasAttachmentsall of · nullable
Variant 1boolean
query
identityIdinteger (int64)
query
isReadall of · nullable
Variant 1boolean
query
isStarredall of · nullable
Variant 1boolean
query
labelsarray
Each itemstring
query
pageinteger (int64)

One-based page. Values below 1 use 1.

Default: 1

query
pageSizeinteger (int64)

Values below 1 use 50; values above 100 are capped to 100.

Default: 50

query
searchstring
query
senderstring
query
sortBystring

subject, from_email or size_bytes; other values use received_at.

Default: "receivedAt"

query
sortOrderstring

asc selects ascending order; other values use descending order.

Default: "desc"

Responses

HTTP statuses and body shapes below come from the pinned contract. Not every shared error applies to every request. Retain the original idempotency key when retrying a send.

200 · Success
Header: X-RateLimit-Remaininginteger

Remaining requests in this API key's current minute window (present for API-key authentication).

minimum: 0

application/json

responseobject
Fields
codeintegerrequired
dataall of · nullable
Variant 1object
Fields · model.InboxListResponse
emailsarray
Each itemobject
Fields · model.ReceivedEmail
attachmentsarray
Each itemobject
Fields · model.EmailAttachment
checksumstring
contentIdstring
contentTypestring
createdAtstring (date-time)
downloadUrlstring
filenamestring
idinteger (int64)
isInlineboolean
receivedEmailIdinteger (int64)
s3Bucketstring
s3Keystring
sizeBytesinteger (int64)
uuidstring
bccEmailsarray
Each itemstring
ccEmailsarray
Each itemstring
createdAtstring (date-time)
directionstring
dkimVerdictstring
dmarcVerdictstring
domainIdinteger (int64)
draftVersioninteger (int64)
envelopeRecipientsarray
Each itemstring
folderstring
fromEmailstring
fromNamestring
hasAttachmentsboolean
htmlBodystring
idinteger (int64)
identityColorstring
identityDisplayNamestring
identityEmailstring
identityIdinteger (int64)
inReplyTostring
isArchivedboolean
isReadboolean
isSpamboolean
isStarredboolean
isTrashedboolean
labelsarray
Each itemstring
messageIdstring
orgIdinteger (int64)
rawS3Bucketstring
rawS3Keystring
readAtall of · nullable
Variant 1string (date-time)
receivedAtstring (date-time)
referencesarray
Each itemstring
replyTostring
sendErrorstring
sendStatusstring
sentAtall of · nullable
Variant 1string (date-time)
sesMessageIdstring
sizeBytesinteger (int64)
snippetstring
snsNotificationIdstring
spamScoreall of · nullable
Variant 1number
spamVerdictstring
spfVerdictstring
subjectstring
textBodystring
threadIdstring
toEmailsarray
Each itemstring
trashedAtall of · nullable
Variant 1string (date-time)
updatedAtstring (date-time)
uuidstring
virusVerdictstring
pageinteger (int64)
pageSizeinteger (int64)
totalinteger (int64)
totalPagesinteger (int64)
unreadinteger (int64)
messagestringrequired
400 · Invalid input

application/json

responseobject
Fields
codeintegerrequired
messagestringrequired
401 · Missing, expired or revoked authentication

application/json

responseobject
Fields
codeintegerrequired
messagestringrequired
403 · Insufficient permission

application/json

responseobject
Fields
codeintegerrequired
messagestringrequired
404 · Resource not found

application/json

responseobject
Fields
codeintegerrequired
messagestringrequired
409 · Conflict or changed idempotency payload

application/json

responseobject
Fields
codeintegerrequired
messagestringrequired
410 · Recovery cursor expired; resynchronize

application/json

responseobject
Fields
codeintegerrequired
messagestringrequired
429 · Rate limit exceeded; respect Retry-After
Header: Retry-Afterinteger

Seconds until the next fixed-minute request window.

minimum: 1

application/json

responseobject
Fields
codeintegerrequired
messagestringrequired
500 · Internal failure; retain the idempotency key

application/json

responseobject
Fields
codeintegerrequired
messagestringrequired
Download the full OpenAPI contract