Webhooks are now available in the Fansly API Console! 🚀
Fansly API Logo

Profile Statistics


Get detailed analytics available for a profile, focusing on performance, audience behavior, and overall activity. It covers key engagement and traffic metrics such as media views, watch time, unique viewers, and profile visits, along with aggregated totals and time-based breakdowns. The data is designed to give clear insight into how users interact with content and how that behavior evolves over time, making it easier to identify trends, monitor growth, and build reporting or automation on top of reliable analytics.

  • Media Views
  • Average Media Engagement Time
  • Total Media Engagement Time
  • Unique Media Viewers
  • Profile Visits
  • Unique Profile Visitors
  • Media Traffic Sources
  • Profile Visits Sources
  • Top FYP Tags
  • Top Media (Last 30 Days)
https://v1.apifansly.com
GET
/api/fansly/{accountId}/analytics/profilestats

Get Started

All requests to the Fansly API require an API Key. See the Authentication page for details.

Path Parameters

accountId*
string
The internal ID of the connected Fansly account.

Query Parameters

You can specify a time range or period for the analytics data.

beforeDate ?
number
Unix timestamp (ms) marking the end of the time range to retrieve data for.
afterDate ?
number
Unix timestamp (ms) marking the start of the time range to retrieve data for.
period ?
number
The length of the data bucket in milliseconds. Defaults to daily if omitted. Use `86400000` for 1 day, or `3600000` for 1 hour. This dictates the granularity of the `datapoints` arrays returned.
year ?
number
Filter analytics to a specific year. default: 0
month ?
number
Filter analytics to a specific month (1-12). default: 0

curl -X GET "https://v1.apifansly.com/api/fansly/{accountId}/analytics/profilestats" \
  -H "x-api-key: YOUR_API_KEY"
fetch("https://v1.apifansly.com/api/fansly/{accountId}/analytics/profilestats", {
  method: "GET",
  headers: {
    "x-api-key": "YOUR_API_KEY"
  }
})
import requests

url = "https://v1.apifansly.com/api/fansly/{accountId}/analytics/profilestats"
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}/analytics/profilestats"))
        .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}/analytics/profilestats");
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}/analytics/profilestats"
    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))
}

Response

{
    "statusCode": 200,
    "message": "Success",
    "data": {
        "status_code": 200,
        "data": {
            "success": true,
            "response": {
                "dataset": {
                    "period": 86400000,
                    "dateBefore": 1772668800000,
                    "dateAfter": 1770076800000,
                    "datapointLimit": 100,
                    "datapoints": [
                        {
                            "timestamp": 1772668800000,
                            "stats": [
                                {
                                    "type": 1,
                                    "views": 1,
                                    "previewViews": 0,
                                    "interactionTime": 1507,
                                    "previewInteractionTime": 0,
                                    "uniqueViewers": 1,
                                    "previewUniqueViewers": 0,
                                    "videoViews": 0,
                                    "totalVideoPercentWatched": 0,
                                    "previewVideoViews": 0,
                                    "previewTotalVideoPercentWatched": 0
                                }
                            ]
                        }
                    ],
                    "topMediaOffers": [
                        {
                            "mediaOfferId": "XXxxxxxxxxxxxxxxxxxx",
                            "mediaOfferBundleId": "0",
                            "views": 1,
                            "previewViews": 0,
                            "interactionTime": 1507,
                            "previewInteractionTime": 0
                        }
                    ],
                    "topFypMediaOffers": [],
                    "topFypTags": [],
                    "profileDatapoints": [
                        {
                            "timestamp": 1772668800000,
                            "stats": [
                                {
                                    "type": 10000,
                                    "views": 2,
                                    "interactionTime": 11661,
                                    "uniqueViewers": 2
                                },
                                {
                                    "type": 10001,
                                    "views": 8,
                                    "interactionTime": 0,
                                    "uniqueViewers": 3
                                }
                            ]
                        },
                        {
                            "stats": [],
                            "timestamp": 1770249600000
                        }
                    ]
                },
                "aggregationData": {
                    "accountMedia": [
                        {
                            "id": "XXxxxxxxxxxxxxxxxxxx",
                            "accountId": "XXxxxxxxxxxxxxxxxxxx",
                            "mediaId": "XXxxxxxxxxxxxxxxxxxx",
                            "previewId": null,
                            "permissionFlags": 8,
                            "price": 0,
                            "createdAt": 1772754564,
                            "deletedAt": null,
                            "deleted": false,
                            "permissions": {
                                "permissionFlags": [
                                    {
                                        "id": "XXxxxxxxxxxxxxxxxxxx",
                                        "accountMediaId": "XXxxxxxxxxxxxxxxxxxx",
                                        "type": 0,
                                        "flags": 9,
                                        "price": 1000,
                                        "metadata": "{\"1\":\"{\\\"price\\\":1000}\"}",
                                        "validAfter": null,
                                        "validBefore": null,
                                        "verificationFlags": 9,
                                        "verificationMetadata": "{}"
                                    }
                                ],
                                "accountPermissionFlags": {
                                    "flags": 255,
                                    "metadata": "{}"
                                }
                            },
                            "bundles": [],
                            "likeCount": 0,
                            "whitelist": [
                                {
                                    "accountId": "XXxxxxxxxxxxxxxxxxxx",
                                    "permissionFlags": 0
                                }
                            ],
                            "media": {
                                "id": "XXxxxxxxxxxxxxxxxxxx",
                                "type": 1,
                                "status": 1,
                                "accountId": "XXxxxxxxxxxxxxxxxxxx",
                                "mimetype": "image/jpeg",
                                "flags": 134,
                                "filename": "[filename].jpeg",
                                "location": "/[accountId]/[mediaId].jpeg",
                                "width": 226,
                                "height": 225,
                                "metadata": "{\"dominant\":{\"r\":8,\"g\":8,\"b\":8},\"resolutionMode\":1}",
                                "updatedAt": 1770037715,
                                "createdAt": 1770037714,
                                "variants": [
                                    {
                                        "id": "XXxxxxxxxxxxxxxxxxxx",
                                        "type": 3,
                                        "status": 1,
                                        "mimetype": "image/jpeg",
                                        "flags": 0,
                                        "filename": "[filename]_blur.jpeg",
                                        "location": "/[accountId]/[variantId].jpeg",
                                        "width": 226,
                                        "height": 225,
                                        "metadata": "{\"resolutionMode\":1}",
                                        "updatedAt": 1770037715,
                                        "locations": [
                                            {
                                                "locationId": "1",
                                                "location": "https://cdn3.fansly.com/[signed-cdn-url]"
                                            }
                                        ]
                                    }
                                ],
                                "variantHash": {},
                                "locations": [
                                    {
                                        "locationId": "1",
                                        "location": "https://cdn3.fansly.com/[signed-cdn-url]"
                                    }
                                ]
                            },
                            "saleStats": {
                                "sales": 1,
                                "total": 800,
                                "pending": 0
                            },
                            "purchased": true,
                            "whitelisted": true,
                            "accountPermissionFlags": 255,
                            "access": true
                        }
                    ],
                    "accountMediaBundles": [],
                    "tags": [],
                    "creatorMediaOfferLocations": []
                }
            }
        }
    },
    "timestamp": "2026-03-18T03:30:44.048Z"
}

Response Fields

Media Engagement Time-Series

FieldTypeDescription
timestampnumberUnix timestamp (ms) marking the start of this datapoint's period
statsarrayArray of stat objects (views, interaction time, unique viewers) segmented by traffic source type

Calculating Average Engagement Time: To compute average engagement time per viewer, divide interactionTime by uniqueViewers. Interaction time is reported in milliseconds — divide by 1000 to convert to seconds.


Profile Visit Time-Series

FieldTypeDescription
timestampnumberUnix timestamp (ms) marking the start of this datapoint's period
statsarrayArray of stat objects (views, interaction time, unique viewers) segmented by traffic source type

Stat Type Reference

The type field in the arrays above identifies where traffic originated.

Type CodeSourceContext
1Direct / TimelineMedia viewed directly from the creator's timeline or post feed
10000Direct / TimelineProfile visited directly or from the timeline
10001External / OtherProfile visited from an external link, referral, or undifferentiated source

Top Components

FieldTypeDescription
dataset.topMediaOffersarrayTop-performing individual media offer items sorted by total views
dataset.topFypMediaOffersarrayTop media offers that received traffic from the For You Page (FYP)
dataset.topFypTagsarrayTop content tags that drove FYP discovery traffic
aggregationData.accountMediaarrayFull metadata (thumbnails, pricing, CDN URLs, permissions) for media referenced in the analytics results

On this page