
Bluesky Scraper
Pricing
$1.00 / 1,000 results

Bluesky Scraper
Scrape recent posts and user details from the Bluesky social network based on handles and/or search keywords..
0.0 (0)
Pricing
$1.00 / 1,000 results
0
1
1
Last modified
4 days ago
Collect fresh posts and author metadata from the Bluesky social network (AT Protocol) using user handles and/or keyword searches. All results end up in the default Apify dataset so you can export them as JSON, CSV, Excel, or access them through the Apify API.
What this actor is best for
- Brand or competitor monitoring: Track official accounts plus keyword mentions in a single run.
- Trend discovery: Follow hashtags or phrases to see new conversations as they happen.
- Analytics and reporting: Export structured data for dashboards, alerts, or downstream processing.
Requirement: Bluesky requires an app password (created in
Settings → App passwords
). Do not use your main account password. Store credentials in Apify Secret Storage for safety.
Input parameters
Configure inputs in the Apify console or by editing storage/key_value_stores/default/INPUT.json
. See .actor/input_schema.json
for defaults and full descriptions.
auth.identifier
(string, required) — Bluesky login email or handle (name.bsky.social
).auth.password
(string, required) — Bluesky app password created for this actor.handles
(string[], optional) — Handles whose feeds you want to monitor. Leave empty to rely on search queries only.queries
(string[], optional) — Keywords or hashtags for thesearchPosts
endpoint. Leave empty to monitor handles only.maxItems
(integer, optional) — Total number of posts to collect (default500
, max20000
).includeReplies
(boolean, optional) — Include replies in handle timelines (defaultfalse
).includeReposts
(boolean, optional) — Include reposts (defaultfalse
).includeQuotes
(boolean, optional) — Include quote posts (defaulttrue
).since
(string, optional) — ISO timestamp (UTC) to keep posts created on/after this time.until
(string, optional) — ISO timestamp (UTC) to keep posts created before this time.service
(string, optional) — Bluesky service URL. Keephttps://bsky.social
unless using a custom PDS.
At least one of handles
or queries
must be provided.
Example input
{"auth": {"identifier": "you@example.com","password": "xxxx-xxxx-xxxx-xxxx"},"handles": ["apify"],"queries": ["apify"],"maxItems": 500,"includeReplies": false,"includeReposts": false,"includeQuotes": true,"since": "2024-01-01T00:00:00Z"}
Output structure
Each dataset item represents one post and contains:
source
— Whether the post came from ahandle
feed or aquery
search.sourceValue
— The specific handle or keyword that produced the record.postUri
,postCid
— Stable Bluesky identifiers.text
— Normalised post body.createdAt
,indexedAt
— Creation and indexing timestamps.authorHandle
,authorDid
,authorDisplayName
,authorAvatar
— Author metadata.languages
,hashtags
,mentions
,labels
— Parsed post metadata.likeCount
,repostCount
,replyCount
,quoteCount
— Engagement metrics when available.isReply
,isRepost
,isQuote
— Flags describing the post type.replyRootUri
,replyParentUri
,quoteUri
— References for threaded conversations.media
— Attached images, videos, external links, or quoted records.
Download the dataset directly from the run page or via the Apify API.
Tips
- Combine handles and queries to see both official communications and community chatter.
- Use ISO timestamps (
YYYY-MM-DDTHH:mm:ssZ
) forsince
/until
filters. - Mind rate limits: Large runs may take a few minutes because the actor spreads calls to avoid throttling.
- Rotate passwords: Delete or refresh app passwords if they are no longer needed.
On this page
Share Actor: