# Retrieve Email

`GET https://api.inboxjot.com/v1/emails/{email_id}`

Retrieves one email and its latest status. Needs a Full key.

## Path Parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `email_id` | string | Yes | The email id, such as `eml_06d2mfk8r4tq9xv2bnc7s`. |

## Response

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string | No | The email id. |
| `from` | string | No | Sender address. |
| `to` | string[] | No | Recipient addresses, without display names. |
| `cc` | string[] | No | Carbon copy addresses. |
| `bcc` | string[] | No | Blind carbon copy addresses. |
| `subject` | string | No | Email subject. |
| `tags` | object[] | No | The tags sent with the email. |
| `tags[].name` | string | No | The tag name. |
| `tags[].value` | string | No | The tag value. |
| `status` | string | No | One of `scheduled`, `queued`, `sending`, `sent`, `delivered`, `opened`, `clicked`, `soft_bounced`, `bounced`, `rejected`, `failed`, `canceled` or `complained`. |
| `source` | string | No | Where the email came from: `api`, `smtp`, `dashboard`, `mcp`, `campaign` or `automation`. |
| `scheduled_at` | string \| null | No | When a scheduled email goes out. |
| `sent_at` | string \| null | No | When Inboxjot handed the email to the mail server. |
| `created_at` | string | No | When the email was created. |

## Request

cURL:

```bash
curl -X GET https://api.inboxjot.com/v1/emails/eml_06d2mfk8r4tq9xv2bnc7s \
  -H "Authorization: Bearer $INBOXJOT_API_KEY"
```

Node.js:

```javascript
import { Inboxjot } from 'inboxjot';

const inboxjot = new Inboxjot();

const email = await inboxjot.emails.get('eml_06d2mfk8r4tq9xv2bnc7s');
```

Rust:

```rust
use inboxjot::Inboxjot;

let client = Inboxjot::from_env()?;

let email = client.emails().get("eml_06d2mfk8r4tq9xv2bnc7s").await?;
```

Go:

```go
client := inboxjot.NewClient("")

email, err := client.Emails.Get(ctx, "eml_06d2mfk8r4tq9xv2bnc7s")
```

Python:

```python
from inboxjot import Inboxjot

inboxjot = Inboxjot()

email = inboxjot.emails.get("eml_06d2mfk8r4tq9xv2bnc7s")
```

## Responses

| Status | Description |
| --- | --- |
| 200 | Returns the email. |
| 400 | A path parameter is invalid. |
| 401 | The API key is missing, revoked or expired. |
| 403 | The key is a Sending key, or the request comes from outside its IP allowlist. |
| 404 | The email does not exist in this workspace. |
| 429 | Too many requests for this key. Wait for the seconds in the Retry-After header. |
| 500 | Something failed on our side. Retry later. |

200:

```json
{
  "id": "eml_06d2mfk8r4tq9xv2bnc7s",
  "from": "Acme <hello@acme.dev>",
  "to": [
    "riti@example.com"
  ],
  "cc": [],
  "bcc": [],
  "subject": "Your receipt from Acme",
  "tags": [
    {
      "name": "category",
      "value": "receipt"
    }
  ],
  "status": "delivered",
  "source": "api",
  "scheduled_at": null,
  "sent_at": "2026-10-15T14:02:34.000Z",
  "created_at": "2026-10-15T14:02:33.000Z"
}
```

400:

```json
{
  "name": "validation_error",
  "status": 400,
  "message": "length is greater than 100",
  "errors": [
    {
      "message": "length is greater than 100",
      "location": "email_id"
    }
  ],
  "request_id": "5f0c6a2e-8d1b-4c7a-9e3f-2b6d4a1c8e90"
}
```

401:

```json
{
  "name": "unauthorized",
  "status": 401,
  "message": "Unauthorized",
  "errors": [],
  "request_id": "5f0c6a2e-8d1b-4c7a-9e3f-2b6d4a1c8e90"
}
```

403:

```json
{
  "name": "forbidden",
  "status": 403,
  "message": "This key cannot be used from 203.0.113.7",
  "errors": [],
  "request_id": "5f0c6a2e-8d1b-4c7a-9e3f-2b6d4a1c8e90"
}
```

404:

```json
{
  "name": "not_found",
  "status": 404,
  "message": "Email not found",
  "errors": [],
  "request_id": "5f0c6a2e-8d1b-4c7a-9e3f-2b6d4a1c8e90"
}
```

429:

```json
{
  "name": "rate_limit_exceeded",
  "status": 429,
  "message": "Too many attempts. Try again later.",
  "errors": [],
  "request_id": "5f0c6a2e-8d1b-4c7a-9e3f-2b6d4a1c8e90"
}
```

500:

```json
{
  "name": "unknown_error",
  "status": 500,
  "message": "Something went wrong. Please try again later.",
  "errors": [],
  "request_id": "5f0c6a2e-8d1b-4c7a-9e3f-2b6d4a1c8e90"
}
```
