OnlyFans API
Tracking links

List Tracking Links

List all tracking links for the account and revenue data

GET
/api/{account}/tracking-links
AuthorizationBearer <token>

You can retrieve your token by visiting the OnlyFansAPI Console and clicking API Keys -> Create API Key.

In: header

Path Parameters

accountstring

The Account ID

Query Parameters

startDate?string

The start date for Tracking Links. Keep empty to get all.

endDate?string

The end date for Tracking Links. Keep empty to get all.

with_deleted?boolean

Whether or not to include deleted tracking links in the response. Default false

sortby?string

Sort by subscriber count (claims), or creation date

Value in"claims" | "created_date"
sort?string

Sort the results. Default desc

Value in"desc" | "asc"
limit?integer

The number of tracking links to return. Default 3

offset?integer

The offset used for pagination. Default 0

synchronous?boolean

Wait for the revenue data to finish processing, instead of processing in the background. Will result in longer response times, use with caution. Default false

Response Body

curl -X GET "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/tracking-links?startDate=2025-01-01+00%3A00%3A00%2C+-30days&endDate=2025-01-01+00%3A00%3A00%2C+now&sortby=claims&sort=desc&limit=3"
fetch("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/tracking-links?startDate=2025-01-01+00%3A00%3A00%2C+-30days&endDate=2025-01-01+00%3A00%3A00%2C+now&sortby=claims&sort=desc&limit=3")
package main

import (
  "fmt"
  "net/http"
  "io/ioutil"
)

func main() {
  url := "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/tracking-links?startDate=2025-01-01+00%3A00%3A00%2C+-30days&endDate=2025-01-01+00%3A00%3A00%2C+now&sortby=claims&sort=desc&limit=3"

  req, _ := http.NewRequest("GET", url, nil)
  
  res, _ := http.DefaultClient.Do(req)
  defer res.Body.Close()
  body, _ := ioutil.ReadAll(res.Body)

  fmt.Println(res)
  fmt.Println(string(body))
}
import requests

url = "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/tracking-links?startDate=2025-01-01+00%3A00%3A00%2C+-30days&endDate=2025-01-01+00%3A00%3A00%2C+now&sortby=claims&sort=desc&limit=3"

response = requests.request("GET", url)

print(response.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;

HttpClient client = HttpClient.newBuilder()
  .connectTimeout(Duration.ofSeconds(10))
  .build();

HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
  .uri(URI.create("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/tracking-links?startDate=2025-01-01+00%3A00%3A00%2C+-30days&endDate=2025-01-01+00%3A00%3A00%2C+now&sortby=claims&sort=desc&limit=3"))
  .GET()
  .build();

try {
  HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
  System.out.println("Status code: " + response.statusCode());
  System.out.println("Response body: " + response.body());
} catch (Exception e) {
  e.printStackTrace();
}
using System;
using System.Net.Http;
using System.Text;

var client = new HttpClient();
var response = await client.GetAsync("https://app.onlyfansapi.com/api/acct_XXXXXXXXXXXXXXX/tracking-links?startDate=2025-01-01+00%3A00%3A00%2C+-30days&endDate=2025-01-01+00%3A00%3A00%2C+now&sortby=claims&sort=desc&limit=3");
var responseBody = await response.Content.ReadAsStringAsync();
{
  "data": {
    "list": [
      {
        "id": 1521764,
        "campaignCode": 68,
        "campaignName": "Example Campaign - IG Bio SFS",
        "campaignUrl": "https://onlyfans.com/USERNAME/c68",
        "subscribersCount": 0,
        "clicksCount": 0,
        "createdAt": "2025-02-04T12:44:54+00:00",
        "endDate": null,
        "revenue": {
          "total": 0,
          "revenuePerSubscriber": 0,
          "revenuePerClick": 0,
          "calculatedAt": "2025-02-10T12:45:03+00:00",
          "isLoading": false
        },
        "links": {
          "related": {
            "subscribers": "https://app.onlyfansapi.com/api/acct_XXXXXXX/tracking-links/1521764/subscribers"
          }
        }
      },
      {
        "id": 1485830,
        "campaignCode": 67,
        "campaignName": "Example Campaign - Reddit",
        "campaignUrl": "https://onlyfans.com/USERNAME/c67",
        "subscribersCount": 8,
        "clicksCount": 298,
        "createdAt": "2025-01-19T20:53:39+00:00",
        "endDate": null,
        "revenue": {
          "total": 103.92,
          "revenuePerSubscriber": 12.99,
          "revenuePerClick": 0.3487248322,
          "calculatedAt": "2025-02-10T12:45:03+00:00",
          "isLoading": false
        },
        "links": {
          "related": {
            "subscribers": "https://app.onlyfansapi.com/api/acct_XXXXXXX/tracking-links/1485830/subscribers"
          }
        }
      },
      {
        "id": 1478101,
        "campaignCode": 66,
        "campaignName": "Example Campaign - Revenue isn't calculated yet",
        "campaignUrl": "https://onlyfans.com/USERNAME/c66",
        "subscribersCount": 1,
        "clicksCount": 28,
        "createdAt": "2025-01-15T20:19:43+00:00",
        "endDate": null,
        "revenue": {
          "total": null,
          "revenuePerSubscriber": null,
          "revenuePerClick": null,
          "calculatedAt": null,
          "isLoading": true
        },
        "links": {
          "related": {
            "subscribers": "https://app.onlyfansapi.com/api/acct_XXXXXXX/tracking-links/1478101/subscribers"
          }
        }
      }
    ],
    "hasMore": true
  },
  "_pagination": {
    "next_page": "https://app.onlyfansapi.com/api/acct_XXXXXXXXXXX/tracking-links?offset=3&limit=3"
  },
  "_meta": {
    "_credits": {
      "used": 1,
      "balance": 9529,
      "note": "Always"
    },
    "_cache": {
      "is_cached": false,
      "note": "Cache disabled for this endpoint"
    },
    "_rate_limits": {
      "limit_minute": 1000,
      "limit_day": 50000,
      "remaining_minute": 999,
      "remaining_day": 49999
    }
  }
}