Twitter/X Profile & Tweet Scraper
Pricing
from $1.50 / 1,000 results
Twitter/X Profile & Tweet Scraper
Scrape Twitter/X profiles and tweets without API key: followers, bio, tweet text, retweets, likes, replies, media links, hashtags. No login needed. Ideal for social listening, brand monitoring, influencer research, sentiment analysis.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
cloud9
Maintained by CommunityActor stats
0
Bookmarked
218
Total users
37
Monthly active users
15 hours ago
Last modified
Categories
Share
Scrape Twitter/X profiles and tweets without API key: followers, bio, tweet text, retweets, likes, replies, media links, hashtags. No login needed. Ideal for social listening, brand monitoring, influencer research, sentiment analysis.
Use cases
- Track an account's tweets and engagement without API costs
- Monitor competitor or brand activity on X
- Collect a profile's timeline for sentiment analysis
- Benchmark follower growth across accounts
- Archive tweets from key accounts on a schedule
Input
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
handles | array | Yes | ["elonmusk"] | List of Twitter/X usernames to scrape (without the @ symbol). |
maxTweets | integer | No | 20 | Maximum number of tweets to extract per profile. |
includeReplies | boolean | No | false | Whether to include reply tweets in the results. |
Example input
{"handles": ["elonmusk"],"maxTweets": 20,"includeReplies": false}
Output
Each dataset item looks like this β real output from an actual run of this Actor:
{"handle": "WWE","name": "WWE","bio": "| Raw: Mondays at 8e/5p on Netflix | NXT: Tuesdays at 8e/7c on The CW | SmackDown: Fridays at 8e/7c on USA Network","followersCount": 13255851,"followingCount": 376,"tweetCount": 370142,"verified": true,"profileImageUrl": "https://pbs.twimg.com/profile_images/1383079031805972485/3sWoMX-R_400x400.jpg","tweets": [{"id": "2097479752428748879","text": "RT @WWENXT: #AndStill π\n\n@kelani_wwe is STILL the NXT Women's Champion! https://t.co/WIx881kdnu","createdAt": "Wed Sep 09 00:18:36 +0000 2026","retweetCount": 222,"likeCount": 0,"replyCount": 0,"url": "https://twitter.com/WWE/status/2097479752428748879","hashtags": ["AndStill"],"mediaUrls": ["https://pbs.twimg.com/media/HRu-eXsWUAA-SRD.jpg"]},{"id": "2097506561568452714","text": "Don't miss the Triple Threat No. 1 Contender's Match NEXT WEEK! π https://t.co/aM2z6p5rWD","createdAt": "Wed Sep 09 02:05:08 +0000 2026","retweetCount": 169,"likeCount": 1378,"replyCount": 15,"url": "https://twitter.com/WWE/status/2097506561568452714","hashtags": [],"mediaUrls": ["https://video.twimg.com/amplify_video/2097506506878996481/vid/avc1/1920x1080/2pdOfzbFAjfyY0DI.mp4?tag=16"]}],"scrapedAt": "2026-09-09T13:21:43.011Z"}
| Field | Type |
|---|---|
handle | string |
name | string |
bio | string |
followersCount | number |
followingCount | number |
tweetCount | number |
verified | boolean |
profileImageUrl | string |
tweets | array of object β each with id, text, createdAt, retweetCount, likeCount, replyCount, url, hashtags, mediaUrls |
scrapedAt | string |
Results are exportable from Apify Console or the API as JSON, CSV, Excel, or XML.
How to run it
In Apify Console β open the Actor, fill in the input form, click Start, then download the results from the Dataset tab.
With the JavaScript client
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('cloud9_ai/twitter-scraper').call({"handles": ["elonmusk"],"maxTweets": 20,"includeReplies": false});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
With the Python client
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('cloud9_ai/twitter-scraper').call(run_input={"handles": ["elonmusk"],"maxTweets": 20,"includeReplies": False})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
With the API β POST https://api.apify.com/v2/acts/cloud9_ai~twitter-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN with the input JSON as the body.
Notes and limits
- No API key, account, or login is needed β just the input above.
maxTweetscaps how much a single run collects, which is also what caps the run's cost.- Requests are paced and failed requests are retried automatically, so runs stay inside the source's rate limits.
- Only publicly available data is collected. How you use the output is your responsibility, including the source's terms of use and any applicable data-protection law.
Support
Found a bug, or need a field that isn't in the output? Open an issue on the Issues tab of this Actor in Apify Console. Issues there are read and answered.
License
Apache-2.0