> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kurrier.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Messages

> Retrieve email messages from Kurrier

Kurrier allows you to **retrieve individual email messages by ID** using the HTTP API.

For privacy, security, and scale reasons, **Kurrier does not support listing messages**.
Messages can only be accessed if you already know their ID.

All routes below are relative to:

```text theme={null}
https://www.kurrier.io/api/kurrier
```

***

## Overview

Messages represent **emails sent or received through Kurrier**.

Each message is immutable and includes:

* headers
* body (HTML and/or text)
* delivery metadata
* provider and identity references

Messages are typically retrieved when:

* processing webhooks
* building an inbox or activity view
* fetching delivery details
* debugging delivery issues

***

## Get a message by ID

### `GET /messages/{id}`

Fetch a single message using its **message ID**.

> 🔒 This is the **only supported read operation** for messages.

### Path parameters

| Name | Type   | Description    |
| ---- | ------ | -------------- |
| `id` | string | The message ID |

***

### Example request

```bash theme={null}
curl https://www.kurrier.io/api/kurrier/messages/msg_9ANdDSgvj5 \
  -H "Authorization: Bearer YOUR_API_KEY"
```

***

## Important limitations

* ❌ No message listing
* ❌ No search or filtering
* ❌ No bulk retrieval

These restrictions are intentional for now and help ensure:

* predictable performance
* strong tenant isolation
* simpler compliance and auditing

Messages are expected to be accessed via:

* webhooks
* stored message IDs
* external indexing on your side

***

## Error responses

| Status | Meaning                                 |
| ------ | --------------------------------------- |
| `401`  | Invalid or missing API key              |
| `403`  | Message does not belong to your account |
| `404`  | Message not found                       |

***

## Summary

* Messages are **read-only**
* Access is **by ID only**
* No listing or querying
* Designed for webhook-driven workflows and audit access
