---
title: "Get a signed URL for a recipient list"
method: POST
path: "/mailmerge/uploads"
tags: ["Mail merge"]
---

# Get a signed URL for a recipient list

`POST /mailmerge/uploads`

## Request

- Base URL: `https://api.podpdf.com`
- URL: `https://api.podpdf.com/mailmerge/uploads`
- Auth: API key in header `X-API-Key`

PUT a CSV or JSON list (up to 10 MB) to the URL, then pass `s3_key` as `input.s3_key`.

## Request body

- object
  - `content_length_bytes` integer, required
  - `content_type` 'text/csv' | 'application/json'

## Response `200`

Where to PUT the list

- object
  - `upload_url` string, uri
  - `s3_key` string
  - `expires_at` string, date-time
  - `max_bytes` integer
  - `required_headers` object

## Other responses

- `400`: The request was invalid
- `401`: Missing or invalid API key
- `403`: `INSUFFICIENT_CREDITS`, `CONVERSION_TYPE_NOT_ENABLED`, `PDF_TOOLS_NOT_ENABLED`, `RATE_LIMIT_EXCEEDED` or `ACCOUNT_NOT_FOUND`. Note that a plan's rate limit is a 403, not a 429.
- `413`: The request body is over the limit

---

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