Smart Links

List Smart Link Fans

Changed on

Query attributed Smart Link fans with aggregate fan metrics and subscriber attribution metadata

get/api/smart-links/{smart_link_id}/fans

Request

  • Base URL
    https://app.onlyfansapi.com
  • URL
    https://app.onlyfansapi.com/api/smart-links/{smart_link_id}/fans
  • Auth
    HTTP bearer

Query parameters

limitinteger

Rows per page. Default 100

Example:100
offsetinteger

Offset for pagination. Default 0

sort'revenue_net' | '-revenue_net' | 'tips_net' | '-tips_net' | 'messages_sent_by_fan' | '-messages_sent_by_fan' | 'converted_at' | '-converted_at'

Optional sort field. Default -revenue_net

Example:-revenue_net
has_messagesboolean

Optional - Filter to fans with or without fan-sent messages

Example:true
min_messages_sent_by_faninteger

Optional minimum number of messages sent by fan

Example:3
min_revenue_netnumber

Optional minimum net revenue

Example:25
min_tips_netnumber

Optional minimum net tips

Example:10
previously_subscribedboolean

Optional - Filter to returning subscribers (fans previously subscribed before this subscription)

Example:true
subscribed_using_promoboolean

Optional - Filter to fans who subscribed via a promotion/offer

Example:true

Response

Success

Example response

{
  "data": {
    "summary": {
      "fans_total": 3,
      "revenue_net_total": 145,
      "tips_net_total": 45,
      "fans_with_1_plus_messages_total": 2,
      "fans_with_3_plus_messages_total": 1
    },
    "rows": [
      {
        "fan_id": 101,
        "onlyfans_id": "100000001",
        "username": "demo_fan_a",
        "name": "Demo Fan A",
        "avatar_url": "https://cdn.example.com/avatar-a.jpg",
        "revenue_net": 90,
        "tips_net": 30,
        "messages_sent_by_fan": 4,
        "converted_at": "2026-01-12T12:00:00+00:00",
        "conversion_id": 9001,
        "click_id": "01JTESTCLICK000000000000001",
        "external_click_id": "ext-a",
        "subscription_insights": {
          "has_subscription_data": true,
          "previously_subscribed": true,
          "subscribed_using_promo": true,
          "current_subscription_from_smart_link": true,
          "current_subscription": {
            "type": "promo",
            "action": "return",
            "price": 0,
            "regular_price": 15,
            "is_free": true
          }
        }
      },
      {
        "fan_id": 102,
        "onlyfans_id": "100000002",
        "username": "demo_fan_b",
        "name": "Demo Fan B",
        "avatar_url": "https://cdn.example.com/avatar-b.jpg",
        "revenue_net": 40,
        "tips_net": 10,
        "messages_sent_by_fan": 2,
        "converted_at": "2026-01-10T10:00:00+00:00",
        "conversion_id": 9002,
        "click_id": "01JTESTCLICK000000000000002",
        "external_click_id": "ext-b",
        "subscription_insights": {
          "has_subscription_data": true,
          "previously_subscribed": false,
          "subscribed_using_promo": false,
          "current_subscription_from_smart_link": true,
          "current_subscription": {
            "type": "regular",
            "action": "subscribe",
            "price": 15,
            "regular_price": 15,
            "is_free": false
          }
        }
      },
      {
        "fan_id": 103,
        "onlyfans_id": "100000003",
        "username": "demo_fan_c",
        "name": "Demo Fan C",
        "avatar_url": null,
        "revenue_net": 15,
        "tips_net": 5,
        "messages_sent_by_fan": 0,
        "converted_at": null,
        "conversion_id": null,
        "click_id": null,
        "external_click_id": null,
        "subscription_insights": {
          "has_subscription_data": false,
          "previously_subscribed": null,
          "subscribed_using_promo": null,
          "current_subscription_from_smart_link": null,
          "current_subscription": {
            "type": null,
            "action": null,
            "price": null,
            "regular_price": null,
            "is_free": null
          }
        }
      }
    ],
    "filters": {
      "limit": 100,
      "offset": 0,
      "sort": "-revenue_net",
      "has_messages": null,
      "min_messages_sent_by_fan": null,
      "min_revenue_net": null,
      "min_tips_net": null,
      "previously_subscribed": null,
      "subscribed_using_promo": null
    }
  },
  "_meta": {
    "_credits": {
      "used": 0,
      "balance": 999999,
      "note": "Free endpoint"
    },
    "_cache": {
      "is_cached": false,
      "note": "Cache disabled for this endpoint"
    }
  }
}

Changes

    • info

      added the new optional query request parameter previously_subscribed

    • info

      added the new optional query request parameter subscribed_using_promo

    • info

      added the optional property // to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      added the optional property /// to the response with the status

    • info

      added the optional property // to the response with the status

    • info

      endpoint added