---
title: "Get a received email"
method: GET
path: "/v1/emails/received/{id}"
tags: ["Emails"]
---

# Get a received email

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

## Request

- Base URL: `https://api.honkio.ca`
- URL: `https://api.honkio.ca/v1/emails/received/{id}`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

Requires `emails:r`.

## Path parameters

- `id` string, required

## Response `200`

The received email. html is rewritten to point cid: images at the attachment route unless html_format=cid asks for the original; html_format=sanitized also strips scripts and unsafe markup and parks remote images in data-remote-src, counted in remote_images.

- object: The received email. html is rewritten to point cid: images at the attachment route unless html_format=cid asks for the original; html_format=sanitized also strips scripts and unsafe markup and parks remote images in data-remote-src, counted in remote_images.
  - `id` string, required
  - `from` string, required
  - `from_name` string, nullable, required
  - `to` string[], required
  - `cc` string[], required
  - `subject` string, required
  - `message_id` string, nullable, required
  - `in_reply_to` string, nullable, required
  - `received_at` string, date-time, required
  - `status` 'received' | 'rejected', required
  - `reject_reason` string, nullable, required: Why a rejected message was stored headers only and uncharged: virus, daily_cap (the daily message cap), daily_mb_cap (the daily cap on billable MB), or insufficient_balance (the balance could not cover its charge). Null for a received message.
  - `verdicts` object, required
    - `spf` string, required
    - `dkim` string, required
    - `dmarc` string, required
    - `spam` string, required
    - `virus` string, required
  - `attachments_count` integer, required
  - `size_bytes` integer, required
  - `charge_millicents` integer, required
  - `domain_id` string, nullable, required
  - `livemode` boolean, required
  - `text` string, nullable, required
  - `html` string, nullable, required
  - `html_format` 'cid' | 'links' | 'sanitized', required
  - `remote_images` integer, nullable, required: Remote images parked in data-remote-src by html_format=sanitized; null for the other formats.
  - `headers` object[], required
    - `name` string, required
    - `value` string, required
  - `references` string[], required
  - `reply_to` string[], required
  - `envelope_recipients` string[], required
  - `body_purged` boolean, required
  - `body_truncated` boolean, required: text or html was cut at 2 MB (UTF-8 bytes) when stored; the raw message keeps it whole.
  - `raw_available` boolean, required
  - `parse_failed` boolean, required
  - `attachments_bytes` integer, required: Total size of the attachments, in bytes.
  - `attachments` object[], required
    - `id` string, required
    - `filename` string, required
    - `content_type` string, required
    - `content_id` string, nullable, required
    - `inline` boolean, required
    - `size_bytes` integer, required
    - `expires_at` string, date-time, required

## Other responses

- `401`: Missing, invalid, revoked or expired API key.
- `402`: The account has no balance, or a LIVE key was used before the first top-up.
- `403`: The API key lacks the permission this operation requires, or the account is suspended or closed.
- `404`: RECEIVED_EMAIL_NOT_FOUND: no received email with that id on this account. A test key finds only messages received on the test managed address.
- `422`: VALIDATION_ERROR: html_format is not cid, links or sanitized.
- `429`: Rate limit reached: 100 requests per second per account, or a route-specific limit (Retry-After set where one applies).
- `500`: Unexpected server error.

---

[API](https://skmtc.dev/honkio/apis/honkio-api.md) · [All operations](https://skmtc.dev/honkio/apis/honkio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/honkio/apis/honkio-api/revisions/ce4ed3fe9691?raw)
