Twitter/X Search Scraper · Small Jobs & Advanced Queries avatar

Twitter/X Search Scraper · Small Jobs & Advanced Queries

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Twitter/X Search Scraper · Small Jobs & Advanced Queries

Twitter/X Search Scraper · Small Jobs & Advanced Queries

Search public Twitter/X posts and profiles by keyword, hashtag, mention, or documented advanced operator. Export unique results with bounded pagination, clear empty and partial outcomes, and no login or cookies.

Pricing

from $1.50 / 1,000 results

Rating

5.0

(1)

Developer

Data Slayer

Data Slayer

Maintained by Community

Actor stats

1

Bookmarked

513

Total users

80

Monthly active users

9 days ago

Last modified

Share

Search public Twitter/X results by keyword, phrase, hashtag, mention, or documented advanced operator. Export unique posts or profiles with bounded pagination and clear empty or partial outcomes—without providing a Twitter/X login or cookies.

Watch the demo

What this Actor does

Use this Actor for one-off research, small searches, repeatable automations, or larger bounded exports. It supports the existing Top, Latest, People, Photos, and Videos sections. Each run stops at your page or row limit, removes duplicate result IDs within the run, and stores a run summary separately from the billable Dataset.

Search availability and result volume vary by query, section, time, account visibility, and what Twitter/X exposes publicly. A successful empty search is reported honestly; it is not presented as complete historical coverage.

Input

FieldTypeRequiredDefaultPurpose
querystringYesnew yorkKeyword, phrase, hashtag, mention, or advanced query, up to 512 characters.
sectionenumNotopOne of top, latest, people, photos, or videos.
maxPagesintegerNo1Maximum pages to request, from 1 to 100. The legacy key and default are preserved.
maxItemsintegerNounsetOptional cap of 1–10,000 unique Dataset rows.
fromUserstringNounsetConvenience field that appends the documented from: operator.
verifiedOnlybooleanNofalseConvenience field that appends the documented filter:verified operator.

The convenience fields do not add undocumented filters. You can still place supported operators directly in query. If query already contains the same operator, the Actor does not append it again.

Example input

{
"query": "product launch",
"section": "latest",
"maxPages": 3,
"maxItems": 100,
"fromUser": "nasa",
"verifiedOnly": true
}

The effective query is product launch from:nasa filter:verified.

Output

The default Dataset contains one unique search result per row. Existing tweet/profile keys are preserved for compatibility. Fields vary by section and public availability; missing data may be absent or null.

Common tweet fields include:

  • tweet_id, text, created_at, lang, and conversation_id
  • screen_name and nested user_info
  • favorites, retweets, bookmarks, views, replies, and quotes
  • nested entities such as hashtags, mentions, and media

The People section may return profile-shaped rows instead of tweet-shaped rows. The schema therefore remains open to existing section-specific fields. Internal routing, authentication, quota, request, and raw-response metadata are removed from customer rows.

Example JSON row

{
"type": "tweet",
"tweet_id": "1734567890123456789",
"screen_name": "tech_innovator",
"text": "A public product launch update #AI",
"created_at": "Mon Dec 16 14:23:15 +0000 2025",
"favorites": 2847,
"retweets": 456,
"bookmarks": 189,
"views": "87432",
"replies": 34,
"quotes": 12,
"conversation_id": "1734567890123456789",
"lang": "en",
"entities": {
"hashtags": [{"text": "AI", "indices": [31, 34]}],
"user_mentions": [],
"media": []
},
"user_info": {
"screen_name": "tech_innovator",
"name": "Tech Innovator",
"followers_count": 45678,
"verified": true
}
}

Example CSV columns

type,tweet_id,screen_name,text,created_at,favorites,retweets,views,lang
tweet,1734567890123456789,tech_innovator,A public product launch update #AI,Mon Dec 16 14:23:15 +0000 2025,2847,456,87432,en

Nested objects are represented according to Apify's Dataset CSV export behavior. JSON is the canonical format for nested data.

Empty, partial, and failed runs

The Dataset contains customer results only—never status rows. The key-value store record named OUTPUT reports:

  • complete: the Actor reached the end of available pages or a configured bound.
  • empty: the request completed but returned no matching rows.
  • partial: some rows were accepted before a later page, time, request, customer-budget, cancellation, or output boundary stopped the run.
  • failed: no rows were accepted and the request could not complete.

The summary includes pages fetched, request attempts, accepted rows, observed automatic-charge receipts, duplicates skipped, termination reason, and expected billable Dataset rows. It distinguishes matched billing, customer-budget termination, and a reconciliation mismatch that needs review. Pagination tokens are represented only by a short fingerprint.

Reliability and limits

  • Transient rate limits, timeouts, and server errors use bounded retries with jitter and Retry-After when available.
  • Pagination stops on the page limit, unique-row limit, request budget, time budget, missing cursor, or repeated cursor.
  • Duplicate rows are removed by stable result ID within one run.
  • A customer max-total-charge limit stops further Dataset delivery when the Apify SDK reports that the event budget is exhausted.
  • An uncertain Dataset write is not retried automatically; the run stops to avoid duplicating a possibly accepted and charged row.
  • Public, deleted, restricted, private, region-limited, or unavailable content may be missing.
  • Search results—especially Latest and date-bounded queries—may be sparse. The Actor does not promise complete history or a fixed number of matches.
  • This Actor is not affiliated with or endorsed by Twitter/X.

Automation and export

Run the Actor in Apify Console, through the Apify API, on a schedule, or from a webhook-enabled workflow. Download the Dataset as JSON, CSV, or Excel. For repeated monitoring, set a narrow result bound and keep your own durable cross-run deduplication key based on the returned result ID.

Pricing semantics

The primary billable event is one accepted row in the default Dataset. The small Actor-start event covers bounded retrieval work even when a query is sparse or empty. The OUTPUT summary is stored outside the Dataset and is not a result event.

Other Twitter/X Actors by Data Slayer

Support

Create an issue in the Actor's Issues tab with the section, a redacted query example, and the OUTPUT termination reason. Do not include account credentials or private data.

FAQ

How much does it cost to run this Actor? Pricing is listed in the Pricing section above, charged per row returned. You only pay for the rows the Actor actually produces, so a small test run costs cents.

Do I need cookies or a login? No. This Actor reads public data only - no cookies, no account, no browser automation.

Can I schedule it? Yes. Run it from the Apify API, on a schedule, or via a webhook, and export results as JSON, CSV or Excel.

What if I need a slightly different output? Open an issue on the Actor's Issues tab describing the shape you need.

More Twitter actors from the same portfolio. Apify only auto-recommends actors in the same category, so here are the rest of ours:

Actor
Twitter/X Comments Scraper · No Cookies
Twitter/X Community Members Scraper · No Cookies
Twitter/X Engaged Audience Exporter · Replies + Retweeters
Twitter/X Followers Scraper · No Cookies
Twitter/X Following Scraper · Public Profiles
Twitter/X List Members Scraper · No Cookies
Twitter/X Profile Scraper · Bulk Handles, URLs & IDs
Twitter/X Trends Scraper · No Cookies
Twitter/X Tweet Details Scraper · URL or ID
Twitter/X Tweets Scraper · No Cookies