VOOZH about

URL: https://apify.com/maximedupre/twitter-scraper

⇱ Twitter (X) Scraper Β· Apify


Pricing

from $0.20 / 1,000 twitter/x results

Go to Apify Store

Twitter (X) Scraper

The best Apify Twitter (X) scraper. It offers a variety of filter options without needing any account credentials.

Pricing

from $0.20 / 1,000 twitter/x results

Rating

0.0

(0)

Developer

πŸ‘ Maxime DuprΓ©

Maxime DuprΓ©

Maintained by Community

Actor stats

1

Bookmarked

119

Total users

44

Monthly active users

8 days ago

Last modified

Share

Find Twitter/X posts, profiles, and trending topics

Twitter Scraper helps you search Twitter/X for public posts about a topic, brand, person, or trend, discover matching public profiles through People search, and export current trending topics for a verified region. Start with the prefilled Search query, keep Maximum items at 25, and review matching posts in minutes.

  • βœ… Flexible post discovery - combine post search URLs, search syntax, authors, mentions, hashtags, dates, language, location, media, link, and engagement filters in one run.
  • βœ… Profile search - discover matching Twitter/X accounts from one or more People search queries with profile identity, bio, counts, and ranking provenance.
  • βœ… Conversation context included - keep quoted-post context and reply relationships when X exposes them, so each match is easier to review.
  • βœ… Search-mode control - choose newest-first latest results, X top-search ordering, or Latest + Top with post-ID dedupe.
  • βœ… Trending topics - export current Twitter/X trends for Worldwide or a verified country-level region without scraping posts for each trend.
  • βœ… Small first run - one search filter plus a low Maximum items cap is enough to test the search before you widen it.
  • βœ… Partial-result guardrail - later-page failures can still return rows already collected.

⚑️ TRY IT FOR FREE


πŸ† Benefits

  • πŸ” Turn manual Twitter/X searching into a repeatable export you can hand to analysts, founders, or ops workflows.
  • πŸ”— Keep canonical post URLs and IDs so your team can review, join, or dedupe results later.
  • πŸ‘€ Build profile discovery lists from query-ranked Twitter/X account matches, with each row tied back to the submitted query.
  • 🧠 Feed raw text, timestamps, authors, and engagement counts into your own scoring, alerts, or AI prompts.
  • πŸ’¬ Preserve quoted-post and reply-to context when X exposes it, so downstream review keeps more conversation context.
  • πŸ›Ÿ Keep useful rows even when a later page fails, instead of losing everything from the run.

πŸš€ Quick start

  1. Open the Input tab and keep Search query as the prefilled openai, paste a supported post search URL, or replace it with your own query.
  2. Keep What to collect set to Search posts for post rows, switch to Search profiles and add one or more People search queries, or switch to Trending topics and choose a verified Trend region.
  3. Keep Include original posts, Include quote posts, and Include replies on. Leave Include reposts off unless you also want reposts without added text.
  4. Keep Search mode set to Latest posts for newest-first results, switch it to Top posts for X top-ranked ordering, keep the date fields empty unless you need a time window, and set Maximum items across the whole run to 25 for a small first run.
  5. Run the actor, then review the dataset rows in the finished run or through the API.

βš™οΈ Features

  • πŸ”Ž Runs post searches from supported X/Twitter search, profile, list, and status URLs, or from a query plus authors, mentions, hashtags, dates, language, location, media, link, and engagement filters.
  • πŸ‘€ Searches Twitter/X profiles from query text and emits flat profile rows with profile identity, public bio fields, follower/following counts, ranking position, and scrape time when X exposes them in People search.
  • πŸ“ˆ Emits current trending-topic rows for Worldwide or verified country-level regions.
  • 🧾 Emits flat post rows with text, author identity, timestamps, engagement metrics, media URLs, hashtags, quote/reply context, author counts, verification fields, language, source, and search provenance.
  • 🧭 Switches between latest-style results, X top-search ordering, and Latest + Top with post-ID dedupe.
  • πŸŽ›οΈ Lets you include or exclude original posts, reposts, quote posts, and replies.
  • 🩹 Keeps rows even when some X fields are unavailable.
  • πŸ“š Keeps dataset order aligned with the selected search mode.

πŸ“Š Output

See the full Output tab for the complete contract.

Search Posts runs emit post rows. Search Profiles runs emit profile rows. Trending Topics runs emit trend rows; the actor does not mix post, profile, and trend rows in one dataset.

Example

{
"postId":"2042296046009626989",
"postUrl":"https://x.com/OpenAI/status/2042296046009626989",
"postText":"Our existing $200 Pro tier still remains our highest usage option. And as a thank you to our existing Pro users on the $200 tier, we’re extending our 2x Codex usage promo (until May 31st) and we’ve reset your Codex rate limits (yes, again).",
"postDateTime":"2026-04-09T17:38:16.000Z",
"authorHandle":"OpenAI",
"authorDisplayName":"OpenAI",
"authorAvatarUrl":"https://pbs.twimg.com/profile_images/1885410181409820672/ztsaR0JW_normal.jpg",
"nbLikes":5231,
"nbReposts":291,
"nbReplies":366,
"nbViews":765606,
"nbBookmarks":440,
"imageUrls":[],
"videoUrls":[],
"hashtags":[],
"quotedPostId":"2042295688323875316",
"quotedPostText":"We’re updating our ChatGPT Pro and Plus subscriptions to better support the growing use of Codex.\n\nWe’re introducing a new $100/month Pro tier. This new tier offers 5x more Codex usage than Plus and is best for longer, high-effort Codex sessions. \n\nIn ChatGPT, this new Pro tier still offers access to all Pro features, including the exclusive Pro model and unlimited access to Instant and Thinking models.\n\nTo celebrate the launch, we’re increasing Codex usage for a limited time through May 31st so that Pro $100 subscribers get up to 10x usage of ChatGPT Plus on Codex to build your most ambitious ideas.",
"quotedAuthorHandle":"OpenAI",
"replyToHandle":null,
"replyToPostId":null,
"quoteCount":128,
"language":"en",
"source":"Twitter Web App",
"conversationId":"2042296046009626989",
"inReplyToUserId":null,
"isPinned":false,
"authorId":"4398626122",
"authorFollowersCount":10942000,
"authorFollowingCount":3,
"authorIsVerified":true,
"authorIsBlueVerified":true,
"authorVerifiedType":"Business",
"searchQuery":"openai",
"sourceUrl":null,
"sourceType":"searchQuery",
"resultPosition":1
}

Params

FieldTypeDescription
postIdstring or nullX post ID when available.
postUrlstring or nullCanonical X post URL when available.
postTextstring or nullRaw post text.
postDateTimestring or nullPost timestamp in ISO 8601 format.
authorHandlestring or nullAuthor handle without @.
authorDisplayNamestring or nullAuthor display name.
authorAvatarUrlstring or nullAuthor avatar image URL.
nbLikesnumber or nullLike count.
nbRepostsnumber or nullRepost count.
nbRepliesnumber or nullReply count.
nbViewsnumber or nullView count.
nbBookmarksnumber or nullBookmark count.
imageUrlsstring[]Image media URLs from the post.
videoUrlsstring[]Video media URLs from the post.
hashtagsstring[]Hashtags extracted from the post.
quotedPostIdstring or nullQuoted post ID when the result quotes another post.
quotedPostTextstring or nullQuoted post text when available.
quotedAuthorHandlestring or nullQuoted post author handle when available.
replyToHandlestring or nullReplied-to handle when the post is a reply.
replyToPostIdstring or nullReplied-to post ID when available.
quoteCountnumber or nullQuote count when available.
languagestring or nullX language code when available.
sourcestring or nullPosting client/source when available.
conversationIdstring or nullX conversation ID when available.
inReplyToUserIdstring or nullReplied-to user ID when available.
isPinnedboolean or nullPinned flag when available.
authorIdstring or nullX author user ID when available.
authorFollowersCountnumber or nullAuthor follower count when available.
authorFollowingCountnumber or nullAuthor following count when available.
authorIsVerifiedboolean or nullAuthor verified flag when available.
authorIsBlueVerifiedboolean or nullAuthor blue-verified flag when available.
authorVerifiedTypestring or nullVerification type when available.
searchQuerystring or nullSearch query or derived X syntax that produced the row.
sourceUrlstring or nullInput URL that produced the row, when applicable.
sourceTypestring or nullSource kind, such as searchQuery or profileUrl.
resultPositionnumber or null1-based position within that source search.

Trending topic row params

FieldTypeDescription
rowTypetrendIdentifies a trending-topic row.
trendNamestringTrend name returned by Twitter/X.
trendRanknumberPosition in the selected region's trend list.
trendQuerystring or nullSearch query associated with the trend when exposed.
trendSearchUrlstring or nullSearch-ready X URL for posts about the trend.
tweetVolumenumber or nullTweet volume when Twitter/X exposes it.
regionIdstringVerified trend-region ID used for the run.
regionNamestringVerified trend-region name used for the run.
regionCountrystringCountry or global label for the region.
regionCountryCodestring or nullISO country code, or null for Worldwide.
scrapedAtstringTime the trend list was scraped, in ISO 8601 format.

Profile row params

FieldTypeDescription
rowTypeprofileIdentifies a profile-search row.
profileIdstring or nullX profile ID when exposed in the profile search result.
profileUrlstring or nullCanonical X profile URL.
twitterUrlstring or nulltwitter.com profile URL.
handlestring or nullProfile handle without @.
displayNamestring or nullProfile display name.
biostring or nullBio text when exposed in the search result.
locationstring or nullPublic profile location when exposed in the search result.
avatarUrlstring or nullProfile avatar image URL.
bannerUrlstring or nullProfile banner image URL when exposed in the search result.
followersCountnumber or nullFollower count when exposed in the search result.
followingCountnumber or nullFollowing count when exposed in the search result.
postsCountnumber or nullPublic post count when exposed in the search result.
likesCountnumber or nullPublic like count when exposed in the search result.
isVerifiedboolean or nullVerification flag when exposed in the search result.
pinnedPostIdsstring[]Pinned post IDs when exposed in the search result.
searchQuerystringSubmitted profile search query that produced the row.
resultPositionnumber1-based position within that submitted profile search query.
scrapedAtstringTime the profile search run scraped the row, in ISO 8601 format.

πŸ› οΈ Input

Example

{
"postSearchUrls":["https://x.com/search?q=openai"],
"searchQuery":"from:OpenAI codex",
"fromUsers":["OpenAI"],
"language":"en",
"searchMode":"latestAndTop",
"startDate":"2026-03-15",
"maxNbItemsToScrape":25
}
{
"target":"searchProfiles",
"profileSearchQueries":[
"AI researcher",
"developer tools founder"
],
"maxNbItemsToScrape":25
}

Params

ParamTypeDescriptionDefault / empty behavior
targetsearchPosts / searchProfiles / trendingTopicsChoose whether the run emits post rows, profile rows, or trending-topic rows.Defaults to searchPosts.
trendRegionIdstringVerified Twitter/X trend region for Trending Topics runs.Defaults to Worldwide.
profileSearchQueriesstring[]People search queries for Search Profiles runs.Empty means unused unless target is searchProfiles.
postSearchUrlsstring[]Supported X/Twitter search, profile, list, or status URLs for Search Posts runs.Empty means unused. Status URLs search for posts quoting that status.
searchQuerystringPlain text or X/Twitter advanced search syntax for Search Posts runs.Empty means unused.
mentionsstring[]Require posts that mention these handles. Do not include @.Empty means unused.
fromUsersstring[]Require posts from these handles. Do not include @.Empty means unused.
hashtagsstring[]Require these hashtags. Do not include #.Empty means unused.
toUsersstring[]Require posts addressed to these handles. Do not include @.Empty means unused.
shouldIncludeOriginalPostsbooleanKeep original posts in the output.Defaults to true.
shouldIncludeRepostsbooleanKeep reposts without added text in the output.Defaults to false.
shouldIncludeQuotePostsbooleanKeep quote posts in the output.Defaults to true.
shouldIncludeRepliesbooleanKeep replies in the output.Defaults to true.
linksinclude / onlyLinks / onlyWithoutLinksInclude all posts, only posts with links, or only posts without links.Defaults to include.
mediainclude / onlyMedia / onlyImages / onlyVideosInclude all posts, only media posts, only image posts, or only video posts.Defaults to include.
searchModelatest / top / latestAndTopUse latest-style results, X top-search ordering, or both with post-ID dedupe.Defaults to latest.
startDatestringOnly include posts on or after this ISO 8601 or YYYY-MM-DD value.Empty searches from 30 days before run start.
endDatestringOnly include posts on or before this ISO 8601 or YYYY-MM-DD value.Empty leaves the upper bound open.
languagestringRestrict the search to a language code such as en.Empty means unused.
nearstringX location text such as San Francisco.Empty means unused.
withinstringRadius such as 15mi or 25km, usually paired with near.Empty means unused.
geocodestringRaw X geocode syntax such as 37.776,-122.417,10km.Empty means unused and takes priority over near/within.
placeIdstringX place ID filter.Empty means unused.
maxIdstringOnly include posts at or before this X post ID.Empty means unused.
sinceIdstringOnly include posts after this X post ID.Empty means unused.
minLikesintegerOnly include posts with at least this many likes.Empty means unused.
minRepliesintegerOnly include posts with at least this many replies.Empty means unused.
minRetweetsintegerOnly include posts with at least this many reposts.Empty means unused.
maxNbItemsToScrapeintegerMaximum number of dataset rows to emit.Defaults to 0, which emits all matching rows after filtering and ordering.
shouldIncludePromotedPostsbooleanKeep promoted search results in the output.Defaults to false.

Important

  • Search Posts runs must provide at least one positive selector: postSearchUrls, searchQuery, mentions, fromUsers, hashtags, or toUsers.
  • Supported post search URLs are X/Twitter search URLs, profile URLs, list URLs, and status URLs. Status URLs search for posts quoting that status; they do not fetch a single post or thread.
  • Unsupported non-empty X/Twitter URLs stop cleanly before scraping so users can fix the input.
  • Search Profiles runs must provide at least one profileSearchQueries value. They emit one row per matched People search result and do not scrape profile timelines, followers, following, or profile-about pages.
  • Trending Topics runs use verified region choices only and do not automatically scrape posts for each trend.
  • At least one of shouldIncludeOriginalPosts, shouldIncludeReposts, shouldIncludeQuotePosts, or shouldIncludeReplies must stay true.
  • Latest mode emits newest-first results. Top mode preserves X top-search ordering. Latest + Top runs both and dedupes by post ID.
  • maxNbItemsToScrape: 0 emits all matching rows after filtering and ordering.
  • You only provide search filters. Account rotation and proxy selection stay managed inside the actor.

πŸ” Error handling

  • Invalid input combinations fail before any Twitter/X requests start. This includes runs with no positive selector, runs with all four content-type switches turned off, or date windows where the start date is after the end date.
  • If the actor cannot initialize the required Apify proxy path, the run fails before sending live Twitter/X traffic.
  • When Twitter/X rejects or exhausts one internal account, the actor rotates to another account and retries the page when possible.
  • If Twitter/X cannot complete the first search page after bounded recovery, the run completes gracefully with 0 rows and a clear status so users are not charged for missing output.
  • If a later page fails after rows were already collected, the run still finishes successfully with partial results and a concise status message explaining the early stop.

Changelog

  • 0.3: Added post search URLs, advanced search query support, Latest + Top search, link/media/location filters, richer flat post fields, and cleaner handled input stops for unsupported X URLs.
  • 0.2: Added Search Profiles for query-based Twitter/X profile discovery with flat profile rows and search provenance.
  • 0.1: Added Trending Topics, verified trend regions, grouped target-specific inputs, 256 MB runtime default, and pay-per-event pricing.

πŸ†˜ Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫑


πŸ”— Other actors

  • Reddit Scraper - Search Reddit posts and comments to track conversations around a topic or brand.
  • Product Hunt Scraper - Turn Product Hunt launches into lead-ready rows with optional website enrichment.
  • Website Emails Scraper - Turn any list of websites into one row per discovered contact email.
  • Uneed Scraper - Collect Uneed launches with maker links, ranks, and optional website emails.
  • Tiny Startups Scraper - Export Tiny Startups listings with promoted-listing control and optional email enrichment.
  • TinySeed Scraper - Scrape the TinySeed portfolio into company rows with descriptions and optional website emails.

Made with ❀️ by Maxime Dupré

You might also like

Facebook Page Email Scraper Pro

jurassic_jove/facebook-page-email-scraper-pro

Extract business emails, phones & contact info from Facebook pages. Visits each business website for a 40-60% email hit rate, follows link aggregators (Linktree, Beacons, etc.), and enriches every lead with AI-powered niche detection, lead scoring, and outreach insights.

X (Twitter) Advanced Search Tweet Scraper 𝕏

mikolabs/x-twitter-advanced-search-tweet-scraper

Twitter/X scraper is Lightning-fast in 3 sec 20 tweets with 60+ advanced filters. Extract tweets by engagement, media, users, keywords, time, and location. Supports Latest/Top sorting, threads, quotes, and polls. Returns profiles, media URLs, engagement stats, and metadata.

188

5.0

Twitter / X Scraper

rupom888/twitter-scraper

Instagram Posts, Comments & Profiles Scraper

parseforge/instagram-scraper

Collect Instagram posts, comments, hashtag content, and profile data in minutes. Perfect for competitor tracking, creator research, engagement analysis, trend monitoring, and exporting structured Instagram data for reports, dashboards, and recurring social media workflows.

Tiktok Email Scraper

jurassic_jove/tiktok-email-scraper

Extract verified emails, phones & social links from TikTok creator profiles. The only TikTok scraper that visits each creator's website to find hidden contact info. Perfect for influencer outreach, lead gen & brand partnerships. $0.02/lead.

Google Ads & Webhook Alerts

opalescent_bird/google-ads-transparency-monitor

Track competitor Google Ads 4x cheaper and faster. Get automated webhook alerts on new launches and calculate ad longevity.

πŸ‘ User avatar

Khas-Erdene Tsogtsaikhan

2

X / Twitter Email Scraper

scrapapi/x-twitter-email-scraper

Search & Scrape Social Media Posts by Keyword

mrscrap/search-scrape-social-media-posts-by-keyword

Search any keyword and instantly scrape social media posts from TikTok, YouTube, Reddit, Instagram, Facebook, Twitter/X, and LinkedIn. Extracts likes, comments, and shares β€” no API keys needed. Filter by country, language, and date range.