Bluesky Scraper avatar
Bluesky Scraper

Pricing

$1.00 / 1,000 results

Go to Apify Store
Bluesky Scraper

Bluesky Scraper

Developed by

TheGuide

TheGuide

Maintained by Community

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 the searchPosts endpoint. Leave empty to monitor handles only.
  • maxItems (integer, optional) — Total number of posts to collect (default 500, max 20000).
  • includeReplies (boolean, optional) — Include replies in handle timelines (default false).
  • includeReposts (boolean, optional) — Include reposts (default false).
  • includeQuotes (boolean, optional) — Include quote posts (default true).
  • 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. Keep https://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 a handle feed or a query 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) for since/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.