Every change to this Actor, with its date.
2026-10-05: Runs of under 5 IDs or handles end with a tip to batch them.
2026-10-04: A run on a renamed handle now saves the replies X shows for it.
2026-10-04: A run whose posts all ended writes next-cursors only when it
keeps its report, so small runs cost less.
2026-10-04: The Actor version in diagnostics & run reports is now the Apify
build number.
2026-10-04: A run no longer stops early when an upload's answer is lost. Its
rows are charged once.
collectionStrategy: "hiddenReplies" returns the replies a post's author hid.
Each one is a hiddenReply row at the usual row price.
Every run uses 256 MB again, which is faster & more reliable for small runs.
When Xquik stays busy, each retry waits longer than the last.
If Xquik stays busy too long, that target fails & the run says why.
Busy answers are never charged.
A run with rich output keeps its run-report.
A run near its time limit stops before a read it can't finish.
A run that started late says how long it waited, out of its time limit.
Requests to Xquik never follow a redirect, so the key stays with Xquik.
A run waits out a brief Xquik outage instead of failing.
Rows saved before an outage stay saved & are charged once.
Runs sorted by likes or oldest, or with nested scope, keep 256 MB.
Runs with more than 5 targets keep 256 MB, whatever field names them.
Runs up to maxItems 50 with up to 5 targets use 128 MB & cost less.
New outputMode: "rich" keeps every full column & adds hasCommunityNotes ,
quotedTweetPermalink , unavailableAuthorId & media sourceUser .
Full, the default, & every other output keep their rows unchanged.
The README names the Actor as Xquik's X Reply Scraper & adds a how-to & FAQ.
The README says the prefilled form returns up to 1,000 rows, as the form sets.
Runs sorted by most liked stop once X's most liked replies fill the limit.
Runs with a reply author skip a second read after the first one finished.
A run that finds nothing skips run-report , so it costs less in Apify usage.
Runs under 34 results cost less in Apify usage, with no progress saves.
An aborted run's status counts its saved results, even during a slow upload.
A missing post or account no longer counts as a failure. The status names it &
says to check the handle, ID or URL.
Posts from 2006 to 2010 now get their replies, from a URL or an ID.
During a run, the status shows how many results it has collected so far.
The status says when the run waits to retry.
The new alwaysSaveRunRecords input keeps run-report on every run.
URLs without https:// , such as x.com/nasa , now work.
Post URLs in capitals & Article URLs now read that post's replies.
A post URL with a broken ID no longer reads its author's replies.
Profile URLs whose handle is all digits, such as x.com/1234567 , now work.
The run lists each input it cannot read & says how to fix it.
With nothing to read, the run writes a free diagnostic with the fix.
Runs open their dataset while they read X, so they finish sooner.
Small runs that go well skip run-report , so they cost less in Apify usage.
The run status now says why the run stopped, with its charged results &
targets.
Runs that stop on their input now name the diagnostics output in their status.
Runs that stop for missing or unusable input cost less in Apify usage.
Support now sees a finished run even while the service is busy.
Runs with a time limit keep a little more time to finish.
Runs with a time limit now stop in time & keep their results.
Large runs save their progress faster.
The run status now says where to find its diagnostics.
If the Actor cannot start, the run now ends with 1 free diagnostic.
Runs with hundreds of targets use less CPU.
Runs with a date range skip recovery reads that found nothing.
A date range with no replies now ends empty, not as a partial run.
Runs now start collecting results sooner, so small runs finish faster.
Filling maxItems no longer logs errors for targets the run did not need.
A run that fills maxItems no longer reports a time limit.
Large runs use less memory.
Targets no longer fail when Xquik is busy. The Actor waits & tries again until
its time limit.
A page the service answers slowly in busy hours now arrives instead of timing
out.
Support can now see where each run spends its time.
Targets no longer fail when the service is busy. The Actor waits a few seconds
& tries again until its time limit.
Input & Output tab descriptions now say what each field does.
The README now focuses on what you get & how to run it.
Runs finish sooner when every reply to a post is already collected.
Support can now look up every finished run.
Runs with many posts or profiles finish faster.
1.2.74, 2026-09-25 update
Small reply threads finish much faster.
The status says how many replies X hides. It no longer asks for a rerun.
A run with a time window ends as complete once it reads that window.
Runs recover faster from temporary service delays.
A slow page now ends in time & keeps its rows.
1.2.73, 2026-09-25 update
A post that cannot be fully read keeps its rows & ends as partial.
Runs wait the right time before retrying an empty answer.
Partial posts no longer count as failed targets or log errors.
Languages id , he , fil & nb now keep their replies.
1.2.73, 2026-09-23 update
The status now names every reason a run stopped early.
The diagnostic lists each cause in stopCauses , with advice.
1.2.73, 2026-09-20 update
Brief stalls on the first page no longer end a run as incomplete.
Large & old threads read much faster.
The status shows how much of a large thread X made available.
Runs end as complete once every reply in range is collected.
Runs report completion more accurately.
Runs finish sooner once every reply is collected.
Runs recognize posts that have no replies.
Find replies to posts inside larger conversations.
Unrelated conversation branches stay out of the results.
Interrupted runs report partial results accurately.
Output field descriptions are clearer, including location & verification.
The input form shows targets, limits & common filters first.
Output tabs & dataset views show the most useful fields first.
Full & nested reply scopes return more complete threads.
Scope, depth, sort & author filters apply before result limits.
Reply depth stays correct when filters remove parent replies.
Runs keep reading toward the requested limit after a stall.
Stalled or failed pages mark the run as partial.
Runs recover replies after a stall & keep collected rows.
Stalled runs still save their report.
Run reports are more accurate when fewer results exist than requested.
Sports cards keep league, team color & winner details.
Failed targets & interrupted runs report consistently.
Resumed runs keep collected results.
Rows include repost times when available.
Dataset views show time columns.
Minor fixes improve reliability & speed.
Runs keep their progress after temporary storage errors.
Resumed runs retry failed targets without double charges.
Runs recover from temporary errors more reliably.
Restarted runs keep every unique reply.
The Actor finds nested replies under non-root posts more reliably.
Partial rows, caps & saved progress stay intact.
Incomplete runs no longer report that every reply was found.
Searches with no results now recover replies another way.
Filters & result limits stay the same.
1.2.32 through 1.2.54, 2026-09-01
The Actor uses a newer runtime & reports peak memory use.
Rows keep reaction context.
One result price now applies on every plan. Diagnostics are free.
Nested replies stay in the results.
1.2.27 through 1.2.30, 2026-08-12
Runs start faster & the build is smaller. Long runs respect time limits.
1.2.25 through 1.2.26, 2026-08-12
Runs that reach their cap stop sooner & report accurately.
The code is simpler. Results & billing stay the same.
Profile reply runs finish faster.
Large reply threads finish faster.
Failed runs report partial failure, not zero results.
A timeout of 0 runs to the cap or until results run out.
Finite timeouts still leave time to save results.
The code is simpler. Caps & billing stay the same.
Runs with several targets finish faster & keep output in order.
Finite timeouts keep replies & write a deadline_reached report.
Run logs show clearer timing details. Results & billing stay the same.
Run logs show clearer timing details. Results & billing stay the same.
Logs keep handles, queries, IDs & URLs private.
Error messages no longer include request details.
The run report schema shows the published Actor version.
Quick restarts resume from the newest saved progress.
Restarted runs never repeat replies or charges.
Migrated runs resume without duplicates.
Reports keep their original totals after a restart.
Dataset & run report schemas describe every field for AI agents.
Store listings use 1 consistent description.
The form shows the main reply controls only.
Aliases still work in JSON, API & task inputs.
Small profile runs sorted by relevance stop once they reach the limit.
Sparse & filtered profile runs keep reading until they have enough replies.
Profile reply runs return more replies.
Profile results stay free of duplicates.
Runs can now resume after interruptions.
The README recommends the latest build for every integration.
Direct & nested scopes work in form runs.
Direct reply runs that return no rows now recover more replies.
Media & X Premium reply filters are stricter.
Rows mark the original post & the collection mode.
Input checks & empty-run guidance are clearer.
No-input & invalid-input runs keep their run reports.
Add flat default output & a snake_case dataset view.
Rewrite all 50 public example tasks.
Diagnostic-only runs now write run-report before exiting.
Add post URL, Tweet ID, profile URL & username targets.
Add direct, nested, all-reply & thread modes.
Add reply depth, parent links, root IDs & source attribution.
Add relevance, latest, oldest & most-liked sorting.
Add text, author, language, engagement, media & date filters.
Add compact, full, raw, nested, flat, camelCase & snake_case output.
Add deduplication, spend limits, diagnostics & run reports.
Resume a target with startCursor .