---
title: "List message attachments"
method: GET
path: "/v1/messages/{messageId}/attachments"
---

# List message attachments

`GET /v1/messages/{messageId}/attachments`

List the stored file attachments for an email message and get a short-lived signed `downloadUrl` for each. Works for both inbound emails (received via `message.inbound`) and outbound emails you sent with attachments. Messages without stored attachments (including SMS, WhatsApp, and other channels) return an empty list. Each `downloadUrl` is generated fresh per request and expires — fetch the file promptly and do not cache the URL.

## Path parameters

- `messageId` string, required

## Response `200`

List of attachments.

- MessageAttachmentsResponse
  - `items` MessageAttachment[], required
    - `id` string, required
    - `filename` string, required
    - `mimeType` string, required — MIME type of the attachment.
    - `size` integer, required — Size of the attachment in bytes.
    - `contentId` string, nullable, required — Content-ID for inline attachments (referenced in the HTML body as `cid:<contentId>`). Null for regular attachments.
    - `isInline` boolean, required — Whether the attachment is inline (embedded in the HTML body) rather than a regular attachment.
    - `downloadUrl` string, uri, nullable, required — Short-lived signed URL to download the attachment bytes. Freshly generated on each request and expires; do not cache it. Null if the stored file is no longer available.
    - `createdAt` string, date-time, required

## Other responses

- `401` — Unauthorized.
- `404` — Message not found.

---

[API](https://skmtc.net/zavudev/apis/zavu-unified-messaging-layer-api.md) · [All operations](https://skmtc.net/zavudev/apis/zavu-unified-messaging-layer-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zavudev/zavu-unified-messaging-layer-api/revisions/eb3dc75cc05b/schema)
