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

Get Fan Earnings by Source

Get an overall breakdown of earnings from a specific fan, categorized by revenue source (e.g., subscriptions, tips, media).


Fetch a detailed breakdown of all earnings generated by a specific fan, separated by the specific monetary source type.

https://v1.apifansly.com
GET
/api/fansly/{account_id}/earnings/fans/{fan_id}/stats

Get Started

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

Path Parameters

curl -X GET "https://v1.apifansly.com/api/fansly/{account_id}/earnings/fans/{fan_id}/stats" \
  -H "x-api-key: YOUR_API_KEY"
fetch("https://v1.apifansly.com/api/fansly/{account_id}/earnings/fans/{fan_id}/stats", {
  method: "GET",
  headers: {
    "x-api-key": "YOUR_API_KEY"
  }
})
.then(response => response.json())
.then(data => console.log(data));
import requests

url = "https://v1.apifansly.com/api/fansly/{account_id}/earnings/fans/{fan_id}/stats"
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/{account_id}/earnings/fans/{fan_id}/stats"))
        .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/{account_id}/earnings/fans/{fan_id}/stats");
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/{account_id}/earnings/fans/{fan_id}/stats"
    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))
}

Parameters

account_id*
string
The unique identifier for your connected account, retrieved from your Dashboard.
fan_id*
string
The unique identifier for the specific fan.
before ?
integer
Filter earnings before a specific Unix timestamp in milliseconds.
after ?
integer
Filter earnings after a specific Unix timestamp in milliseconds.

Response

Revenue Source Types

The response breaks down the revenue into different sources based on the type field:

  • 15001: Subscriptions
  • 7101: Tips
  • 2110: Media (e.g., locked posts/messages)
{
    "statusCode": 200,
    "message": "Success",
    "data": {
        "status_code": 200,
        "data": {
            "success": true,
            "response": [
                {
                    "type": 7101,
                    "totalGross": 100,
                    "totalNet": 80,
                    "accountId": "xxxxxxxxxxxxxxxxxx",
                    "correlationAccountId": "xxxxxxxxxxxxxxxxxx",
                    "timestamp": 1773014400000
                },
                {
                    "type": 7101,
                    "totalGross": 100,
                    "totalNet": 80,
                    "accountId": "xxxxxxxxxxxxxxxxxx",
                    "correlationAccountId": "xxxxxxxxxxxxxxxxxx",
                    "timestamp": 1772928000000
                },
                {
                    "type": 2110,
                    "totalGross": 1000,
                    "totalNet": 800,
                    "accountId": "xxxxxxxxxxxxxxxxxx",
                    "correlationAccountId": "xxxxxxxxxxxxxxxxxx",
                    "timestamp": 1772668800000
                },
                {
                    "type": 7101,
                    "totalGross": 200,
                    "totalNet": 160,
                    "accountId": "xxxxxxxxxxxxxxxxxx",
                    "correlationAccountId": "xxxxxxxxxxxxxxxxxx",
                    "timestamp": 1772064000000
                },
                {
                    "type": 7101,
                    "totalGross": 100,
                    "totalNet": 80,
                    "accountId": "xxxxxxxxxxxxxxxxxx",
                    "correlationAccountId": "xxxxxxxxxxxxxxxxxx",
                    "timestamp": 1768953600000
                }
            ]
        }
    },
    "timestamp": "2026-03-16T20:51:27.825Z"
}

On this page