Skip to main content
POST
Upload a file
Send the file as multipart form data in a field named file. The answer’s id and path go into a post’s image array.
Then, in the post:

What it accepts

PostQueen reads the type from the file’s bytes, not its name, and stores files up to 1 GB. Each network then has its own, much smaller limits when it publishes.

Videos are processed first

A video answers with "status": "processing" while PostQueen prepares it for the networks. Poll Get media status until it is ready, then use the path that call returns: a converted file has a new one. Images are ready at once.
POST /upload allows 300 requests an hour per workspace, counted apart from Upload from a URL and from the posting limit. See Limits and errors.

Authorizations

Authorization
string
header
required

Your API key from Connections > API Keys, or an OAuth access token (pos_...). Send it as it is, with no Bearer prefix.

Body

multipart/form-data
file
file
required

The file to upload

Response

Stored

id
string

Unique file ID

name
string

Stored file name

originalName
string | null

The name the file was uploaded under

path
string

URL of the stored file. Send it with id as a post's media

thumbnail
string | null

Thumbnail URL, set for video

alt
string | null

Alt text, when one was set

status
enum<string>

A video (MP4 or MOV) is normalized in the background and starts as processing; poll GET /media/{id}/status until it is ready before you put it on a post. Images are ready at once.

Available options:
ready,
processing,
failed
Last modified on September 23, 2026