---
title: "Create a human media drop"
method: POST
path: "/api/v1/media/drop-sessions"
tags: ["Media"]
---

# Create a human media drop

`POST /api/v1/media/drop-sessions`

## Request

- Base URL: `https://www.poster.ly`
- URL: `https://www.poster.ly/api/v1/media/drop-sessions`
- Auth: HTTP bearer

Creates a 24-hour no-login drop page at https://www.poster.ly/drop/<token>. Send drop_url to a ChatGPT or Claude user, then call GET /api/v1/media?drop_session_id=... after they upload. This is not create_signed_upload and not a chat paperclip.

## Request body

- MediaDropSessionRequest
  - `filename` string: Optional filename hint shown to the human.
  - `max_files` integer: How many files the drop link accepts, 1 to 20 (default 10).
  - `workspace_id` string: Optional. The workspace this call acts in and whose plan and credits it uses (from whoami). Needed only when the key can act in several workspaces.

## Response `200`

Media drop created

- MediaDropSessionResponse
  - `session_id` string, uuid, required
  - `drop_url` string, required: No-login page at https://www.poster.ly/drop/<token>.
  - `expires_at` string, date-time, required
  - `max_bytes` integer, required
  - `max_files` integer, required
  - `instructions` string, required

## Other responses

- `401`: Invalid or missing API key
- `429`: Too many requests

---

[API](https://skmtc.dev/poster/apis/posterly-api.md) · [All operations](https://skmtc.dev/poster/apis/posterly-api/llms.txt) · [OpenAPI document](https://skmtc.dev/poster/apis/posterly-api/revisions/60be02a61f95?raw)
