---
title: "Mint a Plain.com presigned attachment upload URL"
method: POST
path: "/api/v1/support/attachments/upload-url"
tags: ["Support"]
---

# Mint a Plain.com presigned attachment upload URL

`POST /api/v1/support/attachments/upload-url`

Creates a Plain.com attachment owned by the authenticated user's Plain customer and returns a presigned S3 POST URL + form fields; the browser uploads the bytes directly and passes the returned `attachment_id` to /api/v1/support/submit. Limited to 5 MB. Requires `email_consent` to be true.

## Response `200`

Presigned upload URL and form fields

- object
  - `attachment_id` string, required
  - `upload_form_url` string, required
  - `upload_form_data` object[], required
    - `key` string, required
    - `value` string, required

## Other responses

- `400` — Invalid request (bad type/size)
- `401` — Not authenticated
- `503` — Support not configured, no email on file, or upstream unavailable

---

[API](https://skmtc.dev/entire/apis/entire-api.md) · [All operations](https://skmtc.dev/entire/apis/entire-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/entire/entire-api/revisions/c3d737ae064e/schema)
