---
title: "Upload message attachments"
method: POST
path: "/advanced/attachments"
tags: ["Uploads"]
---

# Upload message attachments

`POST /advanced/attachments`

## Request

- Base URL: `https://api.emelia.io`
- URL: `https://api.emelia.io/advanced/attachments`
- Auth: API key in header `Authorization`

Uploads 1 to 3 files (20 MB maximum each) and returns their URLs, to reference in `versions[].attachments` of EMAIL, MESSAGE or WHATSAPP steps. Files are stored as is with a PUBLIC URL: anyone with the URL can download them.

## Response `200`

Success.

- object
  - `success` unknown
  - `attachments` object[]
    - `url` string, uri
    - `name` string

## Other responses

- `400`: Invalid request.
- `401`: Missing, malformed, unknown or disabled API key. The key must be exactly 48 characters, otherwise it is treated as a session token and rejected the same way.
- `500`: Unexpected error. IMPORTANT: this is also what you receive today when the per minute quota of your account is exceeded (the quota error is not mapped to 429 for API keys). No `Retry-After` header is sent. Wait until the next minute window before retrying.

---

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