OnlyFans Profile Scraper
Pricing
from $3.00 / 1,000 scraped profiles
OnlyFans Profile Scraper
Scrape public OnlyFans profiles by URL or username. Get bio, subscriber and like counts, post and video counts, subscription price and social links. No login.
Pricing
from $3.00 / 1,000 scraped profiles
Rating
0.0
(0)
Developer
Harish Garg
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape public OnlyFans profiles in bulk from profile URLs or usernames. For each creator, get the name, bio, avatar and header images, subscriber count, like count, post, photo and video counts, subscription price and bundles, join date, last-seen time, location, website and social media links as clean, structured data.
Use it as an unofficial OnlyFans API for creator data. Run it in Apify Console with no code, call it from your own app with the Apify API, or ask an AI assistant such as Claude or ChatGPT to run it for you. Download the results as JSON, CSV, Excel, XML or HTML.
- ✅ No OnlyFans account and no login
- ✅ Mix profile URLs, usernames and
@usernamesin one list - ✅ Duplicates and invalid entries are removed automatically
- ✅ A run summary tells you which profiles failed and why
What is OnlyFans Profile Scraper?
OnlyFans Profile Scraper is a tool that collects the public profile data of OnlyFans creators. You give it a list of profiles, and it returns one row of data for each creator: the same information that any visitor sees on the profile page, but in a format that you can sort, filter and analyze.
Use it to check an OnlyFans subscriber count, compare creators by likes and post count, see what creators charge for a subscription, or find the Instagram, TikTok and X accounts that a creator links to.
What data can you scrape from OnlyFans?
| Data group | What you get |
|---|---|
| 👤 Profile | Username, display name, profile URL, user ID, bio, verified badge |
| 🖼️ Images | Avatar and header image URLs, with thumbnails and the header size |
| 📈 Audience stats | Subscriber count (when the creator shows it), like count |
| 🎬 Content stats | Number of posts, photos, videos, audios and media items, archived posts, date of the first post |
| 💲 Pricing | Monthly subscription price, subscription bundles with duration and discount, tip limits, call price |
| 🕒 Activity | Join date, last-seen time (when the creator shows it), live stream, scheduled stream and story flags |
| 🔗 Links | Website, wishlist, location, and Instagram, X (Twitter), TikTok, YouTube, Twitch, Snapchat, Facebook, Discord, Patreon, Amazon and Etsy links |
Use cases
- Influencer and creator research — Compare OnlyFans creators by subscribers, likes, post counts and price before you contact them.
- Agency and talent scouting — Check a list of creators every week and follow their growth over time.
- Pricing analysis — See what creators in a niche charge, and which bundles and discounts they offer.
- Social media mapping — Find the Instagram, TikTok, X and YouTube accounts that are linked to an OnlyFans profile.
- Lead lists and CRM enrichment — Add public OnlyFans stats and links to the creator records that you already have.
- Market research and data science — Collect creator data at scale for reports, dashboards and analysis.
How to scrape OnlyFans profiles
You can use OnlyFans Profile Scraper in three ways. All three give the same data.
- In Apify Console — no coding.
- With the Apify API — HTTP, JavaScript or Python.
- In an AI assistant — Claude, ChatGPT, Cursor and other MCP clients.
How to use OnlyFans Profile Scraper in Apify Console
-
Click Try for free and sign in to Apify. A free account is enough.
-
In Profile URLs or usernames, add one profile per line. For example:
https://onlyfans.com/onlyfansoftv@onlyfans -
Click Start.
-
When the run finishes, open the Output tab. View the profiles as a table, or export them as JSON, CSV, Excel, XML or HTML.
How to use the OnlyFans scraper API
Run the scraper and get the profiles from any programming language with the Apify API. Get your API token in Apify Console under Settings → API & Integrations, and replace <YOUR_API_TOKEN> in the examples below.
HTTP (cURL)
Run the scraper and get the profiles in one request:
curl -X POST "https://api.apify.com/v2/acts/hgservices~onlyfans-profile-scraper/run-sync-get-dataset-items?format=json" \-H "Authorization: Bearer <YOUR_API_TOKEN>" \-H "Content-Type: application/json" \-d '{ "profileUrls": ["https://onlyfans.com/onlyfans", "oftv"] }'
Change format=json to format=csv or format=xlsx to get a spreadsheet. This request waits up to 5 minutes for the run to finish. For long lists, start the run with POST https://api.apify.com/v2/acts/hgservices~onlyfans-profile-scraper/runs, and then get the items from the run's dataset when it finishes.
JavaScript / Node.js
Install the client with npm install apify-client:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });const run = await client.actor('hgservices/onlyfans-profile-scraper').call({profileUrls: ['https://onlyfans.com/onlyfans', 'oftv'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();for (const profile of items) {console.log(profile.username, profile.subscribersCount, profile.subscribePrice);}
Python
Install the client with pip install apify-client (version 3 or later). This example sorts the creators by likes:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("hgservices/onlyfans-profile-scraper").call(run_input={"profileUrls": ["https://onlyfans.com/onlyfans", "oftv"],})if run is None:raise RuntimeError("The run was not found.")profiles = list(client.dataset(run.default_dataset_id).iterate_items())profiles.sort(key=lambda p: p.get("favoritedCount") or 0, reverse=True)for profile in profiles:print(profile["username"], profile.get("favoritedCount"), profile.get("subscribePrice"))
How to use OnlyFans Profile Scraper in Claude, ChatGPT and other AI assistants
OnlyFans Profile Scraper works as a tool for AI assistants through the Apify MCP server. Your assistant runs the scraper, reads the profiles and uses them in its answer. You sign in to Apify the first time that you connect.
To give the assistant only this scraper, use this server URL:
https://mcp.apify.com?tools=hgservices/onlyfans-profile-scraper
To let the assistant find and run any Actor in Apify Store, use https://mcp.apify.com.
Claude (claude.ai and Claude Desktop)
- Open Settings → Connectors.
- Select Add → Add custom connector.
- Enter a name, for example
Apify, and paste the server URL. - Select Continue, then Add, and sign in to Apify.
Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com?tools=hgservices/onlyfans-profile-scraper"
ChatGPT
- Turn on Developer mode in ChatGPT.
- Go to Settings → Apps & Connectors → Create.
- Enter a name, paste the server URL as the MCP Server URL, and select OAuth authentication.
- Select Create, and sign in to Apify.
- In a new chat, select + → More, and add the connector.
Cursor, VS Code and other MCP clients
Add the server URL as a remote MCP server:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=hgservices/onlyfans-profile-scraper"}}}
Then ask in plain language. For example:
Use OnlyFans Profile Scraper to get the profiles onlyfans and oftv. Make a table of their subscribers, likes, post counts and subscription price.
Scrape these 20 OnlyFans profiles, and list the Instagram and TikTok accounts that each creator links to.
Input
OnlyFans Profile Scraper has one input field.
| Field | Type | Required | Description |
|---|---|---|---|
profileUrls | string[] | Yes | OnlyFans profile URLs (https://onlyfans.com/username) or usernames (username, @username) |
Input example
{"profileUrls": ["https://onlyfans.com/onlyfans", "https://onlyfans.com/oftv", "@onlyfans"]}
The scraper gets onlyfans one time only, because @onlyfans is a duplicate. Usernames are not case-sensitive.
Output
You get one item for each profile that the scraper finds. This is a shortened example:
{"id": 15585607,"username": "onlyfans","name": "OnlyFans","url": "https://onlyfans.com/onlyfans","about": "Featuring videos by OnlyFans Creators<br />\nSee more: <a href=\"https://OnlyFans.com/OFTV\">OnlyFans.com/OFTV</a>","isVerified": true,"avatar": "https://public.onlyfans.com/files/m/mk/mka/mkamcrf6rjmcwo0jj4zoavhmalzohe5a1640180203/avatar.jpg","header": "https://public.onlyfans.com/files/j/js/jsv/jsv5w8j13rg0ganqiqfo2i1v1kulprh11671047426/15585607/header.jpg","subscribePrice": 0,"subscribersCount": 6230740,"favoritedCount": 1146465,"postsCount": 5122,"photosCount": 0,"videosCount": 5121,"mediasCount": 5121,"joinDate": "2019-11-29T00:00:00+00:00","firstPublishedPostDate": "2020-03-17T00:00:00+00:00","lastSeen": null,"website": null,"location": null,"tipsMin": 5,"tipsMax": 200,"scrapedAt": "2026-10-19T02:25:12.635Z"}
An item has up to about 90 fields. A field that does not apply to a profile can be missing.
The Output tab has three views:
- Profiles — a table with the avatar, username, name, URL, verified badge, subscribers, likes, posts, photos, videos, price, join date and last-seen time.
- All profile fields — every field of every profile.
- Run summary — the counts of scraped, failed and skipped profiles.
Main output fields
| Field | Description |
|---|---|
id, username, name, url | The OnlyFans user ID, the username, the display name and the profile URL |
about, rawAbout | The bio as HTML, and as plain text when it is available |
isVerified | true when the profile has the verified badge |
avatar, avatarThumbs, header, headerThumbs, headerSize | The avatar and header image URLs, their thumbnails, and the header size |
subscribersCount, showSubscribersCount | The number of subscribers. It is null when the creator hides it |
favoritedCount | The number of likes on the profile |
postsCount, photosCount, videosCount, audiosCount, mediasCount | The content counts |
archivedPostsCount, firstPublishedPostDate | The number of archived posts, and the date of the first post |
subscribePrice, subscriptionBundles | The monthly price in USD (0 = free), and the bundles with duration and discount |
tipsEnabled, tipsMin, tipsMax, callPrice | The tip settings and the price of a call |
joinDate, lastSeen | When the creator joined, and when they were last online (null when hidden) |
website, wishlist, location | The website, the wishlist URL and the location that the creator shows |
instagramUrl, twitterUrl, tiktokUrl, youtubeUrl, twitchUrl, ... | The social media links that the creator adds |
hasStream, hasScheduledStream, hasStories, hasPinnedPosts | Activity flags |
scrapedAt | When the profile was scraped (UTC) |
Some fields, such as subscribedBy or canChat, describe the relation between the viewer and the creator. The scraper does not sign in, so these fields always have their default values.
Run summary
The Run summary shows how many profiles the scraper got, and the reason for each profile that failed and each entry that it skipped:
{"requested": 3,"succeeded": 2,"failed": 1,"skipped": 1,"stoppedEarly": false,"failedProfiles": [{ "username": "no-such-user-x9z", "error": "Profile not found: no-such-user-x9z" }],"skippedEntries": [{"entry": "https://example.com/not-onlyfans","reason": "Not an onlyfans.com URL: https://example.com/not-onlyfans"}]}
requested counts the unique, valid profiles in your list. stoppedEarly is true when the run stopped because it reached the maximum cost that you set for the run.
Integrations and scheduling
Connect OnlyFans Profile Scraper to the tools that you already use with Apify integrations: Google Sheets, Slack, Zapier, Make, n8n, Airbyte, Keboola and more. Use webhooks to call your own endpoint when a run finishes.
Use Schedules in Apify Console to run the scraper automatically. For example, run it every Monday on your list of creators to follow their subscribers, likes, posts and price over time.
Good to know
- Public data only. The scraper gets only the data that OnlyFans shows to a visitor who is not logged in. It does not get posts, photos, videos, messages or any paid content.
- Hidden stats. A creator can hide the subscriber count or the last-seen time. Then the field is
null. - Profiles that are not found. A deleted, renamed or banned profile is not in the dataset. The run summary shows it as
Profile not found. - Invalid entries. An entry that is not an OnlyFans profile URL or username is skipped. The run summary shows it with the reason.
- Temporary blocks. Sometimes OnlyFans blocks a request. The scraper tries again automatically. If a profile still fails, the run summary shows the error. Run the failed profiles again later.
FAQ
Do I need an OnlyFans account?
No. You need only an Apify account. The scraper does not sign in to OnlyFans.
Is there an official OnlyFans API?
OnlyFans has no public API for profile data. OnlyFans Profile Scraper gives you the same public profile data as structured JSON, CSV or Excel, and you can call it through the Apify API like any other API.
Can I check the subscriber count of an OnlyFans creator?
Yes, when the creator shows it on the profile. The subscribersCount field has the number. When the creator hides it, the field is null. The like count (favoritedCount) is always available.
Can it download OnlyFans posts, photos or videos?
No. The scraper gets the public profile only: bio, images, stats, price and links. It cannot get content that is behind a subscription.
How many profiles can I scrape in one run?
There is no fixed limit. Add as many profiles as you need to one list.
Can I search OnlyFans for creators by keyword?
No. The scraper gets the profiles that you give it. It does not search OnlyFans.
Is it legal to scrape OnlyFans profiles?
The scraper collects only publicly available profile data and never signs in. A profile can contain personal data, for example a name or a location. You are responsible for using the data in line with the OnlyFans Terms of Service and the laws that apply to you, including personal-data laws such as the GDPR. Do not use the data to harass, track or identify a person. Read more in Is web scraping legal?
Support and feedback
Did you find a bug, or do you need a field that is not here? Open an issue on the Issues tab. Custom solutions are available on request.
This scraper is not affiliated with or endorsed by OnlyFans or Fenix International Limited.