API Reference

Mark Received Email Read or Unread

PATCH /emails/receiving/:id — mark a received email as read or unread.

PATCH/emails/receiving/:id

Set the read state of a received email. The dashboard Inbox marks a message read when you open it and shows unread messages — and the domains and inboxes holding them — in bold, exactly like a mail client; use this endpoint to drive the same state from your own tooling (for example, mark a message read once your ticketing system has ingested it, or unread to surface it again). Requires a write-scoped API key.

Reading a message through GET /emails/receiving/:id never changes its read state. An integration polling for content is not the account owner reading their inbox.
Path parameters
idstringrequired

The id of the received email.

Body parameters
readbooleanrequired

true marks the email read, false marks it unread. Marking an already-read email read again is a no-op that keeps the original read_at.

const res = await fetch('https://www.mailblastr.com/api/emails/receiving/4ef9a417-02e9-4d39-ad75-9611e0fcc33c', {
  method: 'PATCH',
  headers: {
    'Authorization': 'Bearer mb_xxxxxxxxx',
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ "read": true }),
});
const data = await res.json();
console.log(data);

Response

The updated received-email object, with read and read_at reflecting the new state.

{
  "object": "received_email",
  "id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
  "to": ["delivered@yourdomain.com"],
  "from": "onboarding@example.com",
  "subject": "Hello World",
  "read": true,
  "read_at": "2026-06-24T09:02:17.113Z",
  "created_at": "2026-06-23T22:13:42.674Z"
}

Errors

Returns validation_error (422) when the body is not a JSON object with a boolean read, and not_found (404) if no received email with that id exists for your account. See the error reference.