OnlyFans API

Smart Links V2

Attribute OnlyFans clicks, fans, revenue, replies, traffic sources, ad spend, pixel events, and postbacks from one Smart Links workspace.

Overview

A Smart Link is a tracking URL that redirects a visitor to an OnlyFans tracking link or free-trial link. The redirect records the visit, preserves campaign identifiers, and connects later subscriptions and conversions to the click that produced them.

https://trk.of-traffic.com/go/{SMART_LINK_ID}

For each new visit, Smart Links can record:

  • A generated click_id
  • Your own external click ID
  • Meta, Google, TikTok, and Snapchat click IDs
  • UTM and affiliate parameters
  • Referrer, country, city, device, browser, and bot status
  • The matched traffic source and pre-lander

After the visitor subscribes, Smart Links records subscription, payment, and reply conversions against the attributed click. It can also send those events to tracking pixels and custom postbacks.

Smart Links V2 organizes analytics and setup into these pages:

PagePurpose
DashboardTeam-wide revenue, cost, ROAS, ARPS, conversion, audience, health, and cohort reporting
LinksCreate, edit, tag, share, export, and inspect individual Smart Links
Traffic SourcesMatch visits to channels with rules, record daily spend, and generate source-tagged URLs
RecordsSearch team-wide fan, visit, and conversion rows
Tracking PixelsSend server-side events to Meta, TikTok, Snapchat, and CreatorTraffic
Custom PostbacksSend configurable GET or POST requests for conversion events
Pre-landersBuild and publish tracked landing pages without hosting them yourself
Ad SpendSync Meta campaign spend and assign campaigns to traffic sources
FeedbackTell the team what you want built next in Smart Links

Open Smart Links → Links, then click Create Smart Link.

  1. Select the connected OnlyFans Account.
  2. Enter a Smart Link Name.
  3. Select an Offer Type:
    • Tracking Link works with free or paid creator accounts.
    • Free Trial requires a paid creator account. Set the trial length from 1 to 360 days.
  4. Optionally attach one or more Tracking Pixels.
  5. Optionally select an OnlyFans list for new subscribers.
  6. Optionally configure Auto-Fill Fan Notes.

The account and offer type cannot be changed after creation. You can edit the name, pixel connections, subscriber list, fan note template, and free-trial duration later.

Changing a Free Trial link's duration regenerates its inventory. New visitors receive the updated duration after the new pool is ready. Links already opened by fans keep their original duration.

Build the destination URL

Start with the URL shown on the Links page:

https://trk.of-traffic.com/go/{SMART_LINK_ID}

Append the identifiers and campaign fields your traffic source provides:

https://trk.of-traffic.com/go/{SMART_LINK_ID}?ecid={CLICK_ID}&utm_source=meta&utm_campaign={CAMPAIGN_ID}&utm_content={AD_ID}

Supported tracking parameters

ParameterStored asTypical use
ecidExternal Click IDTracker or ad-platform identifier you want returned in reports and postbacks
fbclidMeta click IDMeta click matching
gclidGoogle click IDGoogle Ads click matching
gbraidGoogle GBRAIDGoogle iOS web-to-app attribution
wbraidGoogle WBRAIDGoogle iOS app-to-web attribution
ttclidTikTok click IDTikTok Events API matching
sccid or ScCidSnapchat click IDSnapchat Conversions API matching
utm_sourceUTM sourceChannel reporting and traffic-source rules
utm_mediumUTM mediumDashboard breakdowns
utm_campaignUTM campaignDashboard breakdowns and A/B comparison
utm_contentUTM contentCreative reporting and A/B comparison
utm_termUTM termKeyword or audience reporting
affS1 through affS5Affiliate sub-parametersAffiliate and tracker metadata
srcTraffic-source signalExplicitly match a V2 traffic source
Any custom parameterLanding URL query valueCustom traffic-source matching and fan note variables

Use one ? before the first parameter and & before each additional parameter.

Click and subscription attribution

Smart Links uses a first-party visitor cookie and a click fingerprint built from the Smart Link, request, external click ID, ad click IDs, and pre-lander. A repeated visit from the same first-party visitor with the same fingerprint reuses the click row and increments its gross-click count.

The subscription attribution window is 6 hours from the click. When OnlyFans confirms a subscription against one of the link's inventory items, Smart Links claims an eligible click from that window and creates a new_subscriber conversion.

Once a fan is attributed, later payments and inbound messages can create additional conversions on that Smart Link. The link's fan record accumulates net revenue, tips, and reply counts.

Bots and duplicate visits remain available in Records → Visits for investigation. Dashboard totals exclude them.

If inventory generation is failing because an account session expired, the Links page shows a reauthentication warning. Until the account is reconnected, visitors may be sent to the creator's profile fallback instead of a generated inventory link.

Traffic sources

Traffic sources let several channels use the same Smart Link while keeping their clicks, revenue, pixel events, postbacks, and spend separated.

Open Smart Links → Traffic Sources, then click Add Traffic Source. Choose a type:

  • Paid for advertising channels
  • Organic for posts, stories, and bio links
  • Affiliate for partners or agencies
  • Other for anything else

You can start from a Meta, TikTok, X, Reddit, Snapchat, YouTube, Telegram, or Google Ads template, or define a source manually.

Matching rules

Every traffic source needs at least one rule. A rule contains a signal, operator, and value.

SignalReads from
srcThe src query parameter
affaffS1 through affS5, checked in slot order
utm_sourceThe utm_source query parameter
paramA custom query parameter you name
referrerThe referring host

Operators are equals, contains, starts with, and ends with. Matching is case-insensitive. Referrer rules compare normalized host names.

Signals are checked in this order:

  1. src
  2. affS1 through affS5
  3. utm_source
  4. Custom query parameters
  5. Referrer

An exact rule wins before pattern rules within the same signal. If no rule matches, the visit appears as Unattributed.

Generate a source-tagged URL

On a traffic source row, click Generate Smart Link URL and select a Smart Link. The builder adds a query parameter that resolves back to that source.

Referrer-only sources cannot generate a tagged URL. Add a src, aff, utm_source, or custom parameter rule if you need one.

Deleting a traffic source stops future matches. Historical clicks and reports keep the archived source name.

Spend, cost, and ROAS

Open a traffic source's Daily Spend action to enter what you spent. Pick a single day, or a date range and one total: the total is split evenly across the days in the range, with the rounding remainder on the last day. Saving replaces any manual amount already on those days.

The dashboard apportions a traffic source's daily spend across Smart Links by each link's share of non-bot, non-duplicate clicks from that source. A Smart Link with no source-matched clicks in the selected range falls back to the manual cost set on the link itself.

Edit the Cost cell on the Links page. Three modes are available:

ModeValue you enter
Per SubCost of each subscriber the link produces
Per PromoOne flat total for the link
Per ClickCost of each click

Only Per Sub is scoped to the selected date range, as cost per sub multiplied by the subscribers gained in range. Per Promo and Per Click resolve to a flat lifetime total. Manual cost is ignored for any link a traffic source claimed in range, and while a traffic-source filter is applied.

Sync Meta Ads spend

Open Smart Links → Ad Spend to connect Meta ad accounts.

  1. Create or select a Meta system user.
  2. Assign the ad accounts you want to track.
  3. Generate a non-expiring token with ads_read.
  4. Connect one or more USD ad accounts.
  5. Assign each discovered Meta campaign to a traffic source.

The sync writes daily campaign spend into the same traffic-source cost records used by manual entries. Neither side overwrites the other: a manual save skips days already synced from Meta and reports how many it left untouched, and the sync skips days entered manually. Whichever writes a date first keeps it.

Meta spend sync supports USD ad accounts. The dashboard stores and renders traffic-source costs as USD without currency conversion.

Dashboard and records

The team Dashboard defaults to the last 30 days and net revenue. You can filter by date, Smart Link, traffic source, and net or gross revenue. Dashboard date ranges are capped at 92 days.

The team dashboard has four sections. Individual Smart Link performance adds a fifth section:

SectionIncludes
OverviewRevenue, cost, ROAS, ARPS, cost per sub, conversion rates, conversion funnel, subscription mix, trends, traffic sources, devices, and links
AudienceSubscribe cohorts and fan reply rates
CompareRanked breakdowns and A/B comparison by UTM or affiliate values
HealthChargebacks and pixel delivery
Time-to-ProfitPer-link only: cumulative revenue per fan and profit day

Click a Smart Link to open its per-link Performance view. Its Clicks and Conversions tabs provide the detailed link-specific reports.

The team-wide Records section contains:

  • Fans: one row per fan and Smart Link, with lifetime revenue and tips on that link. Filter by creator, subscription (new or previously subscribed), replies (replied, 3+ replies, never replied), and subscription pricing (free promotion, discounted, regular).
  • Visits: every click row, including bot visits excluded from dashboard totals. Filter by country, device, and fraud status.
  • Conversions: every subscription, transaction, and message conversion on the date it occurred. Filter by conversion type, fan, click ID, external click ID, and country.

Share reports

A Smart Link or a traffic source can be published as a read-only page at https://app.onlyfansapi.com/share/{TOKEN}, which opens without an OnlyFans API account.

For a Smart Link, use the share action in the header of its Performance, Clicks, or Conversions page. Revenue visible and revenue hidden are separate shares, each with its own URL and expiry.

For a traffic source, click Share Links on its row. Three fixed variants are available:

VariantShows
Revenue hiddenClicks and subscribers only
Revenue visibleAdds revenue and spenders
Revenue with chargebacksAdds chargeback totals on top of revenue

An expired share keeps its URL. Clearing or extending the expiry brings the same page back.

Pre-landers

Smart Links V2 includes hosted pre-landers. Open Smart Links → Pre-landers and click New page.

Choose a public slug, a template, and one or more creator accounts. The page is published at https://trk.of-traffic.com/p/{SLUG}. New pages start as drafts. Use the editor to change copy, images, creator order, and template-specific settings, then publish the page.

Each row on the Pre-landers page can copy the public URL, copy it with UTM placeholders (?utm_source={source}&utm_medium={medium}&utm_campaign={campaign}&ecid={clickid}), duplicate the page, or delete it.

Template groupAvailable layouts
Single creatorProfile card and age gate (dark or light), gallery tease, gallery hero, feed tease, DM chat tease, link in bio, and live now
RosterQuiz and swipe deck, search directory, and local map

Published pages report views, CTA clicks, click-through rate, subscribers, and net revenue. Each CTA sends the visitor through the selected creator's Smart Link and stamps the visit with the pre-lander's ID.

Pre-landers forward these values into the Smart Link redirect:

  • ecid
  • fbclid, gclid, gbraid, wbraid, ttclid, and Snapchat sccid or ScCid
  • utm_source, utm_medium, utm_campaign, utm_content, and utm_term
  • affS1 through affS5

src and arbitrary custom parameters are not forwarded by built-in pre-landers. Use utm_source or an affiliate slot when a traffic-source rule must survive the pre-lander hop.

Tracking pixels

Open Smart Links → Tracking Pixels and click Add Pixel. Supported connections are Meta Ads, TikTok Ads, Snapchat Ads, and CreatorTraffic.

Every pixel can:

  • Attach to one or more Smart Links
  • Fire for all traffic sources or only selected traffic sources
  • Store delivery logs for inspection

Meta, TikTok, and Snapchat pixels can also map each Smart Link event to a standard event, custom event, or no event, and can send test events. CreatorTraffic has a fixed new-subscriber conversion and does not support test events.

Available Smart Link pixel triggers are:

TriggerWhen it fires
ClickA visitor opens the Smart Link
New SubscriberA fan subscribes through the Smart Link
First PurchaseThe first transaction on the link other than the initial new-subscription payment. A rebill can be first.
Repeat PurchaseOther transaction events, including the initial new-subscription payment and transactions after First Purchase
Message Received from FanAn attributed fan sends an inbound message
Fan Sent 1st MessageSent once when the attributed fan sends the first inbound message
Fan Sent 3+ MessagesSent once when the attributed fan sends the third inbound message

If a pixel is scoped to specific traffic sources, unmatched visits do not reach it. A pixel with All traffic sources receives events from matched and unmatched visits on its attached links.

Platform-specific setup:

Custom Postbacks

Open Smart Links → Custom Postbacks to send conversions to a tracker, webhook, or internal endpoint.

A postback supports:

  • GET or POST
  • A templated URL
  • A templated POST body
  • Custom request headers
  • A test request before live traffic uses it

Scopes are:

  • Global
  • Specific Smart Links
  • Specific Traffic Sources

Conversion types are:

Conversion typeSlugWhen it fires
New subscribernew_subscriberA fan subscribes through the Smart Link, once per fan and link
New transactionnew_transactionAn attributed fan makes a payment
Message receivedmessage_receivedAn attributed fan sends an inbound message
Fan sent 1 messagefan_sent_1_messageThe attributed fan reaches one inbound message
Fan sent 3 messagesfan_sent_3_messagesThe attributed fan reaches three inbound messages

Available postback variables

Variables work in the URL, POST body, and custom header values.

GroupVariables
Creator{ofapi_account_id}, {creator_onlyfans_id}, {creator_onlyfans_username}, {creator_onlyfans_name}
Smart Link{smart_link_id}, {smart_link_name}
Conversion{conversion_type}, {click_id}, {external_click_id}, {conversion_at}, {amount_gross}, {amount_net}
Attribution{traffic_source}
Ad click IDs{fbclid}, {gclid}, {gbraid}, {wbraid}, {ttclid}, {sccid}
Fan{fan_onlyfans_id}, {fan_onlyfans_username}, {fan_onlyfans_name}
Transaction{transaction_type}, {transaction_description}, {transaction_status}

{traffic_source} is empty when no traffic-source rule matched. Transaction variables are empty for non-transaction conversions.

For a tracker integration example, see Connect Keitaro to Smart Links.

Auto-fill OnlyFans fan data

Add new subscribers to a list

Choose Add New Subscribers to List when creating or editing a Smart Link. When a fan subscribes through that link, Smart Links adds them to the selected OnlyFans list.

Auto-fill fan notes

Use Auto-Fill Fan Notes to append click data to the subscriber's existing OnlyFans notes. Existing text is preserved.

Built-in variables include {country}, {country_code}, {city}, {zip}, {aff_s1} through {aff_s5}, and {capital_ai_summary}. Any other {parameter} reads the parameter with that name from the Smart Link URL.

{capital_ai_summary} requires a CapitalAI-marked click with a numeric conversation ID. See Connect CapitalAI to Smart Links.

Troubleshooting

ProblemCheck
Clicks appear under UnattributedConfirm the URL carries a value that matches a traffic-source rule. Use Generate Smart Link URL to avoid rule-precedence mistakes.
Source spend or ROAS is blankAdd daily spend, or connect Meta Ads and assign its campaigns to a traffic source.
Pixel receives traffic from the wrong channelEdit the pixel and select Specific traffic sources. Also confirm the pixel is attached to the intended Smart Links.
Pixel receives no unmatched trafficA source-scoped pixel only receives visits stamped with one of its selected sources. Choose All traffic sources if it should receive unmatched visits.
A pre-lander loses a source tagBuilt-in pre-landers do not forward src or arbitrary custom parameters. Use utm_source or affS1 through affS5.
Subscriber conversion is missingConfirm the subscription happened within 6 hours of the click and reconnect any account shown in the Links reauthentication warning.
A deleted source disappeared from setup but remains in reportsExpected. Archiving stops future matches while preserving historical attribution.

API access

Smart Links V2 setup and team-wide dashboard pages are dashboard features. The public API continues to expose link management and per-link reports:

On this page