List Vault Lists
List your Vault lists (categories).
Every response carries an ETag computed over the data payload. Send it back as If-None-Match on your next
call and you will get a 304 Not Modified with an empty body when nothing changed, so you can keep serving your
cached copy instead of re-parsing the full list. Credits are debited either way — we still have to ask OnlyFans
for the current state to know whether it changed.
The ETag covers data only, never _meta — your credits balance changes on every call, so including it would
mean the ETag never matches. Because a 304 has no body, it also has no _meta: read the current credits and
rate-limit counters from the X-OFAPI-Credits-Used, X-OFAPI-Credits-Balance, X-Rate-Limit-Limit-Minute and
X-Rate-Limit-Remaining-Minute response headers, which are sent on 304 responses too. The _meta inside a
body you cached earlier is stale by definition.
Authorization
default Get your API Key from OnlyFansAPI Console - https://app.onlyfansapi.com/api-keys
In: header
Path Parameters
The Account ID
Query Parameters
Optionally, find a list by its name.
Number of media to return per page. Default: 24
The offset used for pagination. Default 0
Set to true to return only id, name, type, canUpdate and a rolled-up mediaCount per list, dropping the medias previews. Much smaller payload — ideal for rendering a folder picker. Default: false
Response Body
application/json
application/json
curl -X GET "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/media/vault/lists?query=My+list+name&limit=24&offset=0&lightweight=true"{
"data": {
"list": [
{
"id": 123,
"type": "stories",
"name": "Stories",
"hasMedia": false,
"canUpdate": false,
"canDelete": false,
"videosCount": 0,
"photosCount": 0,
"gifsCount": 0,
"audiosCount": 0,
"medias": []
},
{
"id": 123,
"type": "streams",
"name": "Streams",
"hasMedia": false,
"canUpdate": false,
"canDelete": false,
"videosCount": 0,
"photosCount": 0,
"gifsCount": 0,
"audiosCount": 0,
"medias": []
},
{
"id": 123,
"type": "media_stickers",
"name": "Uploads",
"hasMedia": false,
"canUpdate": false,
"canDelete": false,
"videosCount": 0,
"photosCount": 0,
"gifsCount": 0,
"audiosCount": 0,
"medias": []
},
{
"id": 123,
"type": "posts",
"name": "Posts",
"hasMedia": true,
"canUpdate": false,
"canDelete": false,
"videosCount": 0,
"photosCount": 5,
"gifsCount": 0,
"audiosCount": 0,
"medias": [
{
"type": "photo",
"url": "https://cdn2.onlyfans.com/files/..."
}
]
},
{
"id": 123,
"type": "custom",
"name": "custom category",
"hasMedia": false,
"canUpdate": true,
"canDelete": true,
"videosCount": 0,
"photosCount": 0,
"gifsCount": 0,
"audiosCount": 0,
"medias": []
},
{
"id": 123,
"type": "messages",
"name": "Messages",
"hasMedia": true,
"canUpdate": false,
"canDelete": false,
"videosCount": 1,
"photosCount": 4,
"gifsCount": 0,
"audiosCount": 2,
"medias": [
{
"type": "photo",
"url": "https://cdn2.onlyfans.com/files/..."
}
]
}
],
"all": {
"videosCount": 1,
"photosCount": 9,
"gifsCount": 0,
"audiosCount": 2,
"medias": [
{
"type": "photo",
"url": "https://cdn2.onlyfans.com/files/..."
}
]
},
"hasMore": false,
"canCreateVaultLists": true,
"order": "asc",
"sort": "default"
},
"_meta": {
"_credits": {
"used": 1,
"balance": 999999945,
"note": "Always"
},
"_cache": {
"is_cached": false,
"note": "Cache disabled for this endpoint"
},
"_rate_limits": {
"limit_minute": 1000,
"limit_day": 50000,
"remaining_minute": 998,
"remaining_day": 49968
}
}
}{}