💬 Comment threads — every scraped hashtag post is expanded into its full comment thread. Each comment ships as a child row (author, text, reaction count, reply count, ISO date + unix timestamp) and is also embedded in the post row's comments array.
↩️ Nested replies — depth-1 replies for each comment via Depth1CommentsListPaginationQuery, streamed as their own child rows (type = reply) and inside each comment's replies array.
📅 onlyCommentsNewerThan — keep only comments and replies inside an absolute or relative recency window.
🔑 fbCookie convenience input — paste one c_user=..; xs=.. string instead of two fields; xs/fbCookie are secret.
🧾 Billing unchanged — one charge per parent post; comment/reply rows are uncharged and also mirrored to a per-run comments-<runId> dataset.
✅ All original post fields, input keys and the pay-per-event row_result charge are preserved (strict superset of the base actor).
0.2.0
🛡️ Reliability overhaul — the actor no longer crashes (FAILED run) on missing/expired cookies or a locked account. It now finishes SUCCEEDED and writes a single, clearly-labelled diagnostic record explaining exactly what to fix. This keeps the actor's success rate high and stops it being auto-flagged "under maintenance" by Apify's daily test.
🌐 Sticky residential networking — authenticated Facebook sessions now run on one stable residential IP for the whole run instead of bouncing across datacenter/residential IPs. This is what Facebook's anti-abuse system expects and dramatically reduces "suspicious activity" account locks.
🔒 Account-checkpoint detection — if Facebook has locked the account, the actor detects it instantly and reports it instead of looping.
✅ Cookies are still required to collect posts, but are no longer hard-required in the schema, so the run always finishes cleanly with an actionable message.
0.1.0
🎉 Initial release of Facebook Hashtag Search Scraper.