OnlyFans Profile Scraper
Pricing
from $1.50 / 1,000 profile scrapeds
OnlyFans Profile Scraper
Scrape public OnlyFans creator profiles at scale. Extract bio, stats, pricing, engagement metrics, social links, and media counts - all without a browser or login.
Pricing
from $1.50 / 1,000 profile scrapeds
Rating
0.0
(0)
Developer
Paweł
Maintained by CommunityActor stats
1
Bookmarked
14
Total users
0
Monthly active users
16 days ago
Last modified
Categories
Share
Scrape public OnlyFans creator profiles at scale. Extract bio, stats, pricing, promotions, subscription bundles, engagement metrics, social links, and media counts — all without a browser or login.
What data can you extract?
| Category | Fields |
|---|---|
| Profile info | name, username, bio (HTML & plain text), avatar, header image, location, website, wishlist, join date, last seen |
| Content stats | posts, photos, videos, audios, total media, archived posts, finished streams, pinned posts |
| Engagement | subscribers count, favorites, favorited count, follows |
| Subscription pricing | regular price, current price (after promos), subscription bundles with discounts |
| Promotions | active limited offers with price, message, claim count, start/finish dates |
| Tips & calls | tips enabled/min/max, call price |
| Account flags | verified, performer, adult content, active, restricted, paywall |
| Streaming | live stream status, scheduled streams, stories |
| Social links | Twitter/X username, Spotify, Spring, Telegram connections |
Over 65 data fields per profile.
How it works
Uses the OnlyFans public API directly (no browser needed). Automatically fetches the latest signing rules to keep requests working even when OnlyFans updates their API. Just provide a list of usernames and get structured JSON data back.
Input
| Field | Type | Description |
|---|---|---|
usernames | String[] | Required. List of OnlyFans usernames to scrape (without the @ prefix). |
Input example
{"usernames": ["username1", "username2", "username3"]}
Output example
{"profileUrl": "https://onlyfans.com/onlyfans","scrapedAt": "2026-03-02T08:04:58.762Z","id": 133424107,"username": "username","name": "Display Name","about": "<p>Bio with <strong>HTML</strong> formatting</p>","rawAbout": "Bio in plain text","avatar": "https://public.onlyfans.com/files/.../avatar.jpg","location": null,"joinDate": "2021-04-10T00:00:00+00:00","lastSeen": "2026-03-02T08:03:42+00:00","isVerified": true,"isPerformer": true,"postsCount": 978,"photosCount": 1571,"videosCount": 400,"mediasCount": 1971,"finishedStreamsCount": 232,"favoritedCount": 699779,"subscribePrice": 15,"currentSubscribePrice": null,"subscriptionBundles": [{ "id": 4033317, "discount": 20, "duration": 3, "price": 36 },{ "id": 4033321, "discount": 25, "duration": 6, "price": 67.5 },{ "id": 4033326, "discount": 45, "duration": 12, "price": 99 }],"promotions": [{"id": 57795436,"message": "70% OFF for the first 10 subscribers!","price": 4.5,"type": "all","canClaim": true,"claimsCount": 1,"subscribeCounts": 2,"createdAt": "2026-03-02T07:17:11+00:00","finishedAt": "2026-03-10T07:17:11+00:00","isFinished": false}],"tipsEnabled": false,"tipsMin": 5,"tipsMax": 200,"hasStories": true,"isTwitterConnected": false,"isSpotifyConnected": false}
Failed usernames
The main dataset contains successfully scraped profiles only — you are never charged for a username that could not be scraped. If a username does not exist or a request fails, the failure is recorded separately:
- in the
errorsdataset (one record per failure:username,profileUrl,scrapedAt,error), - in the run's key-value store under
FAILED_USERNAMES, - and in the run log, as a final summary line (
N profile(s) succeeded, M failed).
Subscription bundles
The subscriptionBundles array contains multi-month discount packages offered by the creator:
| Field | Description |
|---|---|
id | Bundle ID |
discount | Discount percentage (e.g. 20 = 20% off) |
duration | Bundle duration in months |
price | Total price for the bundle in USD |
Promotions
The promotions array contains active limited-time offers:
| Field | Description |
|---|---|
id | Promotion ID |
message | Promotional message displayed on the profile |
price | Promotional subscription price in USD |
type | Promotion type (e.g. "all" for all visitors) |
canClaim | Whether the promotion can still be claimed |
claimsCount | Number of claims so far |
subscribeCounts | Max number of subscribers for this offer |
createdAt | When the promotion started (ISO timestamp) |
finishedAt | When the promotion ends (ISO timestamp) |
isFinished | Whether the promotion has ended |