BetterFans Link SDK — OnlyFans APIBetterFans Link SDK
API Reference

Users

Fetch profiles, account stats, notifications, settings, and manage blocks.

User routes are the largest group in the API, covering profiles, stats, notifications, settings, and user relationships.

Get your profile

const [error, me] = await account.request("GET /users/me", {})

if (!error) {
  console.log(me.name, me.username)
  console.log(`Subscribers: ${me.subscribersCount}`)
  console.log(`Posts: ${me.postsCount}`)
}

The response is typed as UserFull — the most complete user representation with all profile fields, stats, and settings.

Get another user's profile

const [error, user] = await account.request("GET /users/:id", {
  pathParams: { id: "987654321" },
})

if (!error) {
  console.log(user.name, user.username)
  console.log(`Subscribed: ${!!user.subscribedOnData}`)
}

Account stats

const [error, stats] = await account.request(
  "GET /users/me/stats",
  {},
)

if (!error) {
  console.log(`Subscribers: ${stats.subscribesCount}`)
  console.log(`Revenue: $${stats.earnings}`)
}

Notifications

Fetch notifications with optional type narrowing:

const [error, notifications] = await account.request(
  "GET /users/notifications",
  { query: { limit: 20 } },
)

Mark notifications as read

await account.request("POST /users/notifications/read", {})

Notification counts

const [error, counts] = await account.request(
  "GET /users/notifications/count",
  {},
)

if (!error) {
  console.log(`Unread: ${counts.new}`)
}

Settings

const [error, settings] = await account.request(
  "GET /users/me/settings",
  {},
)

if (!error) {
  console.log("Show earnings:", settings.showEarnings)
}

Blocking

List blocked users

const [error, blocked] = await account.request(
  "GET /users/me/blocked",
  { query: { limit: 20 } },
)

Profile visits

Log a profile visit (used for analytics):

await account.request("POST /users/profile/visit", {})
await account.request("POST /users/profile/view", {})

On this page