Bluesky Post Search Scraper avatar

Bluesky Post Search Scraper

Pricing

from $0.40 / 1,000 result records

Go to Apify Store
Bluesky Post Search Scraper

Bluesky Post Search Scraper

Search public Bluesky posts with full text, author details, engagement, images, video and link previews. Automatic pagination with optional date filters.

Pricing

from $0.40 / 1,000 result records

Rating

0.0

(0)

Developer

Hamza

Hamza

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

Find public Bluesky posts by keyword and export their text, engagement, author information and media in a clean dataset. Search is cookieless. Images, videos, quoted posts and link previews are included whenever they are returned with the search results. There are no individual-post detail requests.

What you get

  • Post text, publication and indexing timestamps, languages and content labels.
  • Likes, reposts, replies, quotes and bookmarks when available.
  • Author handle, display name, avatar, account identifier and account creation date.
  • Structured images with thumbnails, full-size URLs, alt text and aspect ratios.
  • Available video playlists, thumbnails, captions, external previews and quoted-post content.
  • Original content metadata including facets, mentions, hashtags, links, reply references and attachment metadata.
  • Additional author and post information returned with search results, without an extra enrichment fee.

No media files are downloaded. Media metadata and links stay structured in JSON. CSV and Excel exports may represent these nested values as JSON strings. Missing fields are omitted, not guessed or filled with null placeholders. Zero engagement counts are kept.

  1. Enter a Search query, such as birds or technology.
  2. Choose latest or top.
  3. Optionally enter Since and Until as DD-MM-YYYY, for example 07-10-2026.
  4. Set Maximum results and start the run.

The actor requests further search pages automatically until it reaches your result limit or available results end. No page-count input is needed. Results are deduplicated within each run. Old maxPages values are ignored.

{
"query": "birds",
"sort": "latest",
"since": "01-10-2026",
"until": "07-10-2026",
"maxItems": 250
}

Inputs

InputMeaning
Search queryKeyword or search expression.
Sortlatest (default) or top.
Since (DD-MM-YYYY)Optional first day, inclusive, in UTC.
Until (DD-MM-YYYY)Optional last day, inclusive, in UTC.
Maximum resultsMaximum unique posts to save. Default 100; allowed range 1 to 100,000.

Dates are text fields to preserve day-month-year ordering. Leave either date blank to remove that bound. Impossible dates, a missing query, reversed date ranges and invalid limits end with a clear input message and no results. Try birds, 07-10-2026 and 100 as valid examples.

Clean result fields

FieldContents
textFull returned post text.
createdAt, indexedAt, scrapedAtPublication, indexing and collection times.
authorHandle, authorName, authorAvatarReadable author details.
authorId, authorCreatedAtStable author identifier and account creation date.
likes, reposts, replies, quotes, bookmarksReturned engagement counts.
languages, labelsLanguage and moderation metadata.
mediaComplete rendered media: image URLs, videos, external cards and quoted posts.
contentDetailsOther original content fields, including facets, attachments, reply references and record type.
authorDetailsOther author fields such as associated account information and author labels.
postDetailsAdditional post fields not already included elsewhere.
viewer, threadGateViewer metadata and reply permissions, when available.
postUri, contentIdUnique post and content-version identifiers.

The extra-information objects preserve new fields without creating duplicate raw-post columns. Original attachment metadata and rendered media are both retained because they contain different information. Post identifiers and media links are content, not internal request addresses. Internal retrieval URLs are not written to results, summaries or logs.

Progress and run summary

Each accepted unique post is saved immediately. Short progress lines show results increasing page by page. The run summary reports saved posts, completed pages, request count, available-hit estimate when returned, result-limit status and a plain-language outcome.

An empty search is a successful run with an explanation. If a later page becomes unavailable or repeats its pagination cursor, already-saved results remain available and the run finishes successfully with a partial-result message. A service outage before any results, or a dataset/storage failure, is an infrastructure error and may fail the run.

Limits

Maximum results is a ceiling, not a promise. Search indexing, visibility restrictions, pagination availability and rate limits can return fewer posts. Some queries allow a first page but restrict later pages; those runs retain their results and explain the partial outcome. The actor does not unlock private, deleted, restricted or paid-only content. No full-history or high-volume guarantee is made.

Only information returned with the search results is included. There are no profile-detail or individual-post lookups, invented metrics, private data or downloaded media files. Reuse must comply with applicable terms, copyright and privacy rules. This actor is independent and is not endorsed by Bluesky.