🏯 Tweet Scraper V2 (Pay Per Result) - X / Twitter Scraper avatar

🏯 Tweet Scraper V2 (Pay Per Result) - X / Twitter Scraper

Try for free

Pay $0.40 for 1,000 tweets

Go to Store
🏯 Tweet Scraper V2 (Pay Per Result) - X / Twitter Scraper

🏯 Tweet Scraper V2 (Pay Per Result) - X / Twitter Scraper

apidojo/tweet-scraper
Try for free

Pay $0.40 for 1,000 tweets

⚡️ Lightning-fast search, URL, list, and profile scraping, with customizable filters. At $0.30 per 1000 tweets, and 30-80 tweets per second, it is ideal for researchers, entrepreneurs, and businesses! Get comprehensive insights from Twitter (X) now!

TL;DR

Our twitter actor supports all of the Twitter queries and this is the suggested way to use it. If you want to leverage Twitter Queries, you need to use only the searchTerms input.

You can also check your queries on Twitter web UI using search. Just paste your queries there and check the output. The scraper supposed to fetch what you see.

Here are some examples:

Fetching the tweets of a profile

Since Twitter returns ~800 tweets for each search, you need to divide your run into several search queries using since and until alongside with from. This way, the scraper will initiate 11 runs for each month that can get max ~800 tweets each. If you think that profile tweets more than ~800 a month, you need to increase the timeframes to weeks or even to days.

1{
2    "includeSearchTerms": false,
3    "onlyImage": false,
4    "onlyQuote": false,
5    "onlyTwitterBlue": false,
6    "onlyVerifiedUsers": false,
7    "onlyVideo": false,
8    "searchTerms": [
9        "from:NASA since:2023-01-01 until:2023-02-01",
10        "from:NASA since:2023-02-01 until:2023-03-01",
11        "from:NASA since:2023-03-01 until:2023-04-01",
12        "from:NASA since:2023-04-01 until:2023-05-01",
13        "from:NASA since:2023-05-01 until:2023-06-01",
14        "from:NASA since:2023-06-01 until:2023-07-01",
15        "from:NASA since:2023-07-01 until:2023-08-01",
16        "from:NASA since:2023-08-01 until:2023-09-01",
17        "from:NASA since:2023-09-01 until:2023-10-01",
18        "from:NASA since:2023-10-01 until:2023-11-01",
19        "from:NASA since:2023-11-01 until:2023-12-01"
20    ],
21    "sort": "Latest",
22    "tweetLanguage": "en"
23}

Fetching replies of a tweet with specific hashtag

1{
2    "includeSearchTerms": false,
3    "onlyImage": false,
4    "onlyQuote": false,
5    "onlyTwitterBlue": false,
6    "onlyVerifiedUsers": false,
7    "onlyVideo": false,
8    "searchTerms": [
9        "conversation_id:tweet_id_here #hashtag_here"
10    ],
11    "sort": "Latest",
12    "tweetLanguage": "en"
13}

Some More

  • Tweets from @Nasa with all types of media except images
    • from:NASA filter:media -filter:images
  • Mentions of either "puppy" or "kitten", AND with mentions of either "sweet" or "cute", excluding Retweets, with at least 10 likes
    • (puppy OR kitten) (sweet OR cute) -filter:nativeretweets min_faves:10

Please refer to https://github.com/igorbrigadir/twitter-advanced-search to get more informaton about Twitter Queries.

Important Note

Please note that using our actor for monitoring activies is not allowed. In other words: you should not try to initiate the same run in a very short period of time with time filters in order to understand if a profile tweeted or not or to see if there are any new tweets for a specific keyword/location etc. The actor's main purpose is to fetch historical tweets, not monitor profiles in real time. If you do this, you will get rate-limited automatically and banned very shortly if you continue doing this.

Besides monitoring, these rules also apply:

  • You can have max 1 run concurrently (max 5 queries batched) and you need to have a couple of minutes between your runs.
  • You need to fetch at least 50 tweets per query (handle, search keyword, etc). If you are batching several of them, you need to increase this. Let's say, if you are fetching 5 handles at the same time, you have to fetch 250 tweets. Please avoid using undetermenistic queries. This is very important and you will get automatically banned. If you fetch less than 50 tweets, the cost of that query becomes greater than the profit and we make a negative margin.
  • Fetching a single tweet (with tweet URL) is strictly forbidden unless you get a permission from us. Please get in touch first via Discord or email if you want to fetch single tweets.

🏯 Tweet Scraper: Last Tweet Scraper you will ever need 🏯

Introducing Tweet Scraper, the ultimate Twitter data retrieval tool available at x.com. It boasts unmatched speed and comprehensiveness, providing lightning-fast search, URL, and profile scraping options, all complemented by a wide range of filters for tailored data extraction. Whether you're a researcher in need of extensive Twitter data for analysis or a business seeking insights into customer sentiment and trends, Tweet Scraper is your ideal companion. And the best part? It's priced at just $0.30 per 1000 tweets, with the capability to scrape 30-80 tweets per second!

ℹ️ Disclaimer

We are people who are experts on data extraction. This actor is overly optimized for Tweet Scraping and we offer you an extensive set of tools. Not just that, but, we offer high maintenance and perfect support. No bullsh*t - just data. You name it, we get it.

🐉 Features and Functionality

  • Incredibly speedy, highly efficient, and suitable for all types of applications.
  • Query Wizard: Create queries effortlessly without requiring knowledge of complex search terms.
  • A wide array of filters at your disposal, including options for timeframes, targeting, and more.
  • In-depth user information for thorough data analysis.
  • Support for multiple languages to accommodate global requirements.
  • Precise data pinpointing through geo-targeting and geolocation support.

🆓 Demo Mode & Free Users

The users that are on Free Plan can use the actor only on Demo Mode. Please keep in mind that the users that are on Free Plan can retrieve a maximum of 10 items, and cannot use the actor via API. If you want to use this actor without any limitation, you have to subscribe to a paid plan on Apify. You can check this link to subscribe easily.

👹 Competitors

Well, this is the place where we should go crazy. But we don't. Try it, and you will see the difference. Please be aware that although all the tests used identical inputs and resources, the recorded speeds and costs may differ and might not accurately reflect the real metrics.

Feature🏯 Tweet ScraperMicroworlds Twitter ScraperQuacker Twitter-scraper
Working Twitter Search✔️✔️✔️
Query Wizard✔️
Search Data RangeUnlimitedUnlimitedN/A
Price Per 100k Results (Tweet URL)$30$150$9.56
Price Per 100k Results (Profile)$30$150$2.25
Price Per 100k Results (Profile with Filtering)$30$150N/A
Price Per 100k Results (Search)$30$150N/A
Tweets Per Second (URL)64247
Tweets Per Second (Profile)581315
Tweets Per Second (Search)4914N/A
Pricing Plan$0.30 per 1k results$1 per 1k resultsPay for Usage
Maximum Tweets Per Input Limit✔️✔️✔️
Maximum Tweets Total Limit✔️✔️
Maximum Profiles Scraped Limit✔️✔️
Language Detection✔️✔️
Collect Detailed User Info✔️✔️✔️
Scrape Specific Profiles✔️✔️✔️
Scrape From Tweet URLs✔️✔️✔️
Scrape From Twitter List URLs✔️✔️
Advanced User Information✔️✔️
Advanced Filtering Options in Interface✔️✔️
Date Range Interface✔️✔️✔️
Maximum Attempts✔️✔️
No Proxy Required✔️✔️

🎎 Who needs this?

Tweet Scraper is designed to provide exceptional efficiency, speed, and cost-effectiveness for a diverse range of users:

  • For those engaged in extensive link or user scraping tasks, such as Data Analysts, Tweet Scraper is engineered to effortlessly handle large data volumes, offering a highly efficient and budget-friendly solution.
  • If you're passionate about detailed, filtered user scraping, Tweet Scraper's robust filtering capabilities enable you to precisely extract the most relevant data, catering to Data Enthusiasts.
  • Researchers can rely on Tweet Scraper to conduct comprehensive search scraping, enabling them to unearth valuable insights from deep within the data.
  • Entrepreneurs with time-sensitive tasks benefit from Tweet Scraper's lightweight design and swift startup, ensuring prompt access to the required data.

While Tweet Scraper excels in handling these large-scale tasks, it's also a great tool for smaller projects due to its adjustable settings and scalability. Regardless of the size of your task, Tweet Scraper is built to deliver.

🍜 Output Example

1{
2	"type": "tweet",
3	"id": "1728108619189874825",
4	"url": "https://x.com/elonmusk/status/1728108619189874825",
5	"twitterUrl": "https://twitter.com/elonmusk/status/1728108619189874825",
6	"text": "More than 10 per human on average",
7	"retweetCount": 11311,
8	"replyCount": 6526,
9	"likeCount": 104121,
10	"quoteCount": 2915,
11	"createdAt": "Fri Nov 24 17:49:36 +0000 2023",
12	"lang": "en",
13	"quoteId": "1728107610631729415",
14	"bookmarkCount": 702,
15	"isReply": false,
16	"card": {},
17	"place": {},
18	"source:": "Twitter for Android",
19	"author": {
20		"type": "user",
21		"userName": "elonmusk",
22		"url": "https://x.com/elonmusk",
23		"twitterUrl": "https://twitter.com/elonmusk",
24		"id": "44196397",
25		"name": "Elon Musk",
26		"isVerified": true,
27        "isBlueVerified": true,
28        "verifiedType": "business",
29		"hasNftAvatar": false,
30		"profilePicture": "https://pbs.twimg.com/profile_images/1683325380441128960/yRsRRjGO_normal.jpg",
31		"coverPicture": "https://pbs.twimg.com/profile_banners/44196397/1690621312",
32		"description": "",
33		"location": "",
34		"followers": 172669889,
35		"following": 538,
36		"protected": false,
37		"status": "",
38		"canDm": false,
39		"canMediaTag": false,
40		"advertiserAccountType": "promotable_user",
41		"analyticsType": "enabled",
42		"createdAt": "Tue Jun 02 20:12:29 +0000 2009",
43		"entities": {
44			"description": {
45				"hashtags": [],
46				"symbols": [],
47				"urls": [],
48				"user_mentions": []
49			}
50		},
51		"fastFollowersCount": 0,
52		"favouritesCount": 42455,
53		"geoEnabled": false,
54		"hasCustomTimelines": true,
55		"hasExtendedProfile": true,
56		"isTranslator": false,
57		"mediaCount": 2002,
58		"profileBackgroundColor": "C0DEED",
59		"statusesCount": 37933,
60		"translatorTypeEnum": "None",
61		"withheldInCountries": [],
62		"affiliatesHighlightedLabel": {
63			"label": {
64				"url": {
65					"urlType": "DeepLink",
66					"url": "https://twitter.com/X"
67				},
68				"badge": {
69					"url": "https://pbs.twimg.com/profile_images/1683899100922511378/5lY42eHs_bigger.jpg"
70				},
71				"userLabelType": "BusinessLabel",
72				"userLabelDisplayType": "Badge",
73				"description": "X"
74			}
75		}
76	},
77	"extendedEntities": {},
78	"isRetweet": false,
79	"isQuote": true,
80	"quote": {
81		"type": "tweet",
82		"id": "1728107610631729415",
83		"text": "The posts on 𝕏 gets ~ 100 billion impressions every day.\n\n https://t.co/AuF1KStCFf",
84		"retweetCount": 646,
85		"replyCount": 789,
86		"likeCount": 3983,
87		"quoteCount": 2493,
88		"createdAt": "Fri Nov 24 17:45:35 +0000 2023",
89		"lang": "en",
90		"bookmarkCount": 127,
91		"author": {
92			"type": "user",
93			"userName": "cb_doge",
94			"url": "https://x.com/cb_doge",
95			"twitterUrl": "https://twitter.com/cb_doge",
96			"id": "1389913567671975937",
97			"name": "DogeDesigner",
98			"isVerified": true,
99            "isBlueVerified": true,
100            "verifiedType": "business",
101			"hasNftAvatar": false,
102			"profilePicture": "https://pbs.twimg.com/profile_images/1498070100393754625/C2V-fbll_normal.jpg",
103			"coverPicture": "https://pbs.twimg.com/profile_banners/1389913567671975937/1707664307",
104			"description": "UX/UI & Graphic Designer at Dogecoin & MyDoge Inc./ 𝕏 Creator",
105			"location": "Dogecoin.com",
106			"followers": 441904,
107			"following": 867,
108			"protected": false,
109			"status": "",
110			"canDm": true,
111			"canMediaTag": false,
112			"advertiserAccountType": "promotable_user",
113			"analyticsType": "disabled",
114			"createdAt": "Wed May 05 12:03:43 +0000 2021",
115			"entities": {
116				"url": {
117					"urls": [
118						{
119							"display_url": "MyDoge.com",
120							"expanded_url": "http://MyDoge.com",
121							"indices": [
122								0,
123								23
124							],
125							"url": "https://t.co/E0fsFaNdeI"
126						}
127					]
128				},
129				"description": {
130					"hashtags": [],
131					"symbols": [],
132					"urls": [],
133					"user_mentions": []
134				}
135			},
136			"fastFollowersCount": 0,
137			"favouritesCount": 70660,
138			"geoEnabled": true,
139			"hasCustomTimelines": true,
140			"hasExtendedProfile": true,
141			"isTranslator": false,
142			"mediaCount": 10987,
143			"profileBackgroundColor": "F5F8FA",
144			"statusesCount": 24918,
145			"translatorTypeEnum": "None",
146			"withheldInCountries": [],
147			"affiliatesHighlightedLabel": {
148				"label": {
149					"url": {
150						"urlType": "DeepLink",
151						"url": "https://twitter.com/MyDogeOfficial"
152					},
153					"badge": {
154						"url": "https://pbs.twimg.com/profile_images/1656530956801523719/SC7nEKMa_bigger.png"
155					},
156					"userLabelType": "BusinessLabel",
157					"userLabelDisplayType": "Badge",
158					"description": "MyDoge Wallet"
159				}
160			}
161		},
162		"extendedEntities": {
163			"media": [
164				{
165					"additional_media_info": {
166						"monetizable": false,
167						"graphql_source_user": {
168							"user": {
169								"legacy": {
170									"id_str": "1389913567671975937",
171									"screen_name": "cb_doge",
172									"name": "DogeDesigner",
173									"profile_image_url_https": "https://pbs.twimg.com/profile_images/1498070100393754625/C2V-fbll_normal.jpg",
174									"verified": false,
175									"protected": false,
176									"can_dm": true,
177									"can_media_tag": false
178								}
179							}
180						}
181					},
182					"display_url": "pic.twitter.com/AuF1KStCFf",
183					"expanded_url": "https://twitter.com/cb_doge/status/1727821969343533149/video/1",
184					"ext_media_availability": {
185						"status": "Available"
186					},
187					"id_str": "1727821919171313664",
188					"indices": [
189						59,
190						82
191					],
192					"media_key": "13_1727821919171313664",
193					"media_url_https": "https://pbs.twimg.com/amplify_video_thumb/1727821919171313664/img/t2oLSNoW4igyatu6.jpg",
194					"original_info": {
195						"width": 1920,
196						"height": 1080,
197						"focus_rects": []
198					},
199					"sizes": {
200						"large": {
201							"w": 1920,
202							"h": 1080
203						}
204					},
205					"source_status_id_str": "1727821969343533149",
206					"source_user_id_str": "1389913567671975937",
207					"type": "video",
208					"url": "https://t.co/AuF1KStCFf",
209					"video_info": {
210						"aspect_ratio": [
211							16,
212							9
213						],
214						"duration_millis": 3566,
215						"variants": [
216							{
217								"url": "https://video.twimg.com/amplify_video/1727821919171313664/pl/aGHTtMOSK_JQx9Q1.m3u8?tag=14&container=cmaf",
218								"content_type": "application/x-mpegURL"
219							},
220							{
221								"url": "https://video.twimg.com/amplify_video/1727821919171313664/vid/avc1/480x270/EkwZuvHPaMbH7O1a.mp4?tag=14",
222								"content_type": "video/mp4",
223								"bitrate": 288000
224							},
225							{
226								"url": "https://video.twimg.com/amplify_video/1727821919171313664/vid/avc1/640x360/0XXJiF8kImc0SNUN.mp4?tag=14",
227								"content_type": "video/mp4",
228								"bitrate": 832000
229							},
230							{
231								"url": "https://video.twimg.com/amplify_video/1727821919171313664/vid/avc1/1280x720/VvbDj9laYWdX1dfX.mp4?tag=14",
232								"content_type": "video/mp4",
233								"bitrate": 2176000
234							}
235						]
236					},
237					"allow_download_status": {
238						"allow_download": true
239					}
240				}
241			]
242		}
243	},
244	"media": []
245}

🍚 Input Parameters

FieldTypeDescriptionDefault value
startUrlsarrayTwitter (X) URLs. Paste the URLs and get the results immediately. Tweet, Profile, Search or List URLs are supported.[]
searchTermsarraySearch terms you want to search from Twitter (X). You can refer to this documentation.[]
twitterHandlesarrayTwitter handles that you want to search on Twitter (X)[]
conversationIdsarrayConversation IDs that you want to search on Twitter (X)[]
tweetLanguageStringRestricts tweets to the given language, given by an ISO 639-1 code.null
maxItemsnumberMaximum number of items that you want to receive as outputInfinity
onlyVerifiedUsersBooleanIf selected, only returns tweets by users who are verified.false
onlyTwitterBlueBooleanIf selected, only returns tweets by users who are Twitter Blue subscribers.false
onlyImageBooleanIf selected, only returns tweets that contain images.false
onlyVideoBooleanIf selected, only returns tweets that contain videos.false
onlyQuoteBooleanIf selected, only returns tweets that are quotes.false
authorStringReturns tweets sent by the given user. It should be a Twitter (X) Handle.null
inReplyToStringReturns tweets that are replies to the given user. It should be a Twitter (X) Handle.null
mentioningStringReturns tweets mentioning the given user. It should be a Twitter (X) Handle.null
geotaggedNearStringReturns tweets sent near the given location.null
withinRadiusStringReturns tweets sent within the given radius of the given location.null
geocodeStringReturns tweets sent by users located within a given radius of the given latitude/longitude.null
placeObjectIdStringReturns tweets tagged with the given place.null
minimumRetweetsNumberReturns tweets with at least the given number of retweets.null
minimumFavoritesNumberReturns tweets with at least the given number of favorites.null
minimumRepliesNumberReturns tweets with at least the given number of replies.null
startStringReturns tweets sent after the given date.null
endStringReturns tweets sent before the given date.null
includeSearchTermsBooleanIf selected, a field will be added to each tweets about the search term that was used to find it.false
customMapFunctionStringFunction that takes each of the objects as argument and returns data that will be mapped by the function itself. This function is not intended for filtering, please don't use it for filtering purposes or you will get banned automatically.null

🔧 Troubleshooting

  • Getting Few Results? Check "Maximum number of items on output" (maxItems) field, and "Maximum charged results" fields. These two fields enable you to handle the total number of results. Leaving both empty will result infinite results.
  • Are Some Outputs Missing? Ensure that you review all fields, not just the overview. You can navigate to the "Storage" tab and select either "Download the results" or "Open in a New Tab."
  • Getting No Results? Confirm that your parameters are not overly restrictive.
  • Incomplete Tweet Collection? Keep in mind that sensitive or spam-filtered comments may not be accessible for scraping. Additionally, in a surface-level run, replies to replies might not be included in the collected data.
  • Not Receiving New Tweets After a Large Batch? Examine the log for messages like "Logging is too fast, some lines were skipped." If you encounter this issue, consider scraping smaller amounts of data to avoid it.

📞 Contact and Feature Requests

If you need any sort of support, please send an email to apidojo10@gmail.com. You name it, we get it.

🈴 Other Actors you might want to check

Discord Verifications

  • Misτer_Cole ττ - 🫡
Developer
Maintained by Community

Actor Metrics

  • 1.9k monthly users

  • 358 stars

  • 91% runs succeeded

  • 3 hours response time

  • Created in Nov 2023

  • Modified 6 hours ago