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.
| Route | Method and path | Platforms |
|---|---|---|
| Call Fansly | GET /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
| Name | Description |
|---|---|
accountId | The account's id, which is the creator's Fansly user id. Get it from GET /v1/accounts. |
path | The 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
| Code | Status | When |
|---|---|---|
account_not_found | 404 | The 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_platform | 400 | The account is not on Fansly. |
resource_not_found | 404 | The 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_unavailable | 409 | The account's status stops live calls. See error.accountStatus. |
fansly_error | 502 | Fansly returned an error. |
fansly_timeout | 502 | Fansly did not answer in time. |
invalid_parameter | 400 | path is not a Fansly API path, for example because it has .. in it or is over 512 characters. |
method_not_allowed | 405 | Any method other than GET. |