GET /v1/messages/{id}
Docs / Sending
GET

/v1/messages/{id}

One message from the archive: summary fields plus recipients, delivery events, and transport id. id is the UUID from POST /v1/messages — the same id the panel's Message Log shows.

Authentication

Requires messages:read. A key without it gets 403, a send-only key included.

Worked example

curl https://spoolway.com/api/v1/messages/2ee35675-6bae-42be-aa5e-6d4618d0c61d \
  -H "Authorization: Bearer spw_…"
200 OKcaptured LOCAL
{
  "data": {
    "id": "2ee35675-6bae-42be-aa5e-6d4618d0c61d",
    "status": "queued",
    "status_label": "Queued",
    "evidence": "none",
    "supports_feedback": false,
    "application_id": 1,
    "template_id": 1,
    "subject": "Reset password",
    "subject_redacted": false,
    "from_address": "[email protected]",
    "queued_at": "2026-08-06T06:55:48.000000Z",
    "completed_at": null,
    "content_expires_at": null,
    "tags": { "env": "docs" },
    "recipients": [
      {
        "kind": "to",
        "email": "[email protected]",
        "name": "Casey Reid",
        "status": "queued",
        "suppressed_reason": null
      }
    ],
    "events": [
      {
        "type": "queued",
        "occurred_at": "2026-08-06T06:55:48.000000Z",
        "source": "internal",
        "payload": null
      }
    ],
    "transport_id": 1
  }
}

Responses & failures

Unknown id → 404. Wrong ability → 403. No body fields here by design.