Vault

List Vault Media

Returns media items stored in the creator's vault — the personal library used to compose posts, stories, and chat messages. Includes uploaded photos, videos, GIFs, and audio along with engagement counters and per-item state across the post/story/message/stream/uploads lists. Requires permission api_vault_list_media.

https://public-api.fansmetric.com
GET/v1/{account_id}/vault/media
Bearer

Authorization

default
AuthorizationBearer <token>

Send your FansMetric API key as a Bearer token in the Authorization header.

In: header

Path Parameters

  • account_id*integer

    OnlyFans numeric account ID.

Query Parameters

  • limitinteger

    Page size. Default 24. Min 1, max 100.

  • offsetinteger

    Rows to skip. Default 0.

  • fieldstring

    Sort key. One of recent, most-liked, highest-tips. Default recent.

  • sortstring

    Sort direction. desc (default) or asc.

  • liststring

    Restrict to a vault list (category). Use all (default) for everything, or pass a list id from List Vault Lists.

  • typestring

    Filter by media type: photo, gif, video, audio. Omit for all.

  • querystring

    Text search across media metadata.

  • before_publish_datestring

    ISO timestamp; only return media added before this date. Useful for backfilling.

Response Fields

  • data.list[]array

    Vault media items on this page.

  • data.list[].idinteger

    Vault media ID. Use in mediaFiles of POST /posts, mass messages, or mediaIds of vault list operations.

  • data.list[].typestring

    photo, video, gif, or audio.

  • data.list[].createdAtstring

    ISO timestamp when the media was added to the vault.

  • data.list[].isReadyboolean

    true once OnlyFans has finished transcoding the file.

  • data.list[].countersobject

    Lifetime engagement counters across all surfaces the media has appeared on (likes, tips).

  • data.list[].filesobject

    Per-variant URL set: full, thumb, preview, squarePreview. Each variant carries url, width, height, and (for full) size.

  • data.list[].durationnumber

    Duration in seconds (videos / audio). 0 for photos and GIFs.

  • data.list[].listStates[]array

    Per-list membership state — one entry per system list (posts, stories, messages, etc.) with hasMedia and canAddMedia.

  • data.hasMoreboolean

    Whether more pages remain.

  • dataobject | array

    Endpoint-specific payload. See the fields below for this route.

  • _pagination.next_pagestring

    Relative URL for the next page, with the cursor or offset already applied. Append it to the API base URL and send it as-is. Omitted entirely on the last page.

  • _meta._credits.usedinteger

    Credits consumed by this request (currently always 1).

  • _meta._rate_limits.limit_minuteinteger

    Maximum requests per minute for the organization.

  • _meta._rate_limits.remaining_minuteinteger

    Remaining requests in the current minute window.

  • _meta._rate_limits.limit_dayinteger

    Maximum requests per day for the organization.

  • _meta._rate_limits.remaining_dayinteger

    Remaining requests in the current day window.

curl --request GET "https://public-api.fansmetric.com/v1/100000001/vault/media?limit=20&offset=0&field=sample_field" \
  --header "Authorization: Bearer YOUR_API_KEY"

Response

200
{
"data":{
"list":[
0:{
"id":123456789
"type":"photo"
"createdAt":"2026-05-14T10:30:00+00:00"
"isReady":true
"canView":true
"hasError":false
"counters":{
"likesCount":12
"tipsSumm":50
}
"files":{
"full":{
"url":"https://public-api.fansmetric.com/media-proxy?url=...&exp=...&sig=..."
"width":1080
"height":1920
"size":234567
}
"thumb":{
"url":"https://public-api.fansmetric.com/media-proxy?url=...&exp=...&sig=..."
"width":300
"height":533
}
"preview":{
"url":"https://public-api.fansmetric.com/media-proxy?url=...&exp=...&sig=..."
"width":1080
"height":1920
}
"squarePreview":{
"url":"https://public-api.fansmetric.com/media-proxy?url=...&exp=...&sig=..."
"width":600
"height":600
}
}
"duration":0
"hasPosts":true
"listStates":[
0:{
"id":1
"type":"posts"
"name":"Posts"
"hasMedia":true
"canAddMedia":false
}
1:{
"id":2
"type":"stories"
"name":"Stories"
"hasMedia":false
"canAddMedia":true
}
2:{
"id":3
"type":"messages"
"name":"Messages"
"hasMedia":false
"canAddMedia":true
}
]
}
]
"hasMore":true
}
"_pagination":{
"next_page":"/v1/12345678/vault/media?limit=24&offset=24"
}
"_meta":{
"_credits":{
"used":1
}
"_rate_limits":{
"limit_minute":1000
"remaining_minute":999
"limit_day":50000
"remaining_day":49999
}
}
}