---
title: "Publish an anonymous HTML deck"
method: POST
path: "/api/decks/anonymous"
tags: ["Publish"]
---

# Publish an anonymous HTML deck

`POST /api/decks/anonymous`

## Request

- Base URL: `https://slidesfly.com`
- URL: `https://slidesfly.com/api/decks/anonymous`
- Auth: none required

No auth. Returns `claim_token` once — store locally; never log it in chat.
Rate limit: 10/min per IP. Daily anon quota applies.

## Headers

- `Idempotency-Key` string

## Response `200`

Published

- AnonPublishSuccess
  - `ok` unknown, required
  - `data` object, required
    - `deck_id` string, required
    - `version_id` string, required
    - `url` string, uri, required
    - `claim_token` string, required
    - `title` string, required
    - `visibility` 'unlisted', required
    - `size_bytes` integer, required
    - `format` 'single_file', required
    - `anonymous` unknown, required
  - `warnings` ApiWarning[]
    - `code` string, required
    - `severity` 'info' | 'warning'
    - `message` string, required
    - `recommended_action` string

## Other responses

- `402`: Plan or anonymous quota exceeded
- `409`: Idempotency-Key reused with a different body (or still in flight)
- `422`: Invalid upload
- `429`: Rate limited
- `451`: Security scan rejected the deck

---

[API](https://skmtc.dev/slidesfly/apis/slidesfly-http-api.md) · [All operations](https://skmtc.dev/slidesfly/apis/slidesfly-http-api/llms.txt) · [OpenAPI document](https://skmtc.dev/slidesfly/apis/slidesfly-http-api/revisions/9da38f802ead?raw)
