The Only API docs
Vault

List media in a collection

The media inside one vault collection.

GET
/accounts/{of_user_id}/vault/media

The media inside one vault collection.

⚠️ Each row's url is a signed CDN link. It expires in about a week and is scoped to this server's egress IP, so fetch or relay it right away — storing it in your own database gives you a dead link. Re-list to get a fresh one.

Paging uses the before/after snowflake cursors rather than an offset: pass the last row's id as before for the next page.

Fansly only.

X-API-Key<token>

Your CRM panel API key

In: header

Path Parameters

of_user_id*string

Creator account ID of the connected account (OnlyFans or Fansly). Use GET /accounts to list connected accounts and their IDs.

Query Parameters

collectionId*string

Which collection to read. Get ids from GET /accounts/{of_user_id}/vault/collections.

search?string

Filter by filename.

mediaType?string

Filter by media kind. Empty means all kinds.

before?string

Cursor: return items older than this id.

after?string

Cursor: return items newer than this id.

limit?integer

Header Parameters

X-Proxy?string

Proxy URL — HTTP or SOCKS5 (e.g. http://user:pass@host:port or socks5://user:pass@host:port). Optional on post-connection routes, where it overrides the proxy saved at login time. Required on the connection routes (POST /accounts/login, POST /accounts/login/cookies, POST /accounts/login/verify-otp) for OnlyFans accounts; optional for Fansly.

Response Body

application/json

curl -X GET "https://example.com/accounts/string/vault/media?collectionId=string"
{  "success": true,  "media": [    {      "id": "string",      "kind": "string",      "mimetype": "string",      "url": "string",      "filename": "string",      "width": 0,      "height": 0,      "durationSec": 0,      "collectionIds": [        "string"      ]    }  ],  "hasMore": true,  "nextCursor": "string"}