Twitter Hashtag Post Scraper
Collect public Twitter posts for up to three keywords or hashtags, including authors, content, media links, timestamps, and engagement metrics.
Overview
Twitter Hashtag Post Scraper turns a small set of keywords or hashtags into structured public-post records that are ready to filter, compare, and analyze. Each record keeps the matched term, search-result category, post and author links, author name, publication time, post text, media links, advertising indicator, and reported engagement counts.
This dataset helps teams move from scattered social posts to a consistent evidence table. It preserves the text and the surrounding context needed to compare conversations, identify visible authors, inspect recurring themes, and understand which collected posts attracted more engagement at the time of collection.
Data notes
Records come from publicly visible Twitter search results and reflect what the collector could access when the run took place. A record represents one collected post associated with one submitted term and search-result category. The same post address is used to remove duplicates across retrieved result pages. Post timestamps retain the source's displayed UTC offset. Reply, retweet, like, and view counts are snapshots reported at collection time and can change afterward; they are preserved as reported text rather than recalculated values. Image links may point to an image or a video thumbnail, and a reported video link may be the same as the post link. Private, deleted, restricted, and sign-in-only content is not covered.
What the results look like
Each record is one collected public post:
| Author name | Post content | Post timestamp | Post URL | Like count | View count |
|---|---|---|---|---|---|
| Republicans against Trump | Flashback — Donald Trump: “If Ivanka weren’t my daughter, perhaps I’d be dating her” — TV host: “Stop it. It's so weird.” #TrumpIsWeird #TBT https://t.co/JOXOCp27Cp | Fri Aug 02 02:17:50 +0000 2024 | https://x.com/RpsAgainstTrump/status/1819195875580629097 | 33371 | 5879786 |
| Ogilvy | How to Write – A memo drafted by David Ogilvy on September 7, 1982, for the management to circulate as they saw fit. #TBT | Thu Sep 03 13:00:20 +0000 2026 | https://x.com/Ogilvy/status/2095497120140665333 | 327 | 13270 |
The output also includes “Matched term,” “Result category,” “Search page URL,” “Author profile URL,” “Image URL,” “Video URL,” “Ad indicator,” “Reply count,” and “Retweet count.”
Use cases
- For hashtag conversation research, group records by “Matched term” and review “Post content” to identify recurring topics, claims, and phrases.
- For visible-author discovery, compare “Author name” and “Author profile URL,” then use “Post URL” to inspect the original public context.
- For engagement comparisons, evaluate “Reply count,” “Retweet count,” “Like count,” and “View count” together instead of treating one interaction measure as the whole response.
- For content-format analysis, compare “Image URL,” “Video URL,” and “Post content” to see which collected posts pair text with reported media.
Scope and boundaries
Each run accepts 1 to 3 keywords or hashtags and up to 200 scroll-downs; retrieval is capped at 10,000 public post records per run.
- Good for
- Use it when you need a structured snapshot of public Twitter posts associated with a small set of keywords or hashtags.
- Use it for hashtag monitoring, content research, author discovery, or engagement comparisons.
- Do not use for
- Do not use it for private, deleted, restricted, or sign-in-only posts because only content visible to the collector is covered.
- Do not use it when complete historical coverage or a guaranteed post count is required because availability can change over time.
Failure handling
Failure and retry behavior declared by the developer. We recommend including it in your system prompt when integrating.
- 1If a run stops before completion, retry the same small input once; if it stops again, use fewer terms or a smaller scroll-down value.
- 2An empty result can mean the term has no visible matching posts or access was temporarily limited; verify the spelling and retry later.
Input
Parameters required to call this App, generated from the input.schema in manifest.json.
- Keywords or hashtags
query_termsRequiredarray<string>Keywords or hashtags to search on Twitter, with one term per item. Enter 1 to 3 terms per run.Itemsup to 3 itemsExample["#tbt"] - Scroll-down count
scroll_down_timesOptionalintegerHow many times to load more search results, from 1 to 200. When omitted, the collector decides the depth; set it explicitly when a predictable depth is important.Range1–200
Output
Field structure of a single record, generated from the output.schema in manifest.json.
- Result category
categorystringSearch-result grouping reported for the post, such as TopPost.ExampleTopPost - Matched term
keywordstringKeyword or hashtag associated with the collected post.Example#tbt - Search page URL
search_page_urlstringTwitter search address from which the post was collected.Examplehttps://twitter.com/search?q=#tbt&src=typed_query&f=top - Post URL
tweet_urlstringDirect address of the collected Twitter post.Examplehttps://x.com/RpsAgainstTrump/status/1819195875580629097
Sample data
Generated from output.schema. Fields without a sample value use structural placeholders.
{
"category": "TopPost",
"keyword": "#tbt",
"search_page_url": "https://twitter.com/search?q=#tbt&src=typed_query&f=top",
"tweet_url": "https://x.com/RpsAgainstTrump/status/1819195875580629097",
"author_name": "Republicans against Trump",
"author_profile_url": "https://x.com/RpsAgainstTrump",
"tweet_timestamp": "Fri Aug 02 02:17:50 +0000 2024",
"tweet_content": "Flashback \n\nDonald Trump: “If Ivanka weren’t my daughter, perhaps I’d be dating her”\n\nTV host: “Stop it. It's so weird.” #TrumpIsWeird #TBT https://t.co/JOXOCp27Cp",
"image_url": "https://pbs.twimg.com/amplify_video_thumb/1819195812393406464/img/KAyMW9OE6elaK1HB.jpg",
"video_url": "https://x.com/RpsAgainstTrump/status/1819195875580629097",
"ad_indicator": "False",
"reply_count": "2818",
"retweet_count": "10855",
"like_count": "33371",
"view_count": "5879786"
}Integration
This App can be integrated via MCP, API, SDK, or file export. All channels share the same capabilities and pricing. Every request authenticates with the Authorization: Bearer header using an API key (long-lived, created in the Data Hub Console); MCP clients can also sign in with OAuth, no key required. More options such as CLI and Skill are on the way. This App runs asynchronously and can be canceled midway: After you cancel, the run stops. Records already delivered are kept and billed.
With the MCP (Model Context Protocol), you can call this App directly from AI clients like Claude and Cursor. Pick your client and auth mode, then copy the config below.
Client config
Replace the value after Bearer with your long-lived API key. Works in any client, CI, or headless environment.
{
"mcpServers": {
"octoparse_datahub": {
"type": "http",
"url": "https://mcp-v2.octoparse.com?pin=YiJacobJohnRaku/twitter-scraper-by-hashtag",
"headers": { "Authorization": "Bearer <YOUR_API_KEY>" }
}
}
}Let AI set it up for you
Don't want to edit configs by hand? Copy the install prompt and paste it into any AI client. It will complete the setup its own way. (The prompt asks the AI to request your API key from you, so credentials never end up in chat history or shared configs.)
detail.access.mcp.composeHint
Pricing
Charged by the number of records successfully returned. Failed runs are not charged.
Multiple billing events accumulate independently. See each item for details. Failed runs are not charged.
View creditsTry it now
Fill in the parameters and run. Results come from a real call.