<Intro>

<EndpointHeader />

<Description>

Returns the parsed metadata for a received email: addresses, subject, threading headers, authentication results, and the attachment manifest. Content is fetched separately: the parsed body with [Get a received email's body](/docs/api/reference/get-inbound-message-body), the original MIME with [Get a received email's raw content](/docs/api/reference/get-inbound-message-raw), and attachment bytes with [Get a received email's attachment](/docs/api/reference/get-inbound-message-attachment). Received emails are retained for 30 days; an unknown or expired message returns `404`.

</Description>

</Intro>

<Payload kind="response">

<Field name="id" type="string" required>

<Description>

Received message ID.

</Description>

</Field>

<Field name="from" type="object" required>

<Description>

Sender address parsed from the message.

</Description>

<FieldChildren kind="response">

<Field name="email" type="string" prefix="from." required>

<Description>

Email address.

</Description>

</Field>

<Field name="name" type="string" prefix="from.">

<Description>

Display name shown alongside the address in mail clients.

</Description>

</Field>

</FieldChildren>

</Field>

<Field name="to" type="array of object" required>

<Description>

Recipients on the message's To header.

</Description>

<FieldChildren kind="response">

<Field name="email" type="string" prefix="to." required>

<Description>

Email address.

</Description>

</Field>

<Field name="name" type="string" prefix="to.">

<Description>

Display name shown alongside the address in mail clients.

</Description>

</Field>

</FieldChildren>

</Field>

<Field name="cc" type="array of object" required>

<Description>

Recipients on the message's Cc header.

</Description>

<FieldChildren kind="response">

<Field name="email" type="string" prefix="cc." required>

<Description>

Email address.

</Description>

</Field>

<Field name="name" type="string" prefix="cc.">

<Description>

Display name shown alongside the address in mail clients.

</Description>

</Field>

</FieldChildren>

</Field>

<Field name="subject" type="nullable string" required>

<Description>

Subject line as received, or null when the message had no subject.

</Description>

</Field>

<Field name="message_id" type="nullable string" required>

<Description>

RFC 5322 Message-ID header from the sender, or null when the sender did not include one.

</Description>

</Field>

<Field name="in_reply_to" type="nullable string" required>

<Description>

In-Reply-To header — the Message-ID this message replies to, or null when it is not a reply.

</Description>

</Field>

<Field name="references" type="array of string">

<Description>

References header — the chain of Message-IDs in this conversation, oldest first. Absent when the message had no References header.

</Description>

</Field>

<Field name="thread_id" type="nullable string" required>

<Description>

Conversation this message belongs to. Always null until threading is available.

</Description>

</Field>

<Field name="authentication" type="nullable string" required>

<Description>

Whether the sender of the received message was authenticated. `pass` means the sender's identity was verified; `fail` means it was checked and did not verify; `unknown` means no verdict is available and the sender should not be treated as verified.

</Description>

<Description>

Possible values: `pass`, `fail`, `unknown`, `null`

</Description>

</Field>

<Field name="spf_pass" type="nullable boolean" required>

<Description>

Whether SPF passed for the sender, parsed from the message's authentication results. Null when the result did not carry an SPF verdict.

</Description>

</Field>

<Field name="dkim_pass" type="nullable boolean" required>

<Description>

Whether DKIM passed for the sender, parsed from the message's authentication results. Null when the result did not carry a DKIM verdict.

</Description>

</Field>

<Field name="dmarc_pass" type="nullable boolean" required>

<Description>

Whether DMARC passed for the sender, parsed from the message's authentication results. Null when the result did not carry a DMARC verdict.

</Description>

</Field>

<Field name="spam_score" type="nullable number" required>

<Description>

Spam score for the message. Always null at present; reserved for a future content-scoring capability.

</Description>

</Field>

<Field name="attachments" type="array of object" required>

<Description>

Metadata for each attachment found on the message. Empty when the message had no attachments.

</Description>

<FieldChildren kind="response">

<Field name="id" type="string" prefix="attachments." required>

<Description>

Attachment ID, stable within the received message.

</Description>

</Field>

<Field name="filename" type="nullable string" prefix="attachments." required>

<Description>

Filename from the attachment's Content-Disposition, or null when the sender did not name the part.

</Description>

</Field>

<Field name="content_type" type="nullable string" prefix="attachments." required>

<Description>

MIME type parsed from the attachment part, or null when absent.

</Description>

</Field>

<Field name="size" type="integer" prefix="attachments." required>

<Description>

Size of the attachment in bytes.

</Description>

</Field>

</FieldChildren>

</Field>

<Field name="received_at" type="string" required>

<Description>

When Bird received the message.

</Description>

</Field>

</Payload>