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

# Messages API: Read Email and LinkedIn Outreach Content

> List and fetch messages sent or received in outreach sequences — email bodies, LinkedIn threads, channels, and senders.

The Messages API exposes the actual email and LinkedIn content exchanged during sequence runs. Use it when you need message bodies in an external system, audit what was sent to a contact, or build reporting without polling the broader [Activities API](/api-reference/activities).

<Note>
  All Messages endpoints require the `messages:read` scope. Message content is more sensitive than the activity stream, so it carries its own scope instead of piggybacking on `activities:read`.
</Note>

## List messages

`GET /v1/messages` returns messages in your workspace with the standard [pagination envelope](/api-reference/pagination-filtering). Results default to `sent_at` descending.

| Parameter     | Description                                         |
| ------------- | --------------------------------------------------- |
| `contact_id`  | Messages linked to sequences targeting this contact |
| `sequence_id` | Messages from a specific sequence run               |
| `channel`     | `EMAIL`, `LINKEDIN`, `CALENDAR`, or `MANUAL`        |
| `direction`   | `OUTBOUND` (your team) or `INBOUND` (contact reply) |

Each message includes `channel`, `direction`, `subject` (email only), `body`, `sent_at`, and for outbound messages `sender_id` plus an optional `sender` summary (mailbox name and address).

`GET /v1/messages/{message_id}` fetches a single message.

<Tip>
  For real-time delivery of send/open/reply events, use [Webhooks](/api-reference/webhooks) or poll [Activities](/api-reference/activities). Messages are the read API for full message content after you know a message id from those streams.
</Tip>
