What you get#
Onekey exposes Bluesky as 32 endpoints behind one API key: 7 endpoints return one record (data is an object) and 25 endpoints return a list (data is an array). Every answer uses the same envelope (success, data, metadata, error), the cost is reported in metadata.credits_charged, and fields are mapped onto the unified schema so the code you write for Bluesky also works for the rest of the social networks category.
Endpoints#
| Endpoint | What it does | Parameters | Credits | Status |
|---|---|---|---|---|
actor_feeds | Custom feeds published by a Bluesky user. | handle* | 5 | stable |
actor_lists | Lists created by a Bluesky user. | handle* | 5 | stable |
actor_starter_packs | Starter packs created by a Bluesky user. | handle* | 5 | stable |
feed | Posts from a Bluesky custom feed. | feed*, cursor | 5 | stable |
feed_generator | Details of a Bluesky custom feed generator. | feed* | 1 | stable |
feed_generators | Details for a Bluesky feed generator (batch lookup form). | feed* | 5 | stable |
followers | Followers of a Bluesky account. | handle*, cursor | 5 | stable |
follows | Accounts a Bluesky user follows. | handle* | 5 | stable |
likes | Accounts that liked a Bluesky post. | uri*, cursor | 5 | stable |
list | A Bluesky list's metadata. | list* | 1 | stable |
list_members | Members of a Bluesky list. | list*, cursor | 5 | stable |
media | Bluesky user's posts that contain media. | handle*, cursor | 5 | stable |
popular_feeds | Popular Bluesky feed generators. | q, cursor | 5 | stable |
post_replies | Direct replies to a Bluesky post. | uri* | 5 | stable |
post_thread | A Bluesky post with its counts (thread root). | uri* | 1 | stable |
posts | Latest posts by a Bluesky user. | handle*, cursor | 1 | stable |
posts_by_uri | Look up a Bluesky post by AT URI. | uri* | 1 | stable |
posts_no_replies | Bluesky user's posts excluding replies. | handle*, cursor | 5 | stable |
posts_with_replies | Bluesky user's posts including replies. | handle*, cursor | 5 | stable |
profile | Fetch a Bluesky user's public profile. | handle* | 1 | stable |
profiles | Fetch two Bluesky profiles in one call. | handle*, handle2 | 5 | stable |
quotes | Quote posts of a Bluesky post. | uri*, cursor | 5 | stable |
reposted_by | Accounts that reposted a Bluesky post. | uri*, cursor | 5 | stable |
resolve_handle | Resolve a Bluesky handle to its DID. | handle* | 1 | stable |
search | Search Bluesky users by keyword. | q*, cursor | 1 | stable |
search_typeahead | Bluesky account typeahead suggestions. | q* | 5 | stable |
starter_pack | A Bluesky starter pack. | pack* | 1 | stable |
suggested_feeds | Suggested Bluesky feed generators. | cursor | 5 | stable |
threads | Bluesky user's posts and own threads. | handle*, cursor | 5 | stable |
trending_topics | Bluesky trending topics. | - | 5 | stable |
trends | Bluesky trends with post counts. | - | 5 | stable |
videos | Bluesky user's posts that contain video. | handle* | 5 | stable |
A * marks a required parameter. Each endpoint name links to its reference page with the full parameter table, caching window and a recorded response.
Make a request#
This calls bluesky.feed_generator (1 credit, stable). Replace YOUR_API_KEY with your key; sign up, no card. 1,000 free credits cover the open-platform endpoints. Hard-to-reach platforms (X, TikTok, Instagram, Reddit, and others marked on their page) need a verified email and a purchased pack.
curl "https://api.onekey.dev/v1/bluesky/feed_generator?feed=at%3A%2F%2Fdid%3Aplc%3Az72i7hdynmk6r22z27h6tvur%2Fapp.bsky.feed.generator%2Fwhats-hot" \
-H "x-api-key: YOUR_API_KEY"Fields you get back#
These unified fields come back from Bluesky, with the same names as on every other platform. The count is how many of its 32 mapped endpoints return the field; a field the source lacks is null, never missing.
| Field | Type | Endpoints |
|---|---|---|
content.text | string | 31 |
author.id | string | 29 |
author.username | string | 29 |
author.displayName | string | 21 |
content.id | string | 21 |
engagement.likes | integer | 20 |
author.avatarUrl | URL | 19 |
engagement.comments | integer | 14 |
content.createdAt | ISO 8601 date | 13 |
content.language | string | 11 |
content.title | string | 11 |
engagement.shares | integer | 11 |
engagement.bookmarks | integer | 10 |
author.followers | integer | 2 |
author.following | integer | 2 |
entity.name | string | 2 |
entity.description | string | 1 |
media.thumbnailUrl | URL | 1 |
The full schema is in Unified schema.
Pricing#
Bluesky calls cost 1 to 5 credits, flat per endpoint. Free when served from cache (0.2 credit for a cached response over 100 KB). Invalid, failed or not-found calls are not charged. See pricing for credit packs.