X.com (Twitter) Profile Scraper avatar

X.com (Twitter) Profile Scraper

Pricing

from $0.30 / 1,000 tweet scrapeds

Go to Apify Store
X.com (Twitter) Profile Scraper

X.com (Twitter) Profile Scraper

Scrape tweets from any X profile by handle, profile URL, or user ID. Pay per tweet ($0.30/1k base). Optional add-ons: full author profile, thread expansion, media downloads.

Pricing

from $0.30 / 1,000 tweet scrapeds

Rating

0.0

(0)

Developer

LurkAPI

LurkAPI

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

Scrape every tweet from any X.com (formerly Twitter) profile. Paste a handle, a profile URL, or a numeric user ID and get clean structured data straight to your spreadsheet, CRM, or dashboard. No X account, no login, no coding needed.

๐Ÿฆ What it does

Give it any X profile and this tool pulls that account's tweets:

  • Handles or profile URLs: paste elonmusk or https://x.com/openai to pull that account's timeline.
  • Numeric user IDs: paste 44196397 when you already have the internal ID (handles can change, IDs cannot).

For every tweet you get:

  • The full text (no 280-character truncation on long-form notes)
  • Author handle, display name, avatar, and verification badges
  • Likes, retweets, replies, quotes, bookmarks, view count
  • Attached photos and videos (turn on the download add-on to save the files)
  • Hashtags, mentions, and expanded URLs
  • Nested quoted tweet and retweeted tweet, when present
  • Precise creation timestamp in ISO 8601

๐Ÿ“‹ How to use it

Step 1: Pick your inputs

  • X handles or profile URLs: one per line in the Handles box.
  • Numeric user IDs: one per line in the User IDs box.

You can mix both in one run.

Step 2: Set sort and limits

  • Sort: Latest for chronological (fastest, cheapest), Top for most engaged first, Media for a media-only feed.
  • Max tweets per profile: default 40, raise to pull more per profile.
  • Max tweets per run: hard cap across every profile in the run. Default 100 to protect against surprise bills.

Step 3: (Optional) Filter your results

Every filter is off by default (except Exclude replies which defaults to ON to keep the timeline clean).

  • Date range: keep only tweets between a From and To date.
  • Language: dropdown with every supported language.
  • Minimum likes, retweets, replies, or views: drop tweets below your threshold.
  • Exclude replies / retweets: keep the timeline clean.
  • Only tweets with media, images, videos, or links: keep only tweets matching a media type.

Filters are free. Tweets dropped by a filter are never billed.

Step 4: (Optional) Add-ons

Every add-on is OFF by default. Each is billed only when it returns a real result. Failed lookups cost nothing.

  • Full author profile: for every unique author in the run, fetch the full profile: followers, following, bio, self-set location, website, joined date, tweet count, banner image, verification badges. Billed once per unique handle across the run (100 tweets from one account = 1 charge).
  • Expand threads: when a tweet is part of a conversation, pull sibling tweets in the thread. Attached as threadTweets[] on the row.
  • Download media files: save every photo and video into your run's key-value store. You get a signed download link (kvUrl) on each media item. Billed once per tweet that had at least one file downloaded.

Step 5: Run

Click Start. Rows stream into the Output tab as each page finishes, so you do not have to wait for the whole run.

๐Ÿ“Š What you get

Every row is one tweet from one of the profiles you gave. Five tabs group the fields by what you probably care about:

TabWhat is in it
๐Ÿ“‹ OverviewStatus, tweet ID, URL, handle, text, date, top counts, source profile
๐Ÿฆ TweetsFull spread: all six engagement counts, type flags, hashtags, mentions, links
๐Ÿ“Š EngagementOnly the numeric counts, ready for sorting or charting
๐Ÿ‘ค AuthorsAuthor profile columns (populated when the Full author profile add-on is on)
๐Ÿ–ผ๏ธ MediaTweets that have media. Signed download link per file when the download add-on is on

Export from the Output tab as JSON, CSV, or Excel.

Every row has a status field. Success means the row is good. Anything else is a human-readable message explaining what happened (handle not found, account suspended, X infrastructure under load). Rows that did not succeed are never billed.

๐Ÿ’ฐ Pricing

You only pay for what you get. Every event is billed per result.

EventRateWhen it fires
Tweet scraped$0.30 / 1,000Once per successful tweet row
Author profile enrichment$3.00 / 1,000Once per unique author successfully resolved
Thread expansion$10.00 / 1,000Once per unique thread expanded
Media download$2.00 / 1,000Once per tweet with at least one file saved

๐Ÿ’ก Good to know

  • Long text is never truncated. Long-form notes come back in full, unlike some competitors that cut off at 280 characters.
  • View count is populated on retweets and quoted tweets too, not just originals.
  • URL forms accepted: x.com/user, twitter.com/user, mobile.x.com/user, and https://x.com/user/ all work.
  • userId inputs: Top and Media sort require a handle, so those fall back to Latest when the input is a numeric userId. The dataset row still returns the same author fields either way.
  • Media files are stored in your Apify key-value store. How long they are kept depends on your Apify plan.
  • Rows appear in real time. Open the Output tab while the run is still going and start pulling data.

For developers

Call this actor through the Apify API:

{
"handles": ["elonmusk", "sama", "openai"],
"userIds": ["44196397"],
"maxItems": 500,
"maxTweetsPerProfile": 100,
"sortBy": "Latest",
"minLikes": 100,
"language": "en",
"excludeReplies": true,
"enrichAuthor": true,
"downloadMedia": true
}

Every input field is optional except that you must provide at least one of handles or userIds.

โ“ FAQ

Why is viewCount null on some tweets? X started exposing view counts publicly in December 2022. Tweets posted before that date do not have a view count on their API record, so the field comes back null.

Why is author.location empty? author.location is the free-text Location field the user typed into their own profile. Many users leave it blank. X does not expose the "Account based in" country panel data on public API endpoints, so we cannot fill it in for you.

Why did my run return zero rows? Possible reasons: the profile is protected, the account is suspended or deleted, your filters are too strict (try loosening the date range or minimum counts), or you set Exclude replies ON for an account that only ever replies to other users.

Can I search for tweets across multiple accounts by keyword? Not with this actor. Use our X.com Tweet Scraper for keyword search and tweet URL inputs.

Can I use my own X cookies? No. This actor does not accept user cookies.

How long are downloaded media files stored? Files land in your Apify key-value store. Retention depends on your Apify plan.

๐Ÿ”— Other tools you might like

โš–๏ธ Disclaimer

This tool is intended for personal, research, and educational use. You are responsible for complying with X.com's Terms of Service and applicable laws in your jurisdiction. The developer is not liable for misuse. Data availability depends on X at run time.

Keywords: twitter profile scraper, x.com profile scraper, tweets from user, user tweet scraper, twitter timeline scraper, x api alternative, no login twitter scraper