Every release of this Actor, newest first.
Runs with more than 5 targets keep 256 MB, whatever field names them.
Author data no longer includes a follow flag that did not describe the author.
Runs up to maxItems 50 with up to 5 targets use 128 MB & cost less.
Rich output adds hasCommunityNotes , quotedTweetPermalink &
unavailableAuthorId .
Rich media items add sourceUser , the profile that first posted reused media.
The new fields come last. Every other output keeps its rows unchanged.
The benchmark shows 4 rich runs of 2026-09-29, with 63 fields per row.
A run that finds nothing skips run-report , so it costs less in Apify usage.
The README names the Actor as Xquik's X Tweet Scraper, opens with the
benchmark result & explains empty, partial & stopped runs.
The tweetIds description no longer states a 10,000 ID cap. Tweet ID input
has no fixed cap.
An English electric vehicle search replaces the Spanish example task.
The benchmark shows fields per row & names Actors by Apify slug.
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 refused search or missing account no longer sets the status to 0 tweets.
An aborted run starts no new page read.
A from: search counts each account it reads in its status.
An empty from: search with missing accounts now ends as window_empty .
Latest + Top searches under 40 results finish sooner.
A 1-result Latest + Top search returns a Top post when Latest finds none.
Latest + Top searches finish sooner when both return the same post or Top
finds nothing.
A protected from: account no longer adds an error line to the run log. The
run status still reports it.
The README shows a benchmark against 11 tweet Actors, with every run public.
An empty run that checked its whole time window now ends as window_empty .
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.
X pages such as x.com/home or x.com/search no longer count as handles.
The run lists each input it cannot read & says how to fix it.
The run ignores empty startUrls rows.
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.
Tweet ID runs now say how many IDs they could not read.
A run that finds no matching tweets now says it charged no results.
Empty searches, profiles & tweet ID lookups now say what to change.
Some runs that stopped early now say why.
Runs save their progress less often, so they cost less in Apify usage.
Latest + Top searches no longer skip results or end early when 1 mode runs
short.
Latest + Top runs that Apify moves to another server keep the same results.
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.
from: searches that join many accounts with OR finish sooner.
from: searches that join accounts with OR over a recent date range finish
sooner.
The diagnostics now name a missing or protected account in such a search.
If the Actor cannot start, the run now ends with 1 free diagnostic.
Polls of many accounts start more reads at once, so they finish sooner.
Runs with hundreds of targets use less CPU.
Replies runs with a date range skip a second read 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.
Missing or protected accounts no longer make a run partial. The run reads
every other account to the end.
The status & diagnostics count those accounts & say what to do.
Runs over many accounts with a recent date range finish sooner.
Profile Tweets now returns the author's replies to their own posts. It matches
the Posts tab on X for any date range.
A run that fills maxItems no longer reports a time limit.
Large runs with many searches or accounts no longer run out of memory & finish
sooner.
Targets no longer fail when the service runs out of read capacity. 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.
Large runs finish sooner, most of all profile runs with a date window.
Runs that leave reposts out now skip them sooner. That covers from: searches
with dates & tweetTypes.excludeRetweets in profile modes.
When X stops serving a timeline, these runs read fewer pages.
Input & Output tab descriptions now say what each field does.
A search X cannot run now ends at once with a free diagnostic.
The status says what to change, such as a filter to remove or a query to
shorten. Each unavailableTargets entry has the same fix .
X no longer supports filter:vine , filter:consumer_video ,
filter:pro_video , filter:news or retweets_of: . Their inputs now say so.
2 public tasks no longer use filter:news .
Support gets better diagnostics. Rows, charges & the run report stay the same.
Runs stop sooner once the requested number of results is reached.
Short runs finish faster.
Support can now look up every finished run.
Accept more input field names from other tweet Actors. The README lists them.
count now sets the row cap.
URL fields also accept a single URL as text.
Replies mode with a date window now returns more replies from that window.
quickDateRange now sets a date window, such as m1 for 1 month.
An explicit since_time still takes priority.
An invalid value stops the run before any charge.
Likes X hides now report the reason likes_hidden with retryable: false .
Protected accounts no longer add error lines to the run log.
Runs with many searches, handles or URLs finish faster.
Mixed inputs now stop exactly at maxItems .
1.12.126, 2026-09-25 update
Reply reads finish sooner.
Replies X hides no longer mark a post as partial.
A from: search term with dates now leaves out reposts, as X search does. Add
include:nativeretweets to keep them.
Handles & profile URLs now keep reposts, as the Posts tab on X does. Turn on
Exclude reposts to drop them.
Runs recover faster from temporary service delays.
A search near the time limit now keeps the rows it found.
Filters now apply to every term of a search that uses OR .
Languages id , he , fil & nb now return current posts.
The same fix applies to lang: in search queries.
Language id & he runs now keep Indonesian & Hebrew posts.
A search X cannot run now ends quickly with the reason search_unavailable .
The diagnostic suggests how to change the query.
Profile runs finish sooner when X has no more posts.
Profile, List & post page runs now apply within_time & time.withinTime .
The Actor never charges for posts outside the window.
List runs with a date window finish sooner.
The status now names every reason a run stopped early.
The diagnostic lists each cause in stopCauses , with advice.
The status counts failed targets & partly available reply threads.
List runs reach older date windows much faster.
Windows far back in a List may leave out a few replies.
Filtered List runs finish faster.
List runs with a date window stop once the window has passed.
The README explains that until is exclusive.
Fewer runs end as partial when X pauses its results.
Large runs finish sooner, & large reply threads return more replies.
The diagnostic lists unavailable accounts in unavailableTargets .
listIds runs return more List posts.
Post URLs with extra paths, such as /photo/1 , now work.
replyTweetIds , quoteTweetIds , threadTweetIds & similar fields set the
mode on their own.
Add tweetTypes.excludeReplies , excludeRetweets & excludeQuotes . The
Actor never charges for excluded rows.
Mixed inputs run every source & share maxItems .
A search query next to searchTerms runs as 1 more term.
Accept more input field names from other tweet Actors. The README lists them.
An invalid row cap stops the run before any charge.
A run that reaches its reply limit ends as complete.
Stall messages for profile, List & reply runs no longer mention searches.
Aliases no longer clutter the input form.
The status shows how much of a large reply thread X made available.
Stalled searches now end with a clear status message.
Planned stops no longer log errors.
Flat tweet rows now include isPinned .
Flat rows without media now include an empty media list.
Retweets now carry isRetweet & their full text.
Latest keyword searches start faster.
Empty results now show how many rows the filters removed.
Reply runs end as complete once every reply in range is collected.
Reply runs report completion more accurately.
Reply runs recognize posts that have no replies.
Runs use a little less memory.
Support can diagnose slow runs more easily.
Reply runs report partial results more accurately.
Diagnostic rows no longer count as results.
Post lookups use less memory.
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.
Latest searches return more results.
Stalled runs keep their progress.
Date & language filters apply to every paged mode before any charge.
Filtered runs keep reading toward the requested limit.
Date & language filters now apply to profile Posts & With Replies modes.
Run reports are more accurate when fewer results exist than requested.
Stopped runs keep delivered rows & report partial results clearly.
Stalled searches keep partial results & stop without starting over.
Unavailable targets now count as failures, with free & clear diagnostics.
Valid results from other targets stay in the dataset.
Protected accounts now end quickly with a clear, non-retryable diagnostic.
Active runs are no longer cut short while results keep arriving.
Resumed searches keep partial results without duplicates.
Sports cards keep league, team color & winner details.
Run reports count the duplicates removed during a run.
Searches return more unique results before reaching the limit.
Run reports count results separately from diagnostics.
Support can trace runs more easily.
Profile runs with small limits finish faster.
Resumed runs keep their progress.
Long runs use the full configured time limit.
Long runs save results as they arrive.
Rows include repost times when available.
Per-target limits now apply to account searches & Lists.
Runs report completion once every target limit is reached.
Minor fixes improve reliability & speed.
Runs keep their progress after temporary storage errors.
Resumed runs retry failed targets without double charges.
Profile runs recover from temporary errors & keep filters.
Stalled profile runs recover & keep partial results.
Runs recover from temporary errors more reliably.
Tweet URLs now work in lookup, reply, quote, thread & engagement targets.
maxItems now applies to Tweet IDs, Tweet URLs & explicit modes.
Runs stop at the charge limit. Diagnostics stay free.
Failed pages report partial results & keep collected rows.
1.12.64 through 1.12.70, 2026-09-01
The Actor uses a newer runtime & reports peak memory use.
Runs respect every search cap.
Output adds graphic-violence warnings.
High-volume searches return more results.
One result price now applies on every plan. Diagnostics are free.
Long reads continue more reliably.
1.12.35 through 1.12.38, 2026-08-12
Runs start faster & the build is smaller.
Long runs respect platform time limits.
Runs that reach their cap finish faster.
Logs keep customer data private.
The code is simpler. Results & billing stay the same.
Invalid pages now report partial failure.
Resumed runs now read pages the same way as new runs.
Large searches finish faster.
Failed searches report partial failure, not zero matches.
Combined Latest & Top runs finish faster without duplicate charges.
Profile runs report partial failures accurately.
Result limits no longer show as budget warnings.
Time-bounded searches are more reliable.
The default Apify timeout is now 0 , so runs have no time limit.
Runs continue until the cap or until results run out.
Finite timeouts still leave time to save results.
1.12.19 through 1.12.20, 2026-08-10
URL lookups keep results in order.
Runs with several targets finish faster & keep output in order.
Finite timeouts keep rows & 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.
Progress messages no longer show profile, List or Tweet targets.
Logs keep handles, queries, IDs & URLs private.
Warnings no longer include request details.
Latest handle runs are more complete.
Error messages no longer include request details.
Long bulk reads finish before the run's time limit.
Recent searches finish faster.
Diagnostics show the exact Actor version.
Quick restarts resume from the newest saved progress.
Restarted runs never repeat rows or charges.
Migrated runs resume without duplicates.
Reports keep their original totals after a restart.
Filtered recent profile windows return more results.
Small caps no longer slow runs down.
The Console shows grouped filters without duplicates.
Flat filters still work in the API & saved tasks.
Dataset & run report schemas describe every field for AI agents.
Safety stops now report pagination_safety_limit & keep delivered rows.
Partial results report partial_failure .
Run reports count each failed target once.
Time-bounded searches with many terms return more consistent results.
Profile Tweets & With Replies modes return more posts.
Profile results stay free of duplicates.
Searches that keep failing report partial_failure .
Partial rows still count as results.
Run reports count each failed search once.
Searches can now resume after interruptions.
Bare from: searches keep replies.
Account date windows no longer drop valid replies.
Search date windows now return only posts inside the window.
Posts outside the window no longer count toward the limit.
The README recommends the latest build for every integration.
Profile modes return only posts from the requested account.
profileTweets no longer returns reply rows.
Tweet ID lookups finish faster & return every available post.
Lookups leave out duplicate & unrequested IDs.
Real replies take priority over diagnostics at the result cap.
Account date windows finish faster.
Language filters check every returned post.
Results stay free of duplicates across search terms & sort orders.
Searches recover from temporary errors more reliably.
Tweet lookup modes without IDs now accept a search query.
Legacy compact & full output values work again.
With Replies results no longer include posts from other authors.
Fix a denial-of-service issue in a dependency.
Replies mode returns much more complete reply threads.
Replies mode returns direct replies to the requested tweet only.
Incomplete reply targets return a replyCoverage diagnostic.
Complete reply exports allow up to 25,000 rows.
Default runs use rich, flat output with search attribution.
camelCase & snake_case dataset views include reply diagnostics.
Structured filters have their own Console controls.
Mode, output & search order use validated selects.
Compatibility aliases still work in the API without cluttering the form.
Start & Profile URLs accept both documented formats.
Diagnostic-only runs now write run-report before exiting.
Invalid result limits & negative engagement thresholds fail before a run
starts.
New runs no longer prefill an English-only filter.
Dataset schemas list every tweet, author & media field.
Quoted & reposted tweets keep the same public fields.
The README field catalog matches current outputs.
Output no longer includes viewer-only fields.
Fix a security issue in a dependency.
Add dataset views for camelCase, snake_case & diagnostics.
fieldStyle now applies to nested fields.
Aborted runs finish their pending writes before adding a diagnostic.
profileReplies matches the With Replies tab for mode & URL inputs.
Runs continue past filtered or duplicate pages to find later results.
Rich & raw outputs stay consistent on large runs.
The run status now shows the same message as the diagnostic row.
includeSearchTerms: true now tags rows from structured-only searches.
The README explains that profileReplies returns the With Replies tab.
Unsupported mode values return an invalid-input diagnostic.
Other invalid options fall back to safe defaults.
Runs continue past duplicate pages to fill the requested limit.
No-input, invalid-input & empty runs write 1 diagnostic row.
Diagnostic rows carry resultType: "diagnostic" .
URL lists accept plain strings & { "url": "..." } objects.
The README marks profile likes as best effort.
Combined Latest & Top searches return more results.
content.anyWords now matches any of the words.
from & to filters accept a leading @ .
Structured filters work without a raw query.
Raw output includes the raw object in every mode.
Schema & filter descriptions are clearer for AI agents.
Input arrays declare item shapes for AI agents.
README URL examples use { "url": "..." } objects.
Store & README copy say no X API key is needed.
Run reports name the selected mode & count diagnosticRows .
Status messages update only after new rows arrive.
Add explicit mode values for replies, quotes, threads, engagement, profiles,
Lists, lookups & search.
Accept common input aliases, such as urls , usernames & query .
Add richer dataset fields, such as resultType , sourceTweetId & article .
Runs respect the Apify maximum total charge setting.
Schema descriptions are clearer for users & AI agents.
Empty runs write at most 1 diagnostic row.
Tweet lookups & explicit modes share 1 result limit.
Account date-window search terms return more complete results.
maxItems now caps the whole run across Lists & searches.
Timed searches continue past temporary empty pages.
Account & date windows no longer widen unexpectedly.
Busy periods no longer skip pages or search terms.
Search terms accept UTC date-times in since: & until: .
Validation messages for maxItems , lang , within & geocode are clearer.
The dataset schema adds a type enum & nested quoted & reposted fields.
Profile URLs with paths such as /with_replies & /media now work.
A status message says when inputs were capped.
The Information tab links this changelog.
Posts without text no longer break a run.
Empty runs write at most 1 diagnostic row.
Tweet ID input takes up to 10,000 IDs per run.
maxItems defaults to 100.
The default input prefills only startUrls .
Initial release on Apify Store.