BetterFans Link: the OnlyFans APIBetterFans Link

Call Fansly

Read any Fansly API endpoint for a linked account.

Read any Fansly API endpoint for a linked Fansly account when the other routes do not cover it. Reads only: writes go through actions. Every route can also return the authentication errors, rate_limited and internal_error.

RouteMethod and pathPlatforms
Call FanslyGET /v1/accounts/{accountId}/fansly/{path}Fansly

Call Fansly

GET /v1/accounts/{accountId}/fansly/{path}

Runs a read-only Fansly API GET for an account, with the account's session. Use it for data the other routes do not cover.

Needs the read scope. Always a live read. Works for Fansly accounts only. Other accounts get not_supported_on_platform.

Fansly wraps every answer in an envelope. data is the envelope's response, the part with the data. Fansly returns many more fields than this example shows.

Query parameters you add are passed on to Fansly, so .../fansly/messaging/groups?limit=10 reads messaging/groups?limit=10.

Only GET works. To change anything on Fansly, create an action.

It needs a live key. Test keys never reach Fansly, so with a test key this route returns resource_not_found.

Path parameters

NameDescription
accountIdThe account's id, which is the creator's Fansly user id. Get it from GET /v1/accounts.
pathThe Fansly API path to read, for example account/me. The MCP tools search_api and describe_endpoint help find paths.

Returns

200 with the Fansly response in data. meta.source is live and meta.asOf is null.

Example request

curl "https://betterfans.link/v1/accounts/583912047736512512/fansly/account/me" \
  -H "Authorization: Bearer $BFL_KEY"

Example response

{
  "data": {
    "account": {
      "id": "583912047736512512",
      "username": "raevale",
      "displayName": "Rae Vale"
    }
  },
  "meta": {
    "source": "live",
    "asOf": null,
    "requestId": "req_7Hq2LmX9pRt4VbN8cKe3WzYa",
    "platform": "fansly"
  }
}

Errors

CodeStatusWhen
account_not_found404The account is not linked to your workspace, your key's account list leaves it out, or, with a test key, it is not a sandbox creator.
not_supported_on_platform400The account is not on Fansly.
resource_not_found404The key is a test key, or the endpoint is one BetterFans Link does not pass through. The realtime socket token and device id endpoints are never passed through.
account_unavailable409The account's status stops live calls. See error.accountStatus.
fansly_error502Fansly returned an error.
fansly_timeout502Fansly did not answer in time.
invalid_parameter400path is not a Fansly API path, for example because it has .. in it or is over 512 characters.
method_not_allowed405Any method other than GET.

On this page