Bluesky Public Posts: Search, Feeds & Threads avatar

Bluesky Public Posts: Search, Feeds & Threads

Pricing

$0.40 / 1,000 unique public post delivereds

Go to Apify Store
Bluesky Public Posts: Search, Feeds & Threads

Bluesky Public Posts: Search, Feeds & Threads

Export bulk recent Bluesky keyword mentions, public account watchlists and direct post reply context: redacted text, timestamps, links and engagement. Cursor-paged feeds, bounded date-window search, no login. $0.40/1k posts. Unofficial.

Pricing

$0.40 / 1,000 unique public post delivereds

Rating

0.0

(0)

Developer

h ichi

h ichi

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 days ago

Last modified

Share

Collect keyword mentions, a public account watchlist, and direct post reply context in one scheduled dataset. Public text, post links, timestamps and engagement support brand monitoring and content research. This is an unofficial, bounded observation of the source search index and feeds; it does not guarantee every mention or all comments.

Input

Use queries, handles and/or postUrls, at least one and at most five combined sources. Empty input falls back to queries=["openai"]. If any source field is supplied, omitted queries/handles/postUrls are empty lists; handles-only or URLs-only inputs never add the keyword default. Defaults are maxPostsPerSource=100, maxItems=500, sort="latest". Latest search walks older date windows; source cursor search is unavailable in current anonymous local probes. top is a single source-ranked snapshot of at most 100 roots per query. Watchlists use source cursors. Optional UTC since/until and search language are supported. since is inclusive and until exclusive on a derived sortAt basis for every source kind: normalize source createdAt and indexedAt to UTC milliseconds, then use the earlier instant. This follows the official AppView chronology rule, rather than using indexing time alone. An imported old post keeps its old creation date; a future-created post uses its earlier indexing date. createdAt remains the source creation timestamp in the output and can lie outside this sortAt window; there is no additional createdAt filter. Direct post inputs optionally include source-visible replies to depth 1–3; search/handle roots do not each fetch replies. maxItems is a billable row ceiling including replies.

Output

One unique public post row has postUri, sourceUrl, matched sourceInputs, contact-redacted text, createdAt, indexedAt, langs, like/repost/reply/quote counters, reply parent/root URIs when available, sanitized external URLs, hasMedia, sourceRank, coverage and observedAt. Store the postUri for downstream repeat-run de-duplication. Source ranks are preserved and may not be strict chronological order. Search coverage is non-exhaustive and moderation/deletion affects visible results. A run summary records sources, request/window counts, cap stops, skipped/blocked rows, dateWindowBasis=derived_sort_at, the derivation, oldestObservedSortAt and nextUntil search boundaries; summary is uncharged and saved to SUMMARY in key-value storage.

Charging

$0.0004 per unique delivered post through post-exported; $0.40 per 1000. No actor-specific start charge or free trial. Direct roots and delivered replies are the same event. Collect every requested source into a bounded sanitized row buffer before any delivery or billing; if any required source acquisition fails, fail with zero rows/events. Duplicates, filtered/redacted-to-empty records and uncharged SUMMARY never create events. Sources with a genuine filtered zero receive uncharged source-evidenced SUMMARY entries only if another source delivers posts. If no posts are delivered across the run, fail without charging; abnormal empty or all-source failure also fails.

Limits

256MB, lightweight official read-only HTTP APIs, no login, paid API, proxy, browser or downloads. At most 200 requests with 1-second spacing, 15-second request timeout, 2MiB response cap and 300-second run timeout. Global 1000-row ceiling; paginate handle feeds and bounded date-window search. Compute the next exclusive until directly from the minimum derived sortAt in a returned search window, without subtracting a microsecond. The API does not expose a sortAt field; the timestamp is derived from its required createdAt/indexedAt inputs using the documented AppView rule and millisecond normalization. Timestamp-only paging cannot recover every unseen post tied at that boundary, even when more matches exist; SUMMARY sets timestampBoundaryTiesExhaustive=false and coverageExhaustive=false. A cap stop or empty older window does not prove complete coverage. Repeated cursor/window, nondecreasing boundary or no new unique post fails. Bounded dates do not establish complete mention coverage.

Privacy

No profile names, avatars, bios, follower lists, member IDs, precise locations, emails, phone numbers or credentials are emitted. Post URIs/links are retained only for attribution and deduplication. Text and URLs are screened for contact/secret patterns and @mentions. Moderation-labeled and private/blocked records are excluded. No sentiment or person attribute is inferred.

Source and automation

Uses api.bsky.app public search, author-feed and thread GET endpoints. Its robots explicitly allows crawling. Official API is free; this paid Actor adds managed batching, source-specific paging, privacy guards, deduplication, schedules and export without maintaining your own client. It does not offer secret source access. Price advantage versus current direct Store products is a testable hypothesis, not proof of customer payment. Terms retain user content ownership; fresh independent creation review and private cloud default/nondefault verification are required before release.

If something goes wrong

  • Wrong number or a failed run? Open a ticket on the Issues tab. I read every one and reply within 2 business days (Japan time).
  • You never get a fake "empty" result. If the site can't be read, the run fails and says so.
  • Delivered rows only. One validated unique row is one billable event. Duplicates, summaries, failed acquisition and undelivered rows are not charged.
  • Checked every week. An automatic test runs this tool weekly; if the site changes, I fix it.
  • Public source data only. No login or member/applicant records. Contact patterns are screened before delivery; prose may still name people.

More tools by the same author

All tools (Japan marketplaces, real estate, jobs, racing, prediction markets): https://apify.com/jpmarketdata

Disclaimer

Unofficial, independent tool — not affiliated with, endorsed by, or sponsored by Bluesky. Product names and logos belong to their owners and only say where the data comes from. Data is read from public pages, for market research; check before you act on it.