v1 · API reference

Inbound emails

Read email your receiving-enabled domains have received — list messages, retrieve full bodies, and download attachments via short-lived signed URLs.

Base URL: https://www.unitpost.com/api/v1/api/v1

Inbound emails

List received emails

GET/api/v1/api/v1/emails/received

GET /emails/received
curl -X GET 'https://www.unitpost.com/api/v1/api/v1/emails/received' \
  -H 'Authorization: Bearer YOUR_API_KEY'
Response · 200
{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "object": "received_email",
      "id": "id_123",
      "from": "you@yourdomain.com",
      "from_name": "string",
      "to": [
        "customer@example.com"
      ],
      "cc": [
        "string"
      ],
      "bcc": [
        "string"
      ],
      "message_id": "message_123",
      "subject": "Welcome to Acme",
      "spam_verdict": "string",
      "virus_verdict": "string",
      "spf_verdict": "string",
      "dkim_verdict": "string",
      "dmarc_verdict": "string",
      "size": 1,
      "received_at": "2026-01-01T00:00:00.000Z",
      "created_at": "2026-01-01T00:00:00.000Z",
      "attachment_count": 1
    }
  ]
}

Retrieve a list of inbound emails received on your receiving-enabled domains, newest-first and cursor-paginated. Rows are summaries (sender, subject, timestamps) without bodies — use a message's id with Retrieve a received email to read the full content and attachment metadata. Requires the emails:read capability.

Parameters3 fields
FieldTypeDescription
limitinteger · queryMax rows to return (default 20, max 100).
afterstring · queryReturn rows after this id (forward paging).
beforestring · queryReturn rows before this id (backward paging).
Response · 200 fields18 fields
FieldTypeDescription
objectrequiredstring
idrequiredstring
fromrequiredstring
from_namerequiredobject
torequiredstring[]
ccrequiredstring[]
bccrequiredstring[]
message_idrequiredobject
subjectrequiredobject
spam_verdictrequiredobject
virus_verdictrequiredobject
spf_verdictrequiredobject
dkim_verdictrequiredobject
dmarc_verdictrequiredobject
sizerequirednumber
received_atrequiredstring
created_atrequiredstring
attachment_countrequirednumber
200401403422

Retrieve a received email

GET/api/v1/api/v1/emails/received/{id}

GET /emails/received/{id}
curl -X GET 'https://www.unitpost.com/api/v1/api/v1/emails/received/email_123' \
  -H 'Authorization: Bearer YOUR_API_KEY'
Response · 200
{
  "object": "received_email",
  "id": "id_123",
  "from": "you@yourdomain.com",
  "from_name": "string",
  "to": [
    "customer@example.com"
  ],
  "cc": [
    "string"
  ],
  "bcc": [
    "string"
  ],
  "message_id": "message_123",
  "subject": "Welcome to Acme",
  "text": "string",
  "html": "string",
  "spam_verdict": "string",
  "virus_verdict": "string",
  "spf_verdict": "string",
  "dkim_verdict": "string",
  "dmarc_verdict": "string",
  "size": 1,
  "attachments": [
    {
      "object": "received_attachment",
      "id": "id_123",
      "filename": "string",
      "content_type": "string",
      "content_disposition": "string",
      "content_id": "content_123",
      "size": 1
    }
  ],
  "received_at": "2026-01-01T00:00:00.000Z",
  "created_at": "2026-01-01T00:00:00.000Z"
}

Retrieve a full inbound message by id, including its HTML and text bodies plus metadata for every attachment. Attachment bytes aren't inlined — download each one via Get an attachment download URL. Browse your inbound mail with List received emails. Requires the emails:read capability.

Parameters1 field
FieldTypeDescription
idrequiredstring · path
Response · 200 fields20 fields
FieldTypeDescription
objectrequiredstring
idrequiredstring
fromrequiredstring
from_namerequiredobject
torequiredstring[]
ccrequiredstring[]
bccrequiredstring[]
message_idrequiredobject
subjectrequiredobject
textrequiredobject
htmlrequiredobject
spam_verdictrequiredobject
virus_verdictrequiredobject
spf_verdictrequiredobject
dkim_verdictrequiredobject
dmarc_verdictrequiredobject
sizerequirednumber
attachmentsrequiredobject[]
received_atrequiredstring
created_atrequiredstring
200401403404

Get an attachment download URL

GET/api/v1/api/v1/emails/received/{id}/attachments/{attachmentId}

GET /emails/received/{id}/attachments/{attachmentId}
curl -X GET 'https://www.unitpost.com/api/v1/api/v1/emails/received/email_123/attachments/att_789' \
  -H 'Authorization: Bearer YOUR_API_KEY'
Response · 200
{
  "object": "received_attachment_url",
  "url": "https://example.com",
  "expires_at": "2026-01-01T00:00:00.000Z"
}

Get a short-lived, signed URL for downloading one inbound attachment's bytes. Fetch the URL and download promptly — it expires quickly (the expiry is included in the response). Find attachment ids on the message via Retrieve a received email. Requires the emails:read capability.

Parameters2 fields
FieldTypeDescription
idrequiredstring · path
attachmentIdrequiredstring · path
Response · 200 fields3 fields
FieldTypeDescription
objectrequiredenumreceived_attachment_url
urlrequiredstringA signed, expiring URL to download the attachment bytes.
expires_atrequiredstringISO 8601 expiry of the signed URL (~5 minutes out).
200401403404503