---
title: "Server-Sent Events push of new messages"
method: GET
path: "/inboxes/{id}/stream"
tags: ["messages"]
---

# Server-Sent Events push of new messages

`GET /inboxes/{id}/stream`

## Request

- Base URL: `https://dash.mailsocket.app/api/v1`
- URL: `https://dash.mailsocket.app/api/v1/inboxes/{id}/stream`
- Auth: HTTP bearer

SSE alternative to long-poll `wait`: emits a `message` event per
newly-ingested matching message, a periodic `: heartbeat` comment,
and a final `bye` event before closing (clients reconnect with a
fresh `since` cursor via the advertised `retry:`). Consumes the same
per-account and global wait-capacity slots as `messages/wait`
(routed through a smaller reserved sub-pool for Free/agent-plan
accounts so free traffic can never starve paid waits).

## Path parameters

- `id` string, required

## Query parameters

- `require` 'otp' | 'link' | 'any'
- `min_confidence` number
- `since` string

## Response `200`

text/event-stream of `message`/heartbeat/`bye` events.

## Other responses

- `401`: Missing or invalid API key.
- `403`: Account is not permitted to use the API.
- `404`: Resource not found (unknown or not owned).
- `422`: Request validation failed (malformed body or invalid parameter).
- `429`: Concurrent-wait cap exhausted (`too_many_wait_requests` per account, or `wait_capacity` for the global/free-plan sub-pool).

---

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