# 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.mailblastr.com/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. |
| `tags` | object[] | No | The tags set on the email, each `{ name, value }`. |
| `events` | object[] | No | Ordered event log: each entry is `{ type, created_at }`. |

## Request

**Node.js**

```js
import { MailBlastr } from 'mailblastr';

const mb = new MailBlastr('mb_xxxxxxxxx');

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

**Ruby**

```ruby
require "mailblastr"

Mailblastr.api_key = "mb_xxxxxxxxx"

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

**PHP**

```php
$mailblastr = Mailblastr::client('mb_xxxxxxxxx');

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

**Python**

```python
import mailblastr

mailblastr.api_key = "mb_xxxxxxxxx"

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

**Go**

```go
client := mailblastr.NewClient("mb_xxxxxxxxx")
email, err := client.Emails.Get("EMAIL_ID")
```

**Rust**

```rust
let mb = Mailblastr::new("mb_xxxxxxxxx");
let _email = mb.emails.get("EMAIL_ID").await?;
```

**Java**

```java
Mailblastr mailblastr = new Mailblastr("mb_xxxxxxxxx");
mailblastr.emails().get("EMAIL_ID");
```

**.NET**

```csharp
IMailblastr mailblastr = MailblastrClient.Create("mb_xxxxxxxxx");
var resp = await mailblastr.EmailRetrieveAsync("EMAIL_ID");
```

**cURL**

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

**CLI**

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

## Response

The email object plus an `events` array. `cc`, `bcc`, `reply_to`, and `tags` 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@example.com"],
  "cc": [],
  "bcc": [],
  "reply_to": [],
  "subject": "Hello from MailBlastr",
  "html": "<p>It works!</p>",
  "text": null,
  "status": "delivered",
  "last_event": "delivered",
  "scheduled_at": null,
  "created_at": "2026-06-23T10:00:00.000Z",
  "tags": [{ "name": "category", "value": "confirm_email" }],
  "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.mailblastr.com/docs/api/errors).
