Skip to main content
A linked account is one OnlyFans account. When an owner authorizes your app, they share specific linked accounts with specific scopes. Every Access call targets exactly one linked account. All routes on this page take the bearer access token. They only ever return the accounts of that token’s authorization. There is no route that lists accounts across authorizations.

Where linked account ids come from

The same OnlyFans account in Sandbox, Test, and Live has different ids.

List linked accounts

Accounts are ordered by id. A bad limit or cursor returns 400 invalid_request.

Get a linked account

Returns one account in the shape above. An id that is not part of this authorization returns 404 linked_account_not_found with recovery.action list_linked_accounts.

Remove a linked account

Removes this authorization’s access to one account and returns 204. The account itself, the rest of the authorization, and other apps’ access are unaffected. Repeating the call succeeds. Your webhook destinations receive linked_account.disconnected with reason: "developer_deleted". To end the whole authorization instead, revoke its sessions.

Linked account settings

Per-account settings, such as Vault+, are managed through the API, not the dashboard.
PATCH takes exactly { "vault_plus": { "enabled": boolean } } and returns the updated settings.
  • PATCH needs the vault:write scope on that account, or it returns 403 missing_scope.
  • Vault+ must be on for the environment. Test accounts need a paid Developer plan (403 subscription_required).
  • Sandbox accounts always have Vault+ on. PATCH in Sandbox returns 409 linked_account_settings_fixed.
  • A concurrent change returns 409 linked_account_settings_conflict with recovery.action retry.
See Vault+.

Linked account status

Select a linked account

Send the linked account id on every Access and Vault+ call.
Missing header: 403 linked_account_required. An account that is not part of this authorization: 403 linked_account_not_granted. See Errors.

Several accounts per authorization

One authorization can cover several linked accounts, for example an agency that manages several creators. Store the account ids per authorization_id and let the user choose which account to operate. The access token works for every account in the authorization; only the header changes. Keep your list current with lifecycle webhooks: authorization.updated reports added and removed accounts, and linked_account.disconnected reports a single removed account.