# Retrieve Received Email

> GET /emails/receiving/:id — fetch a single received email, its body, headers, and attachments.

`GET /emails/receiving/:id`

Retrieve a single received email by id, including its `html`/`text` body, parsed `headers`, the `attachments` array, and a `raw` download for the original `.eml` file.

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The id of the received email. |

## Response fields

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | string | No | Always `received_email`. |
| `id` | string | No | The received-email id. |
| `domain_id` | string | null | No | The receiving domain the message arrived on — the field to group by when an account receives on more than one domain. `null` on rows stored before it was recorded. |
| `to` | string[] | No | The recipient addresses parsed from the To header. |
| `from` | string | No | The sender address. |
| `from_name` | string | null | No | The sender's display name from the `From` header ("Alice Baker" for `Alice Baker <alice@example.com>`), decoded. `null` when the header carried only an address. |
| `subject` | string | No | The subject line. |
| `html` | string | No | The HTML body (omitted when absent). |
| `text` | string | No | The plain-text body (omitted when absent). |
| `headers` | object | No | Parsed message headers as a name → value map (omitted when absent). |
| `cc` | string[] | No | Carbon-copy recipients (omitted when absent). |
| `bcc` | string[] | No | Blind carbon-copy recipients (omitted when absent). |
| `received_for` | string[] | No | The envelope RCPT addresses the message was delivered to on your domains (omitted when absent). |
| `message_id` | string | No | The original `Message-ID` header (omitted when absent). |
| `category` | string | null | No | AI-classified reply intent when this message is a recognised reply: `interested`, `neutral`, or `not_interested`. `null` for non-replies and not-yet-classified messages. |
| `reply_to_email_id` | string | null | No | When this received message is a reply to an email you sent, the id of that sent email. `null` otherwise. |
| `read` | boolean | No | Whether the message has been read. `false` until it is opened in the dashboard Inbox or marked read with [PATCH /emails/receiving/:id](https://www.sendping.co/docs/api/emails-received-update). Fetching it with this endpoint does **not** mark it read. |
| `read_at` | string | null | No | ISO 8601 time the message was first marked read; `null` while unread. |
| `spf` | string | No | SPF result string, e.g. `pass` (omitted when absent). |
| `verdicts` | object | No | Inbound authentication verdicts: `{ spf, dkim, dmarc, spam, virus }`. Each value is a string such as `PASS` or `FAIL` (omitted when absent). |
| `raw_available` | boolean | No | Whether the original raw `.eml` message was retained and is downloadable via [GET /emails/receiving/:id/raw](https://www.sendping.co/docs/api/emails-received-raw). |
| `raw` | object | No | A download for the original raw email: `{ download_url }`. The URL requires your API key, exactly like every other endpoint. Present only when `raw_available` is `true`. (A top-level `raw_url` relative-path alias is also returned for backward compatibility.) |
| `attachments` | object[] | No | The attachments: each is `{ id, filename, content_type, content_disposition, content_id, size, downloadable, download_url }`. `download_url` (and the legacy relative-path alias `url`) is present only when `downloadable` is `true`. Omitted when the email has no attachments. |
| `created_at` | string | No | ISO 8601 time the email was received. |

## Request

**Node.js**

```js
import { SendPing } from 'sendping';

const mb = new SendPing('mb_xxxxxxxxx');

const { data, error } = await mb.emails.receiving.get('4ef9a417-02e9-4d39-ad75-9611e0fcc33c');
console.log({ data, error });
```

**Ruby**

```ruby
require "sendping"

SendPing.api_key = "mb_xxxxxxxxx"

SendPing::Emails::Receiving.get("4ef9a417-02e9-4d39-ad75-9611e0fcc33c")
```

**PHP**

```php
<?php
require 'vendor/autoload.php';

use SendPing\SendPing;

$sendping = SendPing::client('mb_xxxxxxxxx');

$sendping->emails->receiving->get('4ef9a417-02e9-4d39-ad75-9611e0fcc33c');
```

**Python**

```python
import sendping

sendping.api_key = "mb_xxxxxxxxx"

sendping.Emails.Receiving.get("4ef9a417-02e9-4d39-ad75-9611e0fcc33c")
```

**Go**

```go
import "github.com/shekhu10/sendping-sdks/sendping-go"

client := sendping.NewClient("mb_xxxxxxxxx")

received, err := client.Emails.Receiving.Get("4ef9a417-02e9-4d39-ad75-9611e0fcc33c")
```

**Rust**

```rust
use sendping::SendPing;

let mb = SendPing::new("mb_xxxxxxxxx");

let _received = mb.emails.receiving.get("4ef9a417-02e9-4d39-ad75-9611e0fcc33c").await?;
```

**Java**

```java
import co.sendping.SendPing;
import co.sendping.SendPingResponse;

SendPing sendping = new SendPing("mb_xxxxxxxxx");

SendPingResponse response = sendping.emails().receiving().get("4ef9a417-02e9-4d39-ad75-9611e0fcc33c");
```

**.NET**

```csharp
using SendPing;

ISendPing sendping = SendPingClient.Create("mb_xxxxxxxxx");

var resp = await sendping.ReceivedEmailRetrieveAsync("4ef9a417-02e9-4d39-ad75-9611e0fcc33c");
```

**cURL**

```bash
curl -X GET 'https://www.sendping.co/api/emails/receiving/4ef9a417-02e9-4d39-ad75-9611e0fcc33c' \
  -H 'Authorization: Bearer mb_xxxxxxxxx'
```

**CLI**

```bash
sendping emails receiving get 4ef9a417-02e9-4d39-ad75-9611e0fcc33c
```

## Response

```json
{
  "object": "received_email",
  "id": "4ef9a417-02e9-4d39-ad75-9611e0fcc33c",
  "to": ["delivered@yourdomain.com"],
  "from": "onboarding@example.com",
  "from_name": "Acme Onboarding",
  "created_at": "2026-06-23T22:13:42.674Z",
  "subject": "Hello World",
  "html": "Congrats on sending your <strong>first email</strong>!",
  "headers": {
    "from": "Acme <onboarding@example.com>",
    "return-path": "bounce@example.com",
    "mime-version": "1.0"
  },
  "received_for": ["forwarded@yourdomain.com"],
  "message_id": "<111-222-333@email.example.com>",
  "category": "interested",
  "reply_to_email_id": "55f6ab21-9f7c-4d0a-a3e9-1b2c3d4e5f6a",
  "read": true,
  "read_at": "2026-06-24T09:02:17.113Z",
  "spf": "pass",
  "raw_available": true,
  "raw": {
    "download_url": "https://www.sendping.co/api/emails/receiving/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/raw"
  },
  "attachments": [
    {
      "id": "2a0c9ce0-3112-4728-976e-47ddcd16a318",
      "filename": "avatar.png",
      "content_type": "image/png",
      "content_disposition": "inline",
      "content_id": "img001",
      "size": 4096,
      "downloadable": true,
      "download_url": "https://www.sendping.co/api/emails/receiving/4ef9a417-02e9-4d39-ad75-9611e0fcc33c/attachments/2a0c9ce0-3112-4728-976e-47ddcd16a318"
    }
  ]
}
```

## Errors

Returns `not_found` (404) if no received email with that id exists for your account. See the [error reference](https://www.sendping.co/docs/api/errors).
