Hoppa till innehållet

Read a received message

GET/v1/inbound/{id}

TypeScript sendora.inbound.get(inboundMessageId)

Python sendora.inbound.get(inbound_message_id)

Key sk_… a server key

The message with its envelope, parties, headers, text, HTML and attachment descriptors; the attachment bytes and the raw message are downloads of their own. Once the stream’s content window has passed, the content fields are null and contentAvailable is false.

Parameters

  • idin pathstring (uuid)required

    The inbound message id.

Responses

200The received message with everything but the attachment bytes.

  • inboundMessageIdstring (uuid)required
  • streamIdstring (uuid)required

    The inbound stream that received it.

  • receivedAtstring (date-time)required

    When the message was accepted from the sending server.

  • envelopeRecipientstringrequired

    The address of yours the message was sent to.

  • mailboxHashstring or nullrequired

    The text after the plus sign in that address, when the sender used one.

  • sizeBytesintegerrequired
  • attachmentCountintegerrequired
  • hasTextbooleanrequired
  • hasHtmlbooleanrequired
  • parseIssuestring or nullrequired

    What the parser met; null when the message parsed clean. A hard issue empties the parsed parts, and the raw message stays: no_headers, header_block_too_large, too_many_headers, too_many_parts, nesting_too_deep, missing_boundary, decoded_too_large, parse_timeout, parser_error. A soft issue keeps them and says what was changed or dropped: truncated_multipart, too_many_attachments, unknown_transfer_encoding, undecodable_container, filename_sanitised, control_chars_stripped, multiple_from, duplicate_header, malformed_header_dropped, address_list_truncated, header_value_truncated. A message with several names the hard one, or the first soft one in this order.

  • authenticationobjectrequired

    What Sendora found when it checked the message; unchecked until the checks have run.

    • spf"pass" | "fail" | "softfail" | "neutral" | "none" | "temperror" | "permerror" | "unchecked"required

      SPF for the address in MAIL FROM.

    • spfHelo"pass" | "fail" | "softfail" | "neutral" | "none" | "temperror" | "permerror" | "unchecked"required

      SPF for the name the sending server gave in HELO.

    • dkim"pass" | "fail" | "none" | "temperror" | "permerror" | "unchecked"required
    • dmarc"pass" | "fail" | "none" | "temperror" | "permerror" | "unchecked"required
    • dmarcPolicy"none" | "quarantine" | "reject" or nullrequired

      What the sender’s domain asks for; told only when DMARC failed.

    • arc"none" | "pass" | "fail" | "unchecked"required
    • checkedAtstring (date-time) or nullrequired

      When the checks ran; null until they have.

  • contentAvailablebooleanrequired

    False once the stream’s content window has passed; only the reference remains.

  • contentExpiresAtstring (date-time)required

    When the content goes.

  • fromobject or nullrequired

    The From header; null without it or once the content is gone.

    • addressstringrequired
    • namestring or nullrequired
  • subjectstring or nullrequired
  • datestring (date-time) or nullrequired

    The sender’s Date header as ISO 8601, when it was a real moment.

  • envelopeobject or nullrequired

    Null once the content is gone.

    • senderstring or nullrequired

      The MAIL FROM address; null for a bounce.

  • replyToarray of objectrequired
    • addressstringrequired
    • namestring or nullrequired
  • toarray of objectrequired

    Up to 100 entries; toCount is the whole number.

    • addressstringrequired
    • namestring or nullrequired
  • toCountintegerrequired
  • ccarray of objectrequired

    Up to 100 entries; ccCount is the whole number.

    • addressstringrequired
    • namestring or nullrequired
  • ccCountintegerrequired
  • messageIdHeaderstring or nullrequired
  • inReplyTostring or nullrequired
  • referencesarray of stringrequired
  • headersarray of object or nullrequired

    Every header in order; null once the content is gone.

    • namestringrequired
    • valuestringrequired
  • textstring or nullrequired

    The plain-text body; null without one or once the content is gone.

  • htmlstring or nullrequired

    The HTML body as received; null without one or once the content is gone.

  • attachmentsarray of objectrequired
    • attachmentIdstring (uuid)required
    • positionintegerrequired

      Its place among the message’s attachments, from 0.

    • namestring or nullrequired

      The filename, sanitised; null once the content is gone.

    • contentTypestring or nullrequired

      The type the sender declared; every download is served as application/octet-stream.

    • contentIdstring or nullrequired

      The Content-ID an HTML body refers to with cid:.

    • sizeintegerrequired

      Bytes.

    • inlinebooleanrequired

      True for a part shown in the body rather than offered as a file.

Example (68 lines)
{
  "inboundMessageId": "4d1f8b2e-9c3a-4e7b-8f21-6a5d0c9e7b31",
  "streamId": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
  "receivedAt": "2026-09-19T08:00:02.000Z",
  "envelopeRecipient": "7c9e6679742540de944be07fc1f90ae7@inbound.sendora.se",
  "mailboxHash": null,
  "sizeBytes": 48213,
  "attachmentCount": 1,
  "hasText": true,
  "hasHtml": false,
  "parseIssue": null,
  "authentication": {
    "spf": "pass",
    "spfHelo": "pass",
    "dkim": "pass",
    "dmarc": "pass",
    "dmarcPolicy": null,
    "arc": "none",
    "checkedAt": "2026-09-19T08:00:03.000Z"
  },
  "contentAvailable": true,
  "contentExpiresAt": "2026-10-19T08:00:02.000Z",
  "from": {
    "address": "anna@example.com",
    "name": "Anna Andersson"
  },
  "subject": "A question about my order",
  "date": "2026-09-19T08:00:00.000Z",
  "envelope": {
    "sender": "anna@example.com"
  },
  "replyTo": [],
  "to": [
    {
      "address": "7c9e6679742540de944be07fc1f90ae7@inbound.sendora.se",
      "name": null
    }
  ],
  "toCount": 1,
  "cc": [],
  "ccCount": 0,
  "messageIdHeader": "<question-1@example.com>",
  "inReplyTo": null,
  "references": [],
  "headers": [
    {
      "name": "From",
      "value": "Anna Andersson <anna@example.com>"
    },
    {
      "name": "Subject",
      "value": "A question about my order"
    }
  ],
  "text": "Hi!\n",
  "html": null,
  "attachments": [
    {
      "attachmentId": "9b7e2c41-3f6d-4a8e-b2c5-1d0f7e6a9c58",
      "position": 0,
      "name": "invoice.pdf",
      "contentType": "application/pdf",
      "contentId": null,
      "size": 46102,
      "inline": false
    }
  ]
}

Errors

Every error answers error, the code, and message, a sentence for a person. A code that adds fields is shown in full below the table.

CodeStatusMeaning
unauthorized401The key is missing, malformed or revoked.
wrong_token_kind403The key is of the other kind: a server key (sk_) where an account key (ak_) is needed, or the reverse. The message names the kind the operation takes.
not_found404No such inbound message of this server.
content_unreadable409The stored content of this received message cannot be opened. Sendora has been told.