---
title: "Get a signed URL for a large PDF"
method: POST
path: "/pdf/upload-url"
tags: ["PDF tools"]
---

# Get a signed URL for a large PDF

`POST /pdf/upload-url`

## Request

- Base URL: `https://api.podpdf.com`
- URL: `https://api.podpdf.com/pdf/upload-url`
- Auth: API key in header `X-API-Key`

## Request body

- object
  - `content_length_bytes` integer, required

## Response `200`

Where to PUT the file

- object
  - `upload_url` string, uri: PUT the PDF here, with the headers in `required_headers` and no API key.
  - `s3_key` string
  - `expires_at` string, date-time
  - `max_bytes` integer: Largest PDF this upload accepts, in bytes.
  - `required_headers` object: Headers the PUT must send exactly, or the signature is rejected.

## 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.

---

[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)
