Skip to main content
GenieHelper connects to Fansly using the same Stagehand browser automation stack as OnlyFans. Stagehand runs a real Chromium instance on your dedicated server, navigates Fansly as an authenticated user, and extracts stats and post metrics directly from the page.
All credentials and session cookies are encrypted with AES-256-GCM and stored in PostgreSQL. The encryption key never leaves your server — GenieHelper has no access to your plaintext credentials.

How the connection works

Fansly does not offer a public API for creator analytics. GenieHelper reads your stats by controlling a real browser session: it navigates to your Fansly profile URL (fansly.com/your-handle), extracts the data rendered on the page, and writes it to your GenieHelper database. Like OnlyFans, Fansly actively detects headless browser fingerprints. GenieHelper mitigates detection by spoofing a realistic user-agent string and passing standard Chrome launch flags, but some login flows may still trigger challenges that require human intervention.
If Fansly presents a CAPTCHA or requires SMS/email verification during login, the job cannot complete automatically. It escalates to the HITL queue (hitl_action_queue) and surfaces a scrape_alert in your dashboard. You must complete the login manually and provide fresh session cookies before scraping can resume.

Authentication options

Fansly supports the same three authentication modes as OnlyFans:

Email / Password

GenieHelper logs in using your Fansly email and password. Your profile @handle (URL username) is stored separately from your login email.

X / Twitter OAuth

GenieHelper clicks “Sign in with X” on the Fansly login page and authenticates via your X/Twitter credentials. 2FA must be disabled on X for this to work automatically.

Cookie only

No password is stored. You log in manually and export session cookies via the browser extension. GenieHelper reuses those cookies for all future scrapes.

Cookie injection

When a valid session exists in platform_sessions, GenieHelper injects those cookies before navigating — skipping the login flow entirely and reducing the risk of bot detection.

Setup

1

Open Platform Connections

Navigate to Platforms in the left nav rail. Click Add Platform.
2

Select Fansly

Choose Fansly from the platform grid. Multiple platforms can be connected in a single flow.
3

Choose your authentication method

Select Email/Password, X/Twitter OAuth, or Cookie only. If you choose cookie-only, enter your @handle so GenieHelper knows which profile URL to navigate to.
4

Enter credentials

Fill in the required fields. All credential values are AES-256-GCM encrypted before leaving your browser and stored only in your PostgreSQL vault.
5

Save and verify the connection

GenieHelper creates a platform_connections record with status: pending_connection and immediately enqueues a scrape_profile job. Once the job completes, the status updates to connected and your stats populate.

Data collected

The scrape_profile job extracts the following from your Fansly profile page:
FieldSourceCollection
Follower countProfile page DOMplatform_connections
Following countProfile page DOMplatform_connections
Post countProfile page DOMplatform_connections
Display nameProfile page DOMplatform_connections
Subscription priceProfile page DOMplatform_connections
Bio textProfile page DOMplatform_connections
Post captionPer-post extractionmedia_assets
Likes per postPer-post extractionmedia_assets
Comments per postPer-post extractionmedia_assets
PPV flag and pricePer-post extractionmedia_assets
Posted datePer-post extractionmedia_assets
The scrape_post_performance job collects live engagement metrics for published posts:
MetricCollection
Likespost_performance_snapshots
Commentspost_performance_snapshots
Viewspost_performance_snapshots
Tips amountpost_performance_snapshots
Each snapshot write triggers the “PUB: Snapshot Evaluated” Directus Flow, which scores the post’s performance band and can fire downstream automation rules.

BullMQ jobs

Fansly scraping runs through two job types on the scrape-jobs queue:
JobTriggerWhat it does
scrape_profileManual from dashboard, or every 6h via runScrapeSchedulerScrapes profile stats and up to 20 recent posts
scrape_post_performanceManually triggered or via post schedulerFetches live metrics for a specific published post
BullMQ enforces concurrency:1 — only one Stagehand browser session runs at a time, preventing RAM exhaustion on the 16GB server.

Session management

Fansly session cookies are stored encrypted in platform_sessions:
  • Cookies are serialized to JSON, then encrypted with AES-256-GCM
  • status is active until you revoke the session or it expires
  • The Cookie Sessions tab in Platform Connections shows all active Fansly sessions
  • Sessions are scoped by creator_profile_id and platform — multiple Fansly accounts can be managed independently
To add cookies manually (useful after resolving a HITL challenge):
  1. Log in to Fansly in your own browser
  2. Use the GenieHelper browser extension to export cookies, or copy the cookie header string
  3. Paste it in the Cookie Sessions tab and click Import

Connection health monitoring

The platform_health_checks collection records the outcome of every scrape attempt. The connection card in Platform Connections reflects the current status:
StatusMeaning
connectedLast scrape succeeded
scrapingA scrape job is currently running
hitl_requiredFansly presented a challenge — action required
failedLast scrape failed
pending_connectionProfile saved but no successful scrape yet

Resolving HITL alerts

When Fansly blocks automated login, the dashboard switches to scrape_alert mode and the TopCueRail turns amber.
1

Acknowledge the alert

The Center Stage will display the HITL alert with the reason (e.g., “Login required — SMS verification detected”).
2

Log in to Fansly manually

Open Fansly in your browser, complete any verification steps, and confirm you are fully logged in.
3

Export your session cookies

Use the GenieHelper extension or the manual cookie import form in the Cookie Sessions tab.
4

Re-trigger the scrape

Click Scrape Now on your Fansly profile card. GenieHelper injects the fresh cookies and completes the scrape without hitting the login page.
For Fansly accounts with aggressive bot-detection, Cookie only auth is the most reliable approach. You take the risk of login detection off the table entirely by handling authentication yourself.

Build docs developers (and LLMs) love