API Documentation

Access Bluesky user rankings and statistics programmatically.

Overview

The BlueFacts API provides access to Bluesky user rankings and statistics.

Terms of Use

By using this API, you agree to the following terms:

  • Attribution required: You must include a visible backlink tobluefacts.appon any page or application that displays data from this API.
  • Contact us: Please let us know what you are building with the API, just send us a message on Bluesky at@bluefacts.app. Also feedback is welcome!

Base URL

The base URL for all endpoints is https://bluefacts.app.

Top Users Lists

GET/json/lists/{type}

Returns a paginated list of users for the specified ranking type.

Path Parameters

ParameterTypeDescription
typestringThe ranking type (see available types below)

Query Parameters

ParameterTypeDefaultDescription
pinteger1Page number (1-indexed)
limitinteger100Results per page (max: 100)

Available Types

top-followers

Most Followed

Users ranked by total follower count

top-followers-1d

Trending (24h)

Users with the most new followers in the last 24 hours

top-growth-1d

Fastest Growing (24h)

Users with the highest follower growth rate in the last 24 hours

top-reach

Most Reach

Users with the highest engagement and reach metrics

top-new

Top New Users

Newly registered users who have quickly gained followers

Example Request

curl "https://bluefacts.app/json/lists/top-followers-1d?p=1&limit=50"

Example Response

{
  "type": "top-followers-1d",
  "total": 1000,
  "page": 1,
  "pageSize": 100,
  "lastPage": 10,
  "users": [
    {
      "rank": 1,
      "did": "did:plc:example123",
      "handle": "popular.bsky.social",
      "displayName": "Popular User",
      "avatar": "https://cdn.bsky.app/img/avatar/...",
      "description": "An example user profile",
      "followersCount": 150000,
      "followsCount": 500,
      "postsCount": 2500,
      "followerIncrease": 5000,
      "followerIncreaseDay": 5000,
      "followerIncreaseDayPct": 3.45,
      "yesterdayRank": 3,
      "rankChange": 2
    }
  ]
}

Response Fields

Root Object

FieldTypeDescription
typestringThe requested ranking type
totalintegerTotal number of users in the ranking
pageintegerCurrent page number
pageSizeintegerNumber of results per page
lastPageintegerTotal number of pages
usersarrayArray of user objects

User Object

FieldTypeDescription
rankintegerCurrent position in the ranking
didstringDecentralized Identifier (unique user ID)
handlestringUser's handle (e.g., user.bsky.social)
displayNamestring | nullUser's display name
avatarstring | nullURL to avatar image
descriptionstring | nullUser's bio/description
followersCountinteger | nullNumber of followers
followsCountinteger | nullNumber of accounts followed
postsCountinteger | nullNumber of posts
followerIncreaseinteger | nullTotal follower increase (for trending lists)
followerIncreaseDayinteger | nullFollower increase in the last day
followerIncreaseDayPctnumberPercentage follower growth
yesterdayRankinteger | nullRank position from previous day
rankChangeinteger | nullChange in rank (positive = moved up)

Caching

Responses are cached for 5 minutes. The rankings are updated daily.

Error Responses

Invalid type parameter returns a 400 error:

{
  "error": "Invalid type",
  "validTypes": [
    "top-followers",
    "top-followers-1d",
    "top-growth-1d",
    "top-reach",
    "top-new"
  ]
}