---
title: "Upload an HTML deck"
method: POST
path: "/api/uploads"
---

# Upload an HTML deck

`POST /api/uploads`

## Request

- Base URL: `https://powerpoint-sucks.com`
- URL: `https://powerpoint-sucks.com/api/uploads`
- Auth: HTTP bearer

Raw HTML body (Content-Type: text/html), max 5242880 bytes, at most 50 uploads per user.

## Query parameters

- `filename` string, required

## Response `201`

Upload created

- object
  - `upload` Upload, required
    - `uploadId` string, required
    - `fileName` string, required
    - `sizeBytes` integer, required
    - `createdAt` string, required
    - `takedown` boolean, required

## Other responses

- `400`: Invalid filename
- `401`: Missing or invalid token
- `403`: Token lacks the decks/write scope
- `422`: Content-policy violation or quota exceeded

---

[API](https://skmtc.dev/powerpoint-sucks/apis/powerpoint-sucks-api.md) · [All operations](https://skmtc.dev/powerpoint-sucks/apis/powerpoint-sucks-api/llms.txt) · [OpenAPI document](https://skmtc.dev/powerpoint-sucks/apis/powerpoint-sucks-api/revisions/5455798dae1c?raw)
