---
title: "Anonymous upload (no API key)"
method: POST
path: "/v1/playground/upload"
tags: ["Images"]
---

# Anonymous upload (no API key)

`POST /v1/playground/upload`

## Request

- Base URL: `https://api.pixelvault.dev`
- URL: `https://api.pixelvault.dev/v1/playground/upload`
- Auth: none declared

Upload an image without an account or API key and get a temporary public CDN URL. Rate limited to 10 uploads/hour per IP, max 2 MB. Images are removed within 24 hours — use the authenticated upload for permanent hosting.

## Response `201`

Image uploaded

- object
  - `data` object
    - `id` string
    - `url` string, uri
    - `mime_type` string
    - `size` integer
    - `expires_in` integer
    - `claim_token` string: Proof that this caller performed the upload. Exchange it at POST /v1/claim to keep the image permanently in a signed-in account. Valid for 24 hours and idempotent per project — redeeming it again returns the image already saved rather than storing a second copy.
    - `claim_expires_in` integer

## Other responses

- `400`: Missing or invalid file
- `413`: File exceeds the 2 MB playground limit
- `429`: Rate limit exceeded

---

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