# Retrieve an email

> GET /emails/:id — fetch an email object and its event log.

`GET /emails/:id`

Retrieve a single email by id, including its current status and the ordered `events` array. Only emails belonging to your account are returned.

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | Yes | The email id returned when the email was created. |

## Response fields

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | string | No | Always `email`. |
| `id` | string | No | The email id. |
| `message_id` | string | No | The RFC 5322 Message-ID assigned to the message, e.g. `<111-222-333@email.example.com>`. |
| `from` | string | No | The sender address the email was sent from. |
| `to` | string[] | No | The recipient addresses. |
| `cc` | string[] | No | Carbon-copy addresses (empty array if none). |
| `bcc` | string[] | No | Blind carbon-copy addresses (empty array if none). |
| `reply_to` | string[] | No | Reply-To addresses (empty array if none). |
| `subject` | string | No | The subject line. |
| `html` | string | No | The HTML body that was sent (may be `null`). |
| `text` | string | No | The plain-text body that was sent (may be `null`). |
| `status` | string | No | Current status — see [Managing emails](https://www.sendping.co/docs/emails/managing). |
| `last_event` | string | No | The most recent recorded event type (falls back to `status`). |
| `scheduled_at` | string | No | The scheduled send time, or `null` if the email was not scheduled. |
| `created_at` | string | No | ISO 8601 creation timestamp. |
| `events` | object[] | No | Ordered event log: each entry is `{ type, created_at }`. |

## Request

**Node.js**

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

const mb = new SendPing('mb_xxxxxxxxx');

const { data, error } = await mb.emails.get('49a3999c-0ce1-4ea6-ab68-afcd6dc2e794');
console.log({ data, error });
```

**Ruby**

```ruby
require "sendping"

SendPing.api_key = "mb_xxxxxxxxx"

SendPing::Emails.get("49a3999c-0ce1-4ea6-ab68-afcd6dc2e794")
```

**PHP**

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

use SendPing\SendPing;

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

$sendping->emails->get('49a3999c-0ce1-4ea6-ab68-afcd6dc2e794');
```

**Python**

```python
import sendping

sendping.api_key = "mb_xxxxxxxxx"

sendping.Emails.get("49a3999c-0ce1-4ea6-ab68-afcd6dc2e794")
```

**Go**

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

client := sendping.NewClient("mb_xxxxxxxxx")

email, err := client.Emails.Get("49a3999c-0ce1-4ea6-ab68-afcd6dc2e794")
```

**Rust**

```rust
use sendping::SendPing;

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

let _email = mb.emails.get("49a3999c-0ce1-4ea6-ab68-afcd6dc2e794").await?;
```

**Java**

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

SendPing sendping = new SendPing("mb_xxxxxxxxx");

SendPingResponse response = sendping.emails().get("49a3999c-0ce1-4ea6-ab68-afcd6dc2e794");
```

**.NET**

```csharp
using SendPing;

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

var resp = await sendping.EmailRetrieveAsync("49a3999c-0ce1-4ea6-ab68-afcd6dc2e794");
```

**cURL**

```bash
curl -X GET 'https://www.sendping.co/api/emails/49a3999c-0ce1-4ea6-ab68-afcd6dc2e794' \
  -H 'Authorization: Bearer mb_xxxxxxxxx'
```

**CLI**

```bash
sendping emails get 49a3999c-0ce1-4ea6-ab68-afcd6dc2e794
```

## Response

The email object plus an `events` array. `cc`, `bcc`, and `reply_to` are always present (empty array `[]` when nothing was set). `text` and `html` are present when the original send included them, `null` otherwise.

```json
{
  "object": "email",
  "id": "49a3999c-0ce1-4ea6-ab68-afcd6dc2e794",
  "message_id": "<111-222-333@email.example.com>",
  "from": "Acme <hello@yourdomain.com>",
  "to": ["delivered@test.sendping.co"],
  "cc": [],
  "bcc": [],
  "reply_to": [],
  "subject": "Hello from SendPing",
  "html": "<p>It works!</p>",
  "text": null,
  "status": "delivered",
  "last_event": "delivered",
  "scheduled_at": null,
  "created_at": "2026-06-23T10:00:00.000Z",
  "events": [
    { "type": "sent", "created_at": "2026-06-23T10:00:00.000Z" },
    { "type": "delivered", "created_at": "2026-06-23T10:00:04.512Z" }
  ]
}
```

## Errors

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