---
title: "Get a message"
method: GET
path: "/api/emails/{address}/messages/{id}"
tags: ["Email"]
---

# Get a message

`GET /api/emails/{address}/messages/{id}`

## Request

- Base URL: `https://domani.run`
- URL: `https://domani.run/api/emails/{address}/messages/{id}`
- Auth: HTTP bearer

Fetch a single message by ID from a mailbox identified by its full email address. Messages classified as authentication mail (OTP, password reset, magic link) come back with subject/body redacted unless the token has the `email:auth_secrets` scope.

## Path parameters

- `address` string, required
- `id` string, required

## Response `200`

Message details

- object
  - `id` string
  - `thread_id` string: Conversation id shared by every message of the thread (the root message id)
  - `labels` string[]: Every label on the message; `label` is the first one
  - `thread_key` string: Canonical backend-namespaced conversation key
  - `thread_aliases` string[]: Legacy workflow keys to pass back when mutating conversation state
  - `message_id` string, nullable
  - `direction` 'in' | 'out'
  - `from` string: The sender's display name and address from the From header (e.g. 'Alice <alice@example.com>'), or the bare address when the mail carried no name.
  - `avatar_url` string, uri, nullable: Privacy-preserving Domani proxy URL for the sender avatar
  - `to` string: Every To recipient from the header, with display names, in the order the sender wrote them (not only the envelope address that routed this mail to the mailbox).
  - `cc` string, nullable: Every Cc recipient from the header, with display names, or null when the mail carried no Cc.
  - `bcc` string, nullable: Bcc recipients, present only on your own outbound message (never on one you received, and never delivered as a header).
  - `reply_to` string, nullable
  - `subject` string
  - `text` string, nullable
  - `html` string, nullable
  - `in_reply_to` string, nullable
  - `references` string, nullable
  - `attachments` object[]
    - `filename` string
    - `content_type` string
    - `size` integer
    - `url` string, nullable
  - `status` string
  - `is_read` boolean
  - `read_at` string, nullable
  - `events` object[]
    - `status` string
    - `detail` object, nullable
    - `created_at` string, date-time
  - `created_at` string, date-time

## Other responses

- `404`: Mailbox or message not found

---

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