OnlyFans API
FanslyVault

Upload Media to Vault

Upload a file straight into the Fansly Vault. Provide either file or file_url. Credits are charged per megabyte uploaded.

Leave album_id out to store the media in the account's default vault album (what the Fansly Dashboard shows when you open the Vault), or pass one to store it in a specific album — Fansly's built-in albums as well as your own. Refer to our List Vault Albums endpoint to look up album IDs.

The response also carries the reusable fansly_media_ handle, so vault media can be attached to chat messages and posts without re-uploading it.

POST
/api/fansly/{fanslyAccount}/vault/media/upload
AuthorizationBearer <token>

Get your API Key from OnlyFansAPI Console - https://app.onlyfansapi.com/api-keys

In: header

Path Parameters

fanslyAccount*string

The Fansly Account ID

Request Body

multipart/form-data

file?string

The file to upload. Required if file_url is not provided. Maximum file size: 100 MB.

file_url?string

A URL to download the file from. Required if file is not provided.

async?boolean

Set to true to process the upload in the background. Returns a polling_url to check status. Recommended for large files/videos.

album_id?string

The vault album to store the media in. Defaults to the account's default vault album.

Response Body

application/json

application/json

curl -X POST "https://app.onlyfansapi.com/api/fansly/fansly_acct_XXXXXXXXXXXXXXX/vault/media/upload"
{
  "prefixed_id": "fansly_media_01JR1234ABCD5678EFGH",
  "file_name": "photo.jpg",
  "media_id": "800000000000000010",
  "media": {
    "id": "800000000000000010",
    "type": 1,
    "status": 1,
    "accountId": "800000000000000001",
    "mimetype": "image/jpeg",
    "filename": "photo.jpg",
    "width": 1080,
    "height": 1080
  },
  "credits_used": 1,
  "vault_album_id": "800000000000000200"
}
{
  "status": "pending",
  "prefixed_id": "fansly_media_01JR1234ABCD5678EFGH",
  "polling_url": "https://app.onlyfansapi.com/api/fansly/fansly_acct_XXXXXXXXXXXXXXX/media/uploads/fansly_media_01JR1234ABCD5678EFGH/status"
}