# BetterFans Link > BetterFans Link is an OnlyFans API for agencies and developers, for the accounts they manage. OnlyFans has no public API. BetterFans Link offers a REST API for your own code and a remote MCP server for Claude, Cursor and other AI clients. Both read chats, messages, fans, spend, transactions, posts, tracking links and the vault. Reads come from synced data and say how fresh they are, and you can ask for a live read when it matters. Nothing is written to OnlyFans until a person approves it. Your code or an AI agent asks to send a message, and someone on the team approves or rejects it in the dashboard. Creators link their own accounts on a hosted page, including any 2FA code or selfie check OnlyFans asks for. Test mode comes with sandbox creators, so you can build the whole flow before anyone links a real account. OnlyFans is a registered trademark of Fenix International Limited. BetterFans Link is not affiliated with, sponsored by, or endorsed by Fenix International Limited. ## Start here - Docs: https://app.betterfans.link/docs - REST API base URL: https://app.betterfans.link/v1 - MCP server URL: https://mcp.betterfans.link/mcp - Setup steps for an AI agent, as markdown: https://betterfans.link/agent-setup - Every docs page in one file: https://app.betterfans.link/llms-full.txt - One docs page as markdown: https://app.betterfans.link/llms.mdx/, such as https://app.betterfans.link/llms.mdx/get-started/quickstart-api - Page list with headings, as JSON: https://app.betterfans.link/docs-index.json ## How to get started 1. Create a workspace at https://app.betterfans.link/sign-up. 2. Build in test mode against the sandbox creators. Create a `bfl_test_` key under Developers, or add https://mcp.betterfans.link/mcp to your AI client. 3. Send each creator a hosted link so they can connect their OnlyFans account. 4. Switch to a `bfl_live_` key and turn on API writes for the accounts where you want them. Every write waits for an owner or admin to approve it. ## Overview - [BetterFans Link](https://app.betterfans.link/llms.mdx/index): One API and one MCP server for OnlyFans creator data, with a person approving every write. ## Get started - [API quickstart](https://app.betterfans.link/llms.mdx/get-started/quickstart-api): Create a test key, make your first call, read the response envelope and page through a list. - [MCP quickstart](https://app.betterfans.link/llms.mdx/get-started/quickstart-mcp): Connect an AI client to the BetterFans Link MCP server with OAuth or an API key, then ask it about your accounts. - [Test mode](https://app.betterfans.link/llms.mdx/get-started/test-mode): Build and test against sandbox creators with a test key. Test reads and writes never reach OnlyFans. - [Going live](https://app.betterfans.link/llms.mdx/get-started/going-live): Link a real creator with a hosted link, understand grants, and switch your code to a live key. ## Concepts - [Entities and ids](https://app.betterfans.link/llms.mdx/concepts/entities): How workspaces, accounts, fans, chats and money fit together, and which id to pass where. - [Money](https://app.betterfans.link/llms.mdx/concepts/money): Every amount is an object with integer cents. Gross and net are different numbers; never add them together. - [Synced and live reads](https://app.betterfans.link/llms.mdx/concepts/freshness): Reads come from synced data by default. Use fresh=true on the three routes that support it when the answer must be current. - [Account status](https://app.betterfans.link/llms.mdx/concepts/account-status): The seven account statuses, which ones stop live calls, and what to do about each. - [Writes and approvals](https://app.betterfans.link/llms.mdx/concepts/writes-and-approvals): Nothing changes on OnlyFans until a person approves it. How actions work, from request to result. - [Keys and scopes](https://app.betterfans.link/llms.mdx/concepts/keys-and-scopes): Key types, the read and write scopes, account allow-lists, rotation and revocation. - [Rate limits](https://app.betterfans.link/llms.mdx/concepts/rate-limits): Limits are per key. Read the RateLimit headers, and on 429 wait for Retry-After. - [Requests and logs](https://app.betterfans.link/llms.mdx/concepts/requests-and-logs): Request ids, the headers worth sending, and the request log in the dashboard. - [Set up webhooks](https://app.betterfans.link/llms.mdx/webhooks): Get a signed HTTPS request when a fan messages, a sale lands, an account changes status or an action is decided. - [Security](https://app.betterfans.link/llms.mdx/concepts/security): What BetterFans Link protects for you, what you are responsible for, and how to handle fan-written text safely. ## API reference - [API overview](https://app.betterfans.link/llms.mdx/api): Base URL, authentication, responses, pagination and every route. - [Workspace](https://app.betterfans.link/llms.mdx/api/workspace): Check which workspace, key and rate limit a request runs as. - [Accounts](https://app.betterfans.link/llms.mdx/api/accounts): List the creator accounts your key can use, check their health and link new ones. - [Fans](https://app.betterfans.link/llms.mdx/api/fans): Find and rank fans, read one fan in full, list fan lists and see who is online. - [Chats](https://app.betterfans.link/llms.mdx/api/chats): Read chats and messages and search message text. - [Money](https://app.betterfans.link/llms.mdx/api/money): Revenue summaries and single transactions. - [Content](https://app.betterfans.link/llms.mdx/api/content): How mass messages, posts, tracking links and vault media perform. - [Call OnlyFans](https://app.betterfans.link/llms.mdx/api/onlyfans): Read any OnlyFans API endpoint for a linked account. - [Actions](https://app.betterfans.link/llms.mdx/api/actions): Ask for writes and follow them through approval. - [Errors](https://app.betterfans.link/llms.mdx/errors): Every error code, what it means and what to do about it. ## Webhooks - [Events](https://app.betterfans.link/llms.mdx/webhooks/events): Every webhook event type, its payload and an example. - [Verify signatures](https://app.betterfans.link/llms.mdx/webhooks/verify): Check that a webhook came from BetterFans Link before you act on it, with code for Node, Bun, Python and Go. - [Retries and replay](https://app.betterfans.link/llms.mdx/webhooks/retries): When BetterFans Link retries a webhook delivery, when it gives up and how to replay one. ## MCP - [MCP overview](https://app.betterfans.link/llms.mdx/mcp): How the BetterFans Link MCP server works, how clients sign in to it, and what an agent gets from it. - [Client setup](https://app.betterfans.link/llms.mdx/mcp/clients): Connect Claude Code, Claude, ChatGPT, Cursor, VS Code, Windsurf, Codex or Gemini CLI to the BetterFans Link MCP server. - [Tools and prompts](https://app.betterfans.link/llms.mdx/mcp/tools): Every MCP tool, when to use it, and the prompts. - [Approvals for agents](https://app.betterfans.link/llms.mdx/mcp/approvals): What an agent sees when it asks for a write over MCP, how a person approves it, and how the agent learns the outcome. - [Agent skills](https://app.betterfans.link/llms.mdx/mcp/skills): Two skills that teach an agent how BetterFans Link works and how to run common agency jobs. Install them in Claude Code, Claude.ai or any agent that reads SKILL.md files. ## Guides - [Link a creator](https://app.betterfans.link/llms.mdx/guides/link-a-creator): Send a creator a hosted link, follow their sign-in, handle a failure, and relink an account that needs it. - [Daily briefing](https://app.betterfans.link/llms.mdx/guides/daily-briefing): A morning summary for every creator, with account problems, yesterday's revenue, top fans, chats worth answering and mass message results. - [Whales and churn](https://app.betterfans.link/llms.mdx/guides/whales-and-churn): Rank fans by lifetime spend, see what each one buys, and flag the big spenders who are slipping away before they are gone. - [Reply to unread paying fans](https://app.betterfans.link/llms.mdx/guides/reply-to-paying-fans): Find the fans who have spent money and are waiting on a reply, write replies in the creator's voice, and send them after a person approves each one. - [Moving from the SDK](https://app.betterfans.link/llms.mdx/guides/moving-from-the-sdk): How each part of the BetterFans Link SDK and the previous API maps to v1, what works differently, and what v1 does not have. ## Product pages - [Home](https://betterfans.link): What BetterFans Link is, how it works and what teams build with it. - [Features](https://betterfans.link/features): Every capability in one place. - [OnlyFans Messaging API for DMs, PPV and Mass Messages](https://betterfans.link/features/onlyfans-messaging-api): OnlyFans messaging API to read chats and send DMs, PPV and mass messages. Every send waits for a person on your team to approve it before it goes out. - [OnlyFans Chatbot API for AI Agents with Approvals](https://betterfans.link/features/onlyfans-chatbot-api): Build an OnlyFans chatbot or AI chat assistant with fan context, drafts and reply suggestions. Your agent drafts, and a person approves every send. - [OnlyFans Webhooks for Messages, Sales and Subscribers](https://betterfans.link/features/onlyfans-webhooks): OnlyFans webhooks for new messages, transactions, subscribers, account status and approvals. Signed with Standard Webhooks and retried with backoff. - [OnlyFans Earnings API for Revenue and Transactions](https://betterfans.link/features/onlyfans-earnings-api): OnlyFans earnings API for revenue summaries and transactions, with gross, net and fees in integer cents. Split by type, by fan and over any period. - [OnlyFans Vault and Content API for Media and Posts](https://betterfans.link/features/onlyfans-media-api): OnlyFans vault and content API: list vault media with what it earned, rank posts and mass messages by revenue and read tracking link results. - [OnlyFans Agency API for Many Creators and Teams](https://betterfans.link/features/onlyfans-agency-api): OnlyFans agency API for teams: link many creators, give each person a role, limit keys to chosen accounts and see every call in the request log. - [OnlyFans Fan Data API for Spend, Lists and Presence](https://betterfans.link/features/onlyfans-fan-data-api): OnlyFans fan data API: search and rank fans by spend, read subscriptions, lists and notes, and see who is online now. Built for CRMs and AI agents. - [OnlyFans MCP Server for Claude and Cursor](https://betterfans.link/features/onlyfans-mcp-server): OnlyFans MCP server for Claude, Cursor and other AI clients. Read chats, fans and revenue, draft replies, and approve every send yourself. - [Help center](https://betterfans.link/help): Test mode, API keys, rate limits, linking accounts, approvals and support. - [About](https://betterfans.link/about): What BetterFans Link is for and how it works. - [Contact](https://betterfans.link/contact): Support, partnerships and integrations. ## FAQ ### Is there an official OnlyFans API? No. OnlyFans does not publish an API for developers. BetterFans Link gives you one, as a REST API and an MCP server, for the accounts creators link to your workspace. It is an independent product and is not affiliated with or endorsed by OnlyFans or Fenix International. ### Can I build before linking a real account? Yes. Every workspace has a test mode with sandbox creators and sample fans, chats and revenue. Use a bfl_test_ key and build the whole flow, approvals included. Approved actions in test mode record a simulated result and never reach OnlyFans. ### How do creators connect their accounts? You create a link in the dashboard, or with POST /v1/links, and send it to the creator. They open it, sign in to OnlyFans on our hosted page and answer any 2FA code or selfie check OnlyFans asks for. The link works for 24 hours, and the password they type is never shown to you. ### How fresh is the data? Reads come from data synced from OnlyFans, and every response carries meta.asOf, the time of the last sync. For chat messages, a fan profile and online fans you can add ?fresh=true to read live from OnlyFans instead. ### What does the MCP server do? MCP is the Model Context Protocol, the way AI apps such as Claude and Cursor call outside tools. Add https://mcp.betterfans.link/mcp to your client and it can list accounts, find fans, read chats, check revenue and draft replies for the accounts in your workspace. Its tools call the same API your code does, with the same keys, limits and approvals. ### Can an AI agent send messages on its own? No. Every write, such as a message, a mass message, an unsend or a list change, becomes a pending action. A workspace owner or admin approves or rejects it in the dashboard, and it expires after 24 hours if nobody decides. Writes are also off for each account until you turn them on. ## Contact Email hello@betterfans.link.