Profile by handle or DID
API · /bluesky-api
Bluesky API
Read Bluesky (the AT Protocol social network) in real time — no login, no app password needed. Look up any profile by handle or DID (followers, follows, post and list counts, bio, avatar), batch-fetch up to 25 profiles at once, and pull a user's feed in three flavours: posts only, posts with replies, or media-only. Get a post's full thread, fetch posts by AT-URI in bulk, and see exactly who liked, reposted or quote-posted any post. Full-text search posts, find and autocomplete users, and pull posts for any hashtag. Explore the network's discovery surface: a user's created lists, custom feeds and starter packs, any custom feed or list by URI with its members, the most popular feed generators, suggested accounts and the current trending topics. Resolve a handle to its DID. Every call is live (no cache), paginated with a cursor, and returns the upstream AT Protocol shape unchanged. 27 endpoints — broader coverage than the typical Bluesky wrapper. Built for social listening, audience and follower analysis, content and feed aggregation, and bot/automation back-ends. No upstream key, no cache.
API health
healthy- Uptime
- 100.00%
- Server probes · 24h
- Avg latency
- 388 ms
- Server probes · 24h
- Subscribers
- 4,017
- active
- Total calls
- 304
- last 7 days
Pricing
Pick a tier — billed monthly, cancel anytime.
Free
Free
- 2,400 calls / month
- 2 requests / second
- Hard cap (429 above quota, no overage)
- 2,400 calls/month
- 2 req/sec
- All 27 read endpoints
- No credit card
Starter
€9.00 /month
- 52,000 calls / month
- 8 requests / second
- Hard cap (429 above quota, no overage)
- 52k calls/month
- 8 req/sec
- Profiles, posts, search
- Email support
Pro
€28.00 /month
- 260,000 calls / month
- 20 requests / second
- Hard cap (429 above quota, no overage)
- 260k calls/month
- 20 req/sec
- Social-listening pipelines
- Priority support
Mega
€69.00 /month
- 1,300,000 calls / month
- 50 requests / second
- Hard cap (429 above quota, no overage)
- 1.3M calls/month
- 50 req/sec
- Platform-scale ingestion
- Dedicated SLA
Built by
Related APIs
Other APIs with overlapping tags.
Discord API
Read Discord in real time — no bot token, no OAuth, no login. Resolve any invite (a discord.gg/<code> link or bare code) to its full server: name, description, icon/banner/splash image URLs, verification and NSFW levels, premium (boost) tier and count, vanity URL, the channel it points to, the user who created it, and live approximate member and online counts. Pull a server's clan/guild "profile" (tag, badge, traits, features) and a lightweight member+online count by itself. For any server that has its widget enabled, read the widget directly by guild id: online presence count, the list of currently-online members and the voice channels, plus the active instant invite. A helper builds any Discord CDN asset URL (icon, banner, splash, avatar, guild-tag badge) from an id and hash. Every call is live (no cache) and returns the upstream Discord shape, enriched with ready-to-use image URLs. 10 endpoints — the same public surface the popular Discord-lookup wrappers expose, built for server analytics, invite resolution, community dashboards and bot back-ends. No upstream key, no cache. (Widget endpoints return 403 when a server has its widget turned off.)
api.oanor.com/discord-api
Twitter / X API
Read public Twitter/X data in real time — no login or key needed. Look up any tweet by its id (or by its URL) and get the full tweet: text, author, created date, language, like/retweet/reply/quote/view counts, attached photos and videos, and any quoted tweet. Look up any public account by @handle for its profile — display name, bio, location, follower/following counts, tweet and media counts and avatar. Tweets are read from X's own official syndication endpoint (the source that powers embedded tweets); profiles via the public FixTweet service. Every call is live (no cache). 4 endpoints. Built for tweet/embed enrichment, brand and author monitoring and content back-ends. Note: X exposes no public search or timeline, so this reads single tweets and profiles. No upstream key, no cache.
api.oanor.com/twitterx-api
Medium API
Read Medium posts in real time — no login or key needed. Pull the recent stories of any Medium user (@handle), any topic/tag, or any publication, straight from Medium's own public RSS feeds. Each post comes with its title, author, canonical link, publish date, categories/tags, a clean text excerpt and the full content HTML. Pass user = the @handle, tag = a topic slug, or publication = a publication slug; every call is live (no cache). 4 endpoints. Built for content aggregation, author/topic monitoring and reading-list back-ends. A Medium reader API. No upstream key, no cache.
api.oanor.com/medium-api
Telegram API
Read any public Telegram channel in real time — no bot token or key needed. Fetch a channel's info (title, @username, description, subscriber/photo/video/file counts, avatar) together with its latest posts, and page back through older posts. Each post comes with its message id, text (plain + HTML), publish date, view count, author, forward source, permalink and media (photos, videos, voice, documents). Pass channel = the @username (without @); paginate older posts with before=<message id>. Data comes from Telegram's own public channel web preview — live, no cache. 3 endpoints. Built for channel monitoring, social listening and content aggregation. A public-Telegram-channel reader (no private chats; Telegram exposes no public search). No upstream key, no cache.
api.oanor.com/telegram-api
Frequently asked questions
Quick answers about pricing, quotas, and integration.
How do I get an API key for Bluesky API?
What's the rate limit for Bluesky API?
How much does Bluesky API cost?
Can I cancel my subscription anytime?
Is Bluesky API GDPR-compliant?
Pick an endpoint from the list on the left to see its details and try it.
Code snippets
Sign up to get an API key, then call any path under your slug.
curl https://api.oanor.com/bluesky-api/SOME_PATH \
-H "x-oanor-key: oanor_test_..."
const res = await fetch("https://api.oanor.com/bluesky-api/SOME_PATH", {
headers: { "x-oanor-key": "oanor_test_..." }
});
const data = await res.json();
$ch = curl_init("https://api.oanor.com/bluesky-api/SOME_PATH");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ["x-oanor-key: oanor_test_..."]);
$response = curl_exec($ch);
import requests
r = requests.get(
"https://api.oanor.com/bluesky-api/SOME_PATH",
headers={"x-oanor-key": "oanor_test_..."},
)
print(r.json())
Ratings
Sign in to rate.
No reviews yet.
Discussion
Ask questions, share usage tips, get answers from the provider and other developers. Public — anyone can read.
Sign in to start a thread or reply.
Sign inNew thread
·
-
Provider answer
🔒 This thread is locked — no new replies.
-
·
- No threads yet — start the discussion.
Support
Private 1:1 support with the provider — billing questions, integration issues, account problems. Only you and the provider team can see these threads.
Sign in to open a support ticket.
Sign inOpen new ticket
Describe what you need help with. The provider team gets an email and replies on the ticket page.
-
·
Urgent - No tickets yet for this API.