---
title: "List sent messages"
method: GET
path: "/v1/inboxes/{inbox_id}/sent"
tags: ["sending"]
---

# List sent messages

`GET /v1/inboxes/{inbox_id}/sent`

## Request

- Base URL: `https://cherami.to`
- URL: `https://cherami.to/v1/inboxes/{inbox_id}/sent`
- Auth: HTTP bearer

Lists the inbox's sent messages of every status, newest first, with the same `query`, filters, ordering and [previews](https://cherami.to/docs/api/messages/list-messages#previews) as received mail. Entries carry the outcome and a preview but no subject or recipients: [read a message](https://cherami.to/docs/api/sending/get-sent-message) for those.

## Path parameters

- `inbox_id` string, required

## Query parameters

- `limit` integer
- `cursor` string
- `query` string
- `from` string
- `recipient` string
- `subject` string
- `after` string
- `before` string
- `labels_all` Label[]
- `labels_any` Label[]
- `labels_none` Label[]
- `order` 'newest' | 'oldest' | 'relevance'

## Response `200`

Success.

- object
  - `messages` SentSummary[], required
    - `id` string, required: Cherami resource ID.
    - `inbox_id` string, required: Cherami resource ID.
    - `created_at` string, date-time, required: UTC timestamp with milliseconds.
    - `recipient_count` integer, required
    - `status` 'accepted' | 'rejected' | 'unknown', required
    - `provider_message_id` string, nullable, required: Message-ID the provider assigned when it accepted the message.
    - `error_code` string, nullable, required: Reason code for a rejected or unknown outcome, such as E_RECIPIENT_SUPPRESSED or acceptance_unknown.
    - `thread_id` string, nullable, required: Cherami resource ID.
    - `in_reply_to` string, nullable, required: Cherami resource ID.
    - `labels` string[], required
    - `preview` Preview, required
      - `text` string, required: Start of the chosen text, whitespace collapsed; empty when the message added no new text.
      - `truncated` boolean, required: true when the chosen text was longer than the excerpt.
      - `source` 'reply_text' | 'text' | 'html', required: Which text the excerpt comes from.
  - `next_cursor` string, nullable, required: Cursor for the next page, or null at the end. Send it with the same URL, filters and order.

## Other responses

- `400`: `invalid_limit`: Use an integer from 1 to 100. `invalid_cursor`: Send a cursor only to the listing, filters and order that returned it, or restart from the first page. `invalid_search`: Correct the search terms, filters, timestamps or ordering the message names. See [search](https://cherami.to/docs/guides/search). `invalid_labels`: Correct the label name, label change, filter group or discovery prefix the message names.
- `401`: `unauthorized`: Send a valid API key as `Authorization: Bearer <key>`. If the key stopped working, get a new one through [recovery](https://cherami.to/docs/guides/recovery).
- `404`: `not_found`: The resource does not exist or does not belong to this account. A reply or forward source must also be in the sending inbox.
- `503`: `outbound_unavailable`: The request failed. If it was a send, reply or forward, its outcome is unknown: repeat it with the same idempotency key and unchanged payload within 24 hours of the first request; without a key, check sent messages before sending again. Retry a read.

---

[API](https://skmtc.dev/cherami/apis/cherami-http-api.md) · [All operations](https://skmtc.dev/cherami/apis/cherami-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/cherami/apis/cherami-http-api/revisions/7bd993d538af?raw)
