Twitter (X) Scraper - Tweets, Profiles & Monitor avatar

Twitter (X) Scraper - Tweets, Profiles & Monitor

Pricing

from $2.00 / 1,000 tweet scrapeds

Go to Apify Store
Twitter (X) Scraper - Tweets, Profiles & Monitor

Twitter (X) Scraper - Tweets, Profiles & Monitor

Scrape Twitter / X tweets and profiles by handle or tweet URL — no login, no cookies, no API key. Full tweet text, likes, replies, retweets, views, media, hashtags, mentions, quoted tweets and complete profiles. Monitor mode pulls only new tweets. Export to CSV/JSON/Excel.

Pricing

from $2.00 / 1,000 tweet scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Twitter / X Scraper — Tweets & Profiles (No Login, No API Key)

Scrape Twitter / X the reliable way — by handle or tweet URL — with no login, no cookies, and no API key. Get full tweet text, likes, retweets, replies, quotes and view counts, media (photos & video URLs), hashtags, mentions, links and quoted-tweet context, plus complete profiles (followers, following, bio, verification, location, website, join date). Turn on monitor mode to pull only new tweets on each run.

Built on X's own public syndication data — the same source that powers embedded tweets across the web — so it keeps working when cookie-based and guest-token scrapers break.

Why this Twitter / X scraper?

X removed cheap API access and aggressively rate-limits its logged-out site, so most scrapers rely on auth cookies (which get throttled or banned) or fragile guest-token GraphQL calls (whose query IDs rotate and break). This actor reads X's stable public syndication endpoints instead — no credentials, no breakage.

Cookie / token scrapersThis actor
Login / cookies required⚠️ usually✅ never
API key required⚠️ sometimes✅ never
Breaks when X rotates tokens / bans cookies❌ often✅ stable source
Full tweet text, likes, retweets, replies
View counts (when X exposes them)partial
Media (photo + video URLs), hashtags, mentions, linkspartial
Quoted-tweet context
Full profile (followers, bio, verified, joined…)partial
Monitor mode — only new tweets
Start fee💲 common$0 — never

Use cases

  • Brand & competitor monitoring — track specific accounts and get only their new tweets each run (monitor mode) for engagement, launches and announcements.
  • Social listening & sentiment — pull recent tweets and metrics (likes, retweets, replies, views) for known handles to feed dashboards or LLMs.
  • Tweet lookup & archiving — paste any tweet URL to capture its full data (text, media, metrics, author, quoted tweet) for research, embedding or compliance.
  • Influencer & lead research — profile data (followers, bio, website, verification) to qualify creators, brands and prospects.
  • LLM / AI pipelines — clean, structured JSON ready for summarization, classification and RAG.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the Twitter / X Scraper, add one or more handles (e.g. NASA) and/or tweet URLs, and click Start.
  3. Watch tweets and profiles stream into the dataset table (switch between the Tweets and Profiles views).
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"handles": ["NASA", "Tesla"],
"tweetUrls": ["https://x.com/NASA/status/2068333045510291908"],
"includeProfile": true,
"includeTweets": true,
"includeReplies": false,
"maxTweetsPerProfile": 20,
"onlyTweetsNewerThan": "7 days",
"monitorMode": false
}
  • handles — usernames (with/without @) or profile URLs. Each returns the profile + recent tweets.
  • tweetUrls — individual tweet (status) URLs or numeric IDs → full tweet data.
  • startUrls — any mix of profile/tweet URLs (auto-detected).
  • includeProfile / includeTweets (default true) — choose profile records, tweets, or both.
  • includeReplies (default false) — include the account's replies in its timeline.
  • maxTweetsPerProfile (default 20) — X's public timeline exposes roughly the latest 20 tweets per profile.
  • onlyTweetsNewerThan"7 days", "24 hours", "3 months", or an ISO date.
  • monitorMode (default false) — only new tweets / changed profiles (see below).

Output

One record per tweet (type: "tweet") and one per profile (type: "profile"):

{
"type": "tweet",
"id": "2068333045510291908",
"url": "https://x.com/NASA/status/2068333045510291908",
"text": "The official FIFA World Cup ball went to space! …",
"createdAt": "2026-06-20T14:00:00.000Z",
"lang": "en",
"favoriteCount": 24314,
"retweetCount": 3120,
"replyCount": 982,
"quoteCount": 145,
"viewCount": 4200000,
"isReply": false,
"isQuote": false,
"hashtags": [],
"mentions": [],
"links": [],
"media": [{ "type": "photo", "url": "https://pbs.twimg.com/media/….jpg" }],
"mediaCount": 1,
"authorHandle": "NASA",
"authorName": "NASA",
"authorVerified": true,
"authorFollowers": 92134498,
"source": "twitter",
"scrapedAt": "2026-06-23T16:00:00.000Z"
}
{
"type": "profile",
"handle": "NASA",
"url": "https://x.com/NASA",
"name": "NASA",
"bio": "Making the seemingly impossible, possible. ✨",
"followersCount": 92134498,
"followingCount": 119,
"tweetsCount": 74138,
"verified": true,
"isBlueVerified": true,
"location": "",
"website": "https://t.co/9NkQJKAVks",
"createdAt": "2007-12-19T20:20:32.000Z",
"profileImageUrl": "https://pbs.twimg.com/profile_images/….jpg"
}

Empty fields are omitted, so CSV/Excel exports have no always-blank columns.

Monitor mode — only new tweets

Turn on monitorMode and the actor remembers every tweet it has emitted (by ID) and every profile's follower/tweet counts. On the next run it returns only new tweets (and profiles whose counts changed, tagged monitorStatus). This runs independently of Apify Schedules — schedule the actor hourly/daily and each run delivers a clean diff, ideal for account-tracking and new-tweet alerts. Use distinct monitorStoreName values to track separate account sets.

Automate & schedule

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/twitter-scraper').call({
handles: ['NASA', 'Tesla'],
maxTweetsPerProfile: 20,
monitorMode: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} tweets & profiles`);

Integrate with any app

  • Make — multi-step automation scenarios.
  • Zapier — push new tweets into Sheets, Slack or your CRM.
  • Slack — get notified when a monitored account tweets.
  • Google Drive / Sheets — auto-export every run.
  • Airbyte — pipe results into your warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. Call this actor from Claude, ChatGPT, or any agent framework via the Apify MCP server — e.g. "get NASA's latest tweets and summarize the engagement."

More scrapers from scrapesage

Build a complete social & web data stack:

Tips

  • Recent tweets: the actor fetches and merges several public timeline windows per account to assemble its recent tweets (typically ~20–50, depending on how active the account is), capped by maxTweetsPerProfile. It does not do keyword search or full historical backfill (those require logged-in scraping, which breaks).
  • Track accounts cheaply: combine monitorMode with a daily Schedule to collect each account's new tweets over time.
  • Protected / suspended accounts return no data — those tweets/profiles are simply skipped.
  • View counts are included when X exposes them (most often on individual tweets fetched by URL); they can be absent on older timeline tweets.
  • Proxies: the default Apify Proxy is fine; no residential proxy is required.

FAQ

Do I need a Twitter/X account, cookies, or an API key? No. The actor reads X's public syndication data — no login, no cookies, no key.

Can I search tweets by keyword? No. This scraper targets specific handles and tweet URLs (the reliable public path). Keyword search requires a logged-in session, which is fragile.

How many tweets per profile? The actor merges several public timeline windows to assemble the account's recent tweets — typically ~20–50 depending on activity, capped by maxTweetsPerProfile. Use monitorMode + a schedule to accumulate more over time.

How do I get a single tweet's data? Put its URL (or numeric ID) in tweetUrls — you'll get the full tweet including media, metrics, views and author.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically via the Google Drive integration.

Is scraping Twitter/X legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and X's terms.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.