Fansly publishes no official API. CreatorAPI gives you a hosted REST API for native Fansly access, and any Python HTTP client can call it: one key, one header, stable JSON back with money already converted to USD.
All you need is the requests library and your API key in the X-API-Key header. Keep the key in an environment variable, never in code, and reuse one session so the header rides along on every call.
# pip install requests import os, requests BASE = "https://api.creator-api.com" session = requests.Session() session.headers["X-API-Key"] = os.environ["CREATOR_API_KEY"] account = os.environ["CREATOR_ACCOUNT_ID"] # the Fansly creator id you get when you connect an account
Subscribers come back as structured JSON from one GET request. Every native route follows the same pattern: /v1/{account}/native/{path}, and each read costs 1 credit.
# list the newest 50 subscribers r = session.get( f"{BASE}/v1/{account}/native/subscribers", params={"limit": 50}, ) r.raise_for_status() print(r.json())
Fansly's own apiv3 reports money in mills, thousandths of a dollar, and keeps 20 percent of every sale. CreatorAPI adds a computed USD sibling field, such as totalNetUsd, to every money value so your Python reads a plain dollar amount.
def native_get(path, **params): # works for any read path from the reference: earnings, transactions, posts, fans r = session.get(f"{BASE}/v1/{account}/native/{path}", params=params) r.raise_for_status() return r.json() earnings = native_get("account/wallets/earnings") print(earnings["totalNetUsd"])
A single POST starts a bulk export of subscribers, transactions, chats or posts to CSV or JSONL. One export job costs 10 credits, and you download the file when the job is done.
# export all subscribers to CSV, 10 credits per job job = session.post( f"{BASE}/v1/{account}/exports", json={"dataset": "subscribers", "format": "csv"}, ) job.raise_for_status() print(job.json())
Webhook deliveries are signed with HMAC SHA256 and retried with backoff, so your Python service can trust what arrives and verify it in a few lines. The quickstart walks through signature verification. Errors are plain HTTP: 401 for a bad key, 402 when credits run out, 429 on rate limits, always with a JSON body of {"error": "..."}, so raise_for_status() plus one except block covers you.
The whole API fits in one file made for language models. Paste it into Claude or Codex and describe what you want; the model writes the calls.
Grab https://api.creator-api.com/llms-full.txt and paste it into your AI chat. Every route, parameter and error is in there.
Ask for a script that pulls subscribers into a spreadsheet or flags churn risks. The model writes working requests code against real routes.
Once the reads work, the same key powers webhooks, tags and exports. See the Fansly CRM API for what you can build on top.
No. Fansly publishes no official public API or SDK. CreatorAPI is a hosted REST API that calls the same apiv3 endpoints the Fansly app uses, and you reach it from Python with any HTTP client such as requests.
Send your key in the X-API-Key header on every request. Store it in an environment variable and load it with os.environ, never hardcode it.
Fans, messages, media, earnings, posts, transactions and subscribers, all through one route pattern under /v1/{account}/native/. There are 351 Fansly capabilities, with 97 GET routes live verified across 15 categories.
A native read costs 1 credit, a write 2 credits, and an export job 10 credits. The free trial includes 1,000 credits with no card required.
Fansly reports amounts in mills, but CreatorAPI adds a computed USD sibling to every money field, such as totalNetUsd, so Python code can read it directly without converting by hand.
Yes. CreatorAPI publishes its whole API reference in one text file made for language models. Paste it into Claude or Codex, describe what you want, and the model writes working calls.
Yes. One key covers OnlyFans, Fansly, 4based and Fanvue, and the route pattern is identical, so the same Python client works across platforms.
Start free with 1,000 credits, no card required, and make your first call in minutes.