Vault
List Vault Albums
Get a list of all vault albums from a Fansly account.
https://v1.apifansly.com
GET
/api/fansly/{accountId}/vault/albums
Get Started
All requests to the Fansly API require an API Key. See the Authentication page for details.
Request
curl -X GET "https://v1.apifansly.com/api/fansly/{accountId}/vault/albums" \
-H "x-api-key: YOUR_API_KEY"fetch("https://v1.apifansly.com/api/fansly/{accountId}/vault/albums", {
method: "GET",
headers: {
"x-api-key": "YOUR_API_KEY"
}
})import requests
url = "https://v1.apifansly.com/api/fansly/{accountId}/vault/albums"
headers = {
"x-api-key": "YOUR_API_KEY"
}
response = requests.get(url, headers=headers)
print(response.json())import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://v1.apifansly.com/api/fansly/{accountId}/vault/albums"))
.header("x-api-key", "YOUR_API_KEY")
.GET()
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();using System.Net.Http;
using System.Threading.Tasks;
var client = new HttpClient();
client.DefaultRequestHeaders.Add("x-api-key", "YOUR_API_KEY");
var response = await client.GetAsync("https://v1.apifansly.com/api/fansly/{accountId}/vault/albums");
var responseString = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseString);package main
import (
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://v1.apifansly.com/api/fansly/{accountId}/vault/albums"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Set("x-api-key", "YOUR_API_KEY")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}Path Parameters
accountId*
stringThe unique identifier for the connected Fansly account.
By default, Fansly includes standard albums such as "All", "Posts", and "Messages".
Response
{
"statusCode": 200,
"message": "Success",
"data": {
"status_code": 200,
"data": {
"success": true,
"response": {
"albums": [
{
"id": "ALBUM_ID_1",
"accountId": "ACCOUNT_ID",
"pos": 0,
"title": "All",
"description": null,
"type": 38000,
"status": 0,
"itemCount": 8,
"lastItemId": "LAST_ITEM_ID_1",
"version": 2,
"createdAt": 1768518748000
},
{
"id": "ALBUM_ID_2",
"accountId": "ACCOUNT_ID",
"pos": 1,
"title": "Posts",
"description": null,
"type": 1000,
"status": 0,
"itemCount": 1,
"lastItemId": "LAST_ITEM_ID_2",
"version": 2,
"createdAt": 1768000991000
},
{
"id": "ALBUM_ID_3",
"accountId": "ACCOUNT_ID",
"pos": 2,
"title": "Messages",
"description": null,
"type": 5000,
"status": 0,
"itemCount": 6,
"lastItemId": "LAST_ITEM_ID_3",
"version": 2,
"createdAt": 1768536545000
},
{
"id": "ALBUM_ID_4",
"accountId": "ACCOUNT_ID",
"pos": 3,
"title": "Album name",
"description": "Album description",
"type": null,
"status": 0,
"itemCount": 3,
"lastItemId": "LAST_ITEM_ID_4",
"version": 2,
"createdAt": 1770057563000
}
],
"aggregationData": {
"media": [
{
"id": "MEDIA_ID_1",
"type": 1,
"status": 1,
"accountId": "ACCOUNT_ID",
"mimetype": "image/jpeg",
"flags": 6,
"filename": "image (1).jpeg",
"location": "/ACCOUNT_ID/MEDIA_ID_1.jpeg",
"width": 1400,
"height": 987,
"metadata": "{\"dominant\":{\"r\":24,\"g\":40,\"b\":24},\"resolutionMode\":1}",
"updatedAt": 1774752646,
"createdAt": 1774752645,
"variants": [
{
"id": "VARIANT_ID_1",
"type": 1,
"status": 1,
"mimetype": "image/jpeg",
"flags": 0,
"filename": "image (1)_720.jpeg",
"location": "/ACCOUNT_ID/VARIANT_ID_1.jpeg",
"width": 1022,
"height": 720,
"metadata": "{\"resolutionMode\":1}",
"updatedAt": 1774752646,
"locations": [
{
"locationId": "1",
"location": "https://cdn3.fansly.com/ACCOUNT_ID/VARIANT_ID_1.jpeg?..."
}
]
}
],
"variantHash": {},
"locations": [
{
"locationId": "1",
"location": "https://cdn3.fansly.com/ACCOUNT_ID/MEDIA_ID_1.jpeg?..."
}
]
}
]
}
}
}
},
"timestamp": "2026-03-29T03:39:41.957Z"
}Response Body
| Field | Type | Description |
|---|---|---|
statusCode | number | The HTTP status code of the response (e.g., 200) |
message | string | A human-readable message about the result |
data | object | The main response payload |
├─ status_code | number | The internal status code of the Fansly operation |
└─ data | object | Nested data container |
└─ response | object | Container for albums and aggregated metadata |
├─ albums | array | A list of album objects representing vault folders |
│ ├─ id | string | Unique identifier for the album |
│ ├─ accountId | string | The ID of the account owning the album |
│ ├─ pos | number | The position index for sorting |
│ ├─ title | string | The name of the album (can be null for default albums) |
│ ├─ description | string | An optional description for the album |
│ ├─ type | number | The type of the album (e.g., 38000 = All, 1000 = Posts, 5000 = Messages) |
│ ├─ status | number | The visibility/availability status |
│ ├─ itemCount | number | The number of media items inside the album |
│ ├─ lastItemId | string | The ID of the most recent item added |
│ ├─ version | number | Internal data versioning |
│ └─ createdAt | number | Unix timestamp (in milliseconds) of when the album was created |
└─ aggregationData | object | Contains aggregated relational data for last items |
└─ media | array | Details for media references like lastItemId |
├─ id | string | The unique identifier of the media file |
├─ type | number | The media type classification |
├─ mimetype | string | The MIME type (e.g., image/jpeg, video/mp4) |
├─ filename | string | The original uploaded filename |
├─ width | number | Media resolution width |
├─ height | number | Media resolution height |
├─ variants | array | Downscaled versions of the media (360p, 480p, 720p, etc.) |
└─ locations | array | Pre-signed CDN URLs for access (with signatures) |
timestamp | string | The ISO 8601 timestamp of when the response was generated |