onlyfans.com/<handle>/c<code>): each one counts the clicks and subscribers it brings. Trial links also give new fans a free trial. OnlyX reads every link from OnlyFans about once an hour while the creator is connected, lets you record what each promotion cost and where it ran, and works out earnings, profit and ROI per link.
Scopes: links:read to list and read; links:write to update and create.
List links
GET /v1/creators/{creatorId}/tracking-links returns the creator’s links, most clicked first, as a page (limit 1 to 100, default 25, and cursor; see Pagination). Add includeArchived=true to include links you archived.
Response 200
What the numbers mean
From OnlyFans
From your team (set with
PATCH)
Computed by OnlyX
Any metric whose inputs are missing is
null: for example ROI is null until you enter a cost. Never add link earnings together to get the creator’s revenue: a fan who came through two links counts in both, and earnings include spend outside the campaign. Use revenue stats for totals.
One link with its daily history
GET /v1/creators/{creatorId}/tracking-links/{linkId}?days=30 returns the same fields plus daily for the last days days (1 to 365, default 90). A link that belongs to another creator is 404 NOT_FOUND, even in your own workspace.
clicks and subscribers are running totals at the end of each day OnlyX read the link (day is a UTC date); the ...Delta fields are that day’s change.
Record cost and source
PATCH /v1/creators/{creatorId}/tracking-links/{linkId} changes only what you send. Send null to clear costCents, source or note. This only changes OnlyX; nothing on OnlyFans changes, and fields OnlyFans owns (name, code, counts) cannot be sent (400 VALIDATION_ERROR). The answer is the updated link. Send an Idempotency-Key header to make retries safe.
Create a link
POST /v1/creators/{creatorId}/tracking-links creates a real link on the creator’s OnlyFans account. It needs an Idempotency-Key header, and the creator must be connected.
Creating takes a little while, so the API answers
202 at once with a creationId. Poll GET /v1/creators/{creatorId}/tracking-links/creations/{creationId} every 5 seconds or slower:
More codes may be added; handle unknown ones like
CREATION_FAILED.
Response 202
Creation status (completed)
Creation status (failed)
creationId that was not issued for this creator) the answer is 404 NOT_FOUND: look for the link in the list instead.
Freshness
Clicks and subscribers come from OnlyFans about once an hour while the creator is connected (seelastSeenAt). Earnings update as fans spend. There is no need to poll the list more often than every few minutes.
From your AI assistant
With the MCP server connected: “Which of Mia’s tracking links had the best ROI this month? Set the cost of the Reddit link to $250.” useslist_tracking_links and update_tracking_link. Creating a link (create_tracking_link) creates it on the live OnlyFans account, so the assistant asks you to confirm first.
Related
- Pull stats: revenue totals.
- Fans: the fans behind the numbers.
- Rate limits: link creation limits.