All endpoints
Bluesky User Profile

Bluesky User Profile API

Get a Bluesky user's full profile by handle, DID, or profile URL. Returns display name, bio, follower/following/post counts, verification status, profile picture and banner, join date, and the pinned post.

Price: $0.003 per request
Free tier: 50 requests/month
Endpoint
GET /v1/bluesky/user

Parameters

username
Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters). Provide either username or url.
url
Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters). Provide either username or url.

Response fields

user
Profile data
username
Bluesky handle
full_name
Display name
user_id
DID (permanent account ID)
biography
Profile description
follower_count
Number of followers
following_count
Number of accounts followed
post_count
Total posts
list_count
Number of lists the account has created
feed_count
Number of custom feeds the account publishes
starter_pack_count
Number of starter packs the account has created
is_verified
Whether the account is verified
is_labeler
Whether the account is a moderation labeler service
profile_pic_url
URL to profile picture
profile_banner_url
URL to profile banner, or empty string
date_joined
Account creation date and time
date_joined_timestamp
Unix timestamp of the account creation date
pinned_post_id
post_id of the pinned post, or empty string
url
Link to the profile

Example Request

curl "https://apidirect.io/v1/bluesky/user?username=bsky.app"   -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "user": {
    "username": "bsky.app",
    "full_name": "Bluesky",
    "user_id": "did:plc:z72i7hdynmk6r22z27h6tvur",
    "biography": "official Bluesky account (check username👆)\n\nBugs, feature requests, feedback: support@bsky.app",
    "follower_count": 34923372,
    "following_count": 15,
    "post_count": 863,
    "list_count": 18,
    "feed_count": 7,
    "starter_pack_count": 15,
    "is_verified": false,
    "is_labeler": false,
    "profile_pic_url": "https://cdn.bsky.app/img/avatar/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreihwihm6kpd6zuwhhlro75p5qks5qtrcu55jp3gddbfjsieiv7wuka",
    "profile_banner_url": "https://cdn.bsky.app/img/banner/plain/did:plc:z72i7hdynmk6r22z27h6tvur/bafkreichzyovokfzmymz36p5jibbjrhsur6n7hjnzxrpbt5jaydp2szvna",
    "date_joined": "2023-04-12 04:53:57",
    "date_joined_timestamp": 1681275237,
    "pinned_post_id": "at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l",
    "url": "https://bsky.app/profile/bsky.app"
  }
}

Frequently asked questions

What is a DID?

Every Bluesky account has a permanent decentralized identifier (did:plc:...). Handles can change, DIDs never do, so user_id is the stable key for an account. You can pass a DID as username on any user endpoint.

What does verified mean on Bluesky?

is_verified is true when the account carries a valid verification from Bluesky or one of its trusted verifiers.

How does pricing work?

You only pay for successful requests. The Bluesky User Profile API costs $0.003 per request. There are no monthly fees or commitments. You get 50 free requests per endpoint every month.

Do I need a credit card to start?

No. You can sign up and use the free tier (50 requests/endpoint/month) without adding a payment method. You only need to add a card when you want to exceed the free tier.

Are there rate limits?

Yes, there's a concurrency limit of 10 simultaneous requests per endpoint per user. If you need more, just get in touch.

Start using the Bluesky User Profile API

Get your API key and start making requests in minutes. 50 requests/month free every month.

Get API Key