---
title: "Media Upload"
method: POST
path: "/v1/{account}/media/upload"
---

# Media Upload

`POST /v1/{account}/media/upload`

## Request

- Base URL: `https://creator-api.com` (the document declares no server; this is the origin it was published from)
- URL: `https://creator-api.com/v1/{account}/media/upload`
- Auth: none declared

Upload a photo or video to a connected account and get back what you attach to a
post. Send it as multipart form-data with a single `file` field. Works for Fansly,
OnlyFans and 4based. Fansly returns {media_id, account_media_id, mime, size} (put
account_media_id in a post's attachments). OnlyFans returns {platform, media_type,
mime, size, md5, media_file} (put `media_file` as one item of the post's
`mediaFiles`; it is single-use, post it promptly). Billed as a write.

4based is different: there is no separate upload-then-attach step, the upload
itself publishes the post immediately and this returns the created post object
directly. Optional extra multipart fields: `categories` (comma-separated, default
media/image or media/video by mime type), `description`, `price` (0 or 300+, a
standalone PPV price — ignored if `is_subscription_item` is also set, 4based never
prices subscription-included content separately), `is_subscription_item`
(true/false), `tag` (comma-separated), `private` (true/false), `to_be_posted_at`
(ISO 8601, schedules instead of publishing now). Set `reel=true` for a free
4based video up to 120 seconds; incompatible price/privacy/schedule fields are rejected.

## Path parameters

- `account` string, required

## Headers

- `x-api-key` string, nullable
- `authorization` string, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/creator-api/apis/creatorapi.md) · [All operations](https://skmtc.dev/creator-api/apis/creatorapi/llms.txt) · [OpenAPI document](https://skmtc.dev/creator-api/apis/creatorapi/revisions/530fde3d35cf?raw)
