Concepts

Emails & threads

How Inboundr parses inbound email into JSON, checks SPF and DKIM, groups messages into threads and stores attachments.

Every message Inboundr receives is stored as an email and grouped into a thread. That lets an agent read a whole conversation at once instead of one message at a time.

The email object#

Inbound mail is parsed into JSON: sender and recipients, subject, text and HTML bodies, attachment metadata, authentication verdicts and threading headers. IDs are prefixed by type: emails start with em_ and threads with thr_.

json
{
  "id": "em_abc123",
  "direction": "inbound",
  "threadId": "thr_xyz789",
  "messageId": "<CAEabc...@mail.gmail.com>",
  "fromAddress": "customer@example.com",
  "toAddresses": ["support@yourdomain.com"],
  "ccAddresses": [],
  "subject": "Can you help?",
  "textBody": "Hi there…",
  "htmlBody": "<p>Hi there…</p>",
  "attachments": [
    { "filename": "invoice.pdf", "contentType": "application/pdf", "size": 48210, "stored": true }
  ],
  "spamVerdict": "PASS",
  "spfVerdict": "PASS",
  "dkimVerdict": "PASS",
  "receivedAt": "2026-07-20T10:30:00.000Z"
}

List and thread responses return summaries, without textBody and htmlBody, to keep them fast. Fetch a single email by ID to get the full bodies and attachment metadata.

Authentication verdicts#

Each inbound email includes the results of the standard email authentication checks, so you can decide how much to trust it:

VerdictFieldMeaning
SpamspamVerdictContent-based spam assessment.
SPFspfVerdictWhether the sending server is authorized to send for the domain.
DKIMdkimVerdictWhether the message's signature is valid.

PASS and FAIL are the outcomes to act on.

Threading#

Inboundr groups messages under a threadId using the standard RFC 5322 Message-ID, In-Reply-To and References headers. A whole exchange comes back as one conversation from GET /v1/threads/{id} or the get_thread MCP tool, so you don't have to piece it together yourself.

Attachments#

Attachment metadata (filename, content type and size) is always returned. Attachments marked stored: true can be downloaded through a short-lived signed URL, from the attachments endpoint or the get_attachment MCP tool.

Reading email#