Upscrape 2.0 is here. Live platform data for agents, apps, and workflows. Upscrape 2.0 is here. REST API and MCP, one connection. Explore capabilities

Bluesky scraper API

Read Bluesky actor and post data from public AT Protocol endpoints.

Social & content 13 capabilities 88.9% success rate

What people use it for

  • Handle and profile verification
  • Social graph snapshotting
  • Post search and discovery monitoring
  • Author feed and follower analytics
  • Post interaction extraction (likes/reposts/thread)
  • Trending-topic and feed discovery

Capabilities

Every capability is one POST /execute call that returns structured JSON.

Get followers

bluesky.actor.get_followers

List followers for a Bluesky actor.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"actor":"bsky.app","limit":20,"max_pages":2},"capability":"bluesky.actor.get_followers"}'

Input

Field Type Required Description
actor string required
cursor string optional
limit integer optional
max_pages integer optional

Get follows

bluesky.actor.get_follows

List actors followed by a Bluesky actor.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"actor":"bsky.app","limit":20,"max_pages":2},"capability":"bluesky.actor.get_follows"}'

Input

Field Type Required Description
actor string required
cursor string optional
limit integer optional
max_pages integer optional

Get profile

bluesky.actor.get_profile

Fetch profile metadata for a Bluesky actor.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"actor":"bsky.app"},"capability":"bluesky.actor.get_profile"}'

Input

Field Type Required Description
actor string required

Resolve handle

bluesky.actor.resolve_handle

Resolve a Bluesky handle to its DID.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"handle":"bsky.app"},"capability":"bluesky.actor.resolve_handle"}'

Input

Field Type Required Description
handle string required

Search actors

bluesky.actor.search

Search actors by keyword with cursor pagination.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":10,"max_pages":2,"query":"bluesky"},"capability":"bluesky.actor.search"}'

Input

Field Type Required Description
cursor string optional
limit integer optional
max_pages integer optional
query string required

Get author feed

bluesky.feed.get_author_feed

Fetch an author's public posts feed with cursor pagination.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"actor":"bsky.app","limit":10,"max_pages":2},"capability":"bluesky.feed.get_author_feed"}'

Input

Field Type Required Description
actor string required
cursor string optional
limit integer optional
max_pages integer optional

Get feed posts

bluesky.feed.get_feed

Fetch posts from a specific feed URI with cursor pagination.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"feed":"at://did:plc:3h5kz5x2n4q2w3f5n6z5b7b7/app.bsky.feed.generator/science","limit":20,"max_pages":2},"capability":"bluesky.feed.get_feed"}'

Input

Field Type Required Description
cursor string optional
feed string required
limit integer optional
max_pages integer optional

Get feed generators

bluesky.feed.get_feed_generators

Discover popular feed sources used by the Bluesky app.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":10,"max_pages":1},"capability":"bluesky.feed.get_feed_generators"}'

Input

Field Type Required Description
cursor string optional
limit integer optional
max_pages integer optional

Get post likes

bluesky.feed.get_likes

List users who liked a post with cursor pagination.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":25,"max_pages":2,"uri":"at://did:plc:4zvfsavw2f4t6o3o3r6h4j6n/app.bsky.feed.post/3ltw5y5q3qv2g"},"capability":"bluesky.feed.get_likes"}'

Input

Field Type Required Description
cursor string optional
limit integer optional
max_pages integer optional
uri string required

Get post thread

bluesky.feed.get_post_thread

Fetch a post thread with bounded nested replies depth.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"depth":25,"uri":"at://did:plc:4zvfsavw2f4t6o3o3r6h4j6n/app.bsky.feed.post/3ltw5y5q3qv2g"},"capability":"bluesky.feed.get_post_thread"}'

Input

Field Type Required Description
depth integer optional
uri string required

Get repost users

bluesky.feed.get_reposted_by

List users who reposted a post with cursor pagination.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":25,"max_pages":2,"uri":"at://did:plc:4zvfsavw2f4t6o3o3r6h4j6n/app.bsky.feed.post/3ltw5y5q3qv2g"},"capability":"bluesky.feed.get_reposted_by"}'

Input

Field Type Required Description
cursor string optional
limit integer optional
max_pages integer optional
uri string required

Search posts

bluesky.feed.search_posts

Search Bluesky posts and return paginated records.

Request

curl -X POST https://data.upscrape.com/execute \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"input":{"limit":10,"max_pages":2,"query":"bluesky"},"capability":"bluesky.feed.search_posts"}'

Input

Field Type Required Description
cursor string optional
limit integer optional
max_pages integer optional
query string required

Run Bluesky in under a minute

Sign in, create an API key, and try any capability in the playground before you write code.

Get an API key