Pricing
from $4.12 / 1,000 instagram post or reel saveds
Instagram Hashtag Scraper
Scrape public Instagram hashtag posts and reels by hashtag, including captions, authors, metrics, media URLs, mentions, and hashtags.
Pricing
from $4.12 / 1,000 instagram post or reel saveds
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Scrape public Instagram hashtag posts and reels by hashtag. Get post URLs, shortcodes, captions, usernames, public engagement signals, media thumbnails, video URLs when available, parsed hashtags, parsed mentions, and scrape timestamps.
Use this actor when you need a repeatable dataset of public Instagram hashtag content for campaign monitoring, influencer discovery, UGC tracking, trend analysis, or social listening workflows.
What does Instagram Hashtag Scraper do?
Instagram Hashtag Scraper opens public Instagram hashtag pages and collects visible post and reel cards from the rendered page. For each result, it saves the content URL, media type, caption text, creator username, profile URL, public media preview URLs, visible engagement counts, hashtags, mentions, and metadata about the scrape.
It is designed for lightweight monitoring of public hashtag pages. You provide one or more hashtags, choose the maximum number of results per hashtag, and export the dataset from Apify in JSON, CSV, Excel, XML, RSS, or HTML.
Who is it for?
- π£ Social media managers tracking campaign hashtags and UGC.
- π§βπΌ Influencer marketers finding creators who post about a niche.
- ποΈ E-commerce teams monitoring product and brand hashtags.
- π§ͺ Market researchers collecting examples of public Instagram content.
- π§° Automation builders feeding Instagram hashtag results into CRM, sheets, BI, or AI workflows.
- π° Trend analysts watching topics, memes, challenges, and recurring phrases.
Why use this scraper?
- β Collect multiple hashtags in one run.
- β Export structured data instead of copying Instagram cards manually.
- β Capture captions, hashtags, and mentions for text analysis.
- β Save direct post/reel URLs for follow-up review.
- β Use Apify integrations, schedules, webhooks, API, and MCP tools.
- β Keep test inputs small and scale up only when you need more records.
What Instagram data can I extract?
| Field | Description |
|---|---|
hashtag | Hashtag searched in the run. |
postUrl | Direct Instagram post or reel URL. |
shortcode | Instagram shortcode from the URL. |
mediaType | post, reel, or unknown. |
caption | Visible caption text from the hashtag card. |
authorUsername | Public username displayed on the card. |
authorProfileUrl | Direct Instagram profile URL for the author. |
thumbnailUrl | Public image thumbnail where visible. |
displayUrl | Public media preview URL where visible. |
videoUrl | Direct video URL when Instagram exposes one in the grid. |
likesCount | Visible like count when available. |
commentsCount | Reserved for public comment counts when visible. |
viewsCount | Visible reel view count when available. |
timestamp | Reserved for timestamps when available in public page data. |
hashtags | Hashtags parsed from the caption. |
mentions | Mentions parsed from the caption. |
sourceUrl | Hashtag page URL used for scraping. |
scrapedAt | ISO timestamp for the scrape. |
How much does it cost to scrape Instagram hashtags?
This actor uses pay-per-event pricing. There is a small start fee per run and a per-result charge for each Instagram post or reel saved to the dataset.
Current event prices:
| Event | When it is charged | Price |
|---|---|---|
| Actor start | Once when the run starts | $0.045 per run |
| Instagram post or reel saved | For each dataset item | From $0.0068642 per result on the Bronze tier |
Example cost estimates for a Bronze-tier user:
| Run size | Estimated actor charge |
|---|---|
| 10 hashtag results | About $0.11 ($0.045 + 10 Γ $0.0068642) |
| 50 hashtag results | About $0.39 ($0.045 + 50 Γ $0.0068642) |
| 100 hashtag results | About $0.73 ($0.045 + 100 Γ $0.0068642) |
Free-plan estimate: Apify's free monthly credits can cover many small validation runs. For example, a 10-result test run is roughly eleven cents in actor charges before any platform-level usage limits or credit policies shown in your Apify account.
To keep costs predictable:
- Start with
maxResultsPerHashtagset to 10β20. - Add only the hashtags you actually need.
- Schedule recurring small runs rather than one very large exploratory run.
- Review the dataset after the first run before increasing limits.
Exact current prices are also shown on the Apify actor page before you start a run.
How to scrape Instagram hashtags
- Open the actor on Apify.
- Add one or more hashtags, for example
apify,webscraping, orugc. - Set
maxResultsPerHashtag. - Keep
includeReelsenabled if reels are relevant to your workflow. - Run the actor.
- Download the dataset or connect it to an integration.
Input options
hashtags
List of Instagram hashtags. Use values with or without #.
Examples:
["apify","#webscraping","ugc"]
startUrls
Optional Instagram hashtag URLs. This is useful if your workflow already stores full URLs.
Example:
[{"url":"https://www.instagram.com/explore/tags/apify/"}]
maxResultsPerHashtag
Maximum number of public post or reel cards to save for each hashtag.
includeReels
If enabled, reel URLs are saved. If disabled, the scraper skips reel cards and keeps regular post URLs only when Instagram shows them.
proxyConfiguration
Instagram cloud runs are most reliable with Apify residential proxy enabled. The default input uses residential proxy so scheduled and production runs start from the reliable path.
Example input
{"hashtags":["apify"],"maxResultsPerHashtag":20,"includeReels":true,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"]}}
Example output
{"hashtag":"apify","postUrl":"https://www.instagram.com/reel/DX5rTD_soy2/","shortcode":"DX5rTD_soy2","mediaType":"reel","caption":"I literally used Claude (and Apify and LinkedIn) to get unlimited jobs...","authorUsername":"msbintel","authorProfileUrl":"https://www.instagram.com/msbintel/","thumbnailUrl":"https://scontent...jpg","displayUrl":"https://scontent...jpg","videoUrl":"https://scontent...mp4","likesCount":null,"commentsCount":null,"viewsCount":458000,"timestamp":null,"hashtags":["#ai","#aitools","#claude","#apify","#linkedin"],"mentions":[],"sourceUrl":"https://www.instagram.com/explore/tags/apify/","scrapedAt":"2026-05-23T08:00:00.000Z"}
Tips for better results
- π Use specific hashtags rather than broad generic tags.
- π Keep the first run small to validate output quality.
- π Use schedules for recurring monitoring.
- π§Ή Deduplicate by
postUrlorshortcodein downstream systems. - β οΈ Instagram may show different fields for different hashtags, regions, or sessions.
- π§Ύ Treat
nullmetric fields as βnot publicly visible in the hashtag grid,β not as zero.
Integrations
You can connect this actor with Apify integrations and external tools:
- Google Sheets for campaign tracking.
- Make.com or Zapier for no-code workflows.
- Webhooks for new-run notifications.
- Slack or Discord for hashtag monitoring alerts.
- Airtable for UGC review queues.
- Data warehouses for trend dashboards.
- AI tools for caption classification and sentiment analysis.
API usage
Node.js
import{ ApifyClient }from'apify-client';const client =newApifyClient({token: process.env.APIFY_TOKEN});const run =await client.actor('automation-lab/instagram-hashtag-scraper').call({hashtags:['apify'],maxResultsPerHashtag:20,includeReels:true,});const{ items }=await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/instagram-hashtag-scraper').call(run_input={'hashtags':['apify'],'maxResultsPerHashtag':20,'includeReels':True,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL
curl-X POST "https://api.apify.com/v2/acts/automation-lab~instagram-hashtag-scraper/runs?token=$APIFY_TOKEN"\-H'Content-Type: application/json'\-d'{"hashtags":["apify"],"maxResultsPerHashtag":20,"includeReels":true}'
MCP usage
Use this actor through Apify MCP from Claude Code, Claude Desktop, Cursor, or VS Code:
https://mcp.apify.com/?tools=automation-lab/instagram-hashtag-scraper
Claude Code quick add:
$claude mcp add apify-instagram-hashtag --transport http "https://mcp.apify.com/?tools=automation-lab/instagram-hashtag-scraper"
Claude Desktop JSON config:
{"mcpServers":{"apify-instagram-hashtag":{"url":"https://mcp.apify.com/?tools=automation-lab/instagram-hashtag-scraper"}}}
Cursor setup:
- Open Settings β MCP servers.
- Add a new HTTP server named
apify-instagram-hashtag. - Use
https://mcp.apify.com/?tools=automation-lab/instagram-hashtag-scraperas the server URL. - Save, reconnect the server, and ask Cursor to run the Apify Instagram hashtag tool.
VS Code setup:
- Install an MCP-compatible assistant extension that supports HTTP MCP servers.
- Add a server named
apify-instagram-hashtag. - Set the HTTP endpoint to
https://mcp.apify.com/?tools=automation-lab/instagram-hashtag-scraper. - Confirm the tool list includes
automation-lab/instagram-hashtag-scraperbefore prompting the assistant.
Example prompts:
- βRun the Instagram Hashtag Scraper for
apifyand summarize common captions.β - βFind public reels for
webscrapingand return the top creator usernames.β - βCollect 20 posts for
ugcand group captions by mentioned brands.β
Data quality notes
Instagram hashtag pages are dynamic. The public page may expose captions, usernames, thumbnails, video URLs, and view counts, but exact timestamps and comment counts may not be visible in the hashtag grid. This actor preserves those fields and returns null when Instagram does not expose them publicly during the run.
Limitations
- The actor only scrapes public hashtag pages.
- It does not log in to Instagram.
- It does not bypass private accounts or restricted content.
- Very large runs may be affected by Instagram rate limits.
- Instagram can change the public page structure, which may affect extraction.
FAQ and troubleshooting
Why did I get fewer results than requested?
Instagram may expose fewer public cards for a hashtag, or the page may stop loading additional cards during the run. Try a smaller limit first, then increase it gradually.
Why are timestamps or comment counts null?
Those values are often not present in the public hashtag grid. The actor returns null rather than guessing.
Why did the page redirect?
Instagram sometimes redirects /explore/tags/<tag>/ pages to public topic URLs. The scraper follows browser redirects and still saves the original sourceUrl.
Legality and ethical use
This actor is intended for public Instagram content visible without logging in. Make sure your use case complies with Instagramβs terms, applicable laws, and privacy requirements. Do not use scraped data for spam, harassment, or unauthorized profiling.
Related scrapers
Other automation-lab actors that may fit related workflows:
- https://apify.com/automation-lab/instagram-scraper
- https://apify.com/automation-lab/instagram-comments-scraper
- https://apify.com/automation-lab/instagram-stories-scraper
- https://apify.com/automation-lab/tiktok-search-scraper
- https://apify.com/automation-lab/youtube-search-scraper
Changelog
0.1
- Initial version for public Instagram hashtag post and reel cards.
- Supports multiple hashtags, maximum results per hashtag, optional reel filtering, and proxy settings.
Support
If the actor stops returning data, include your input, run ID, and a short description of the expected hashtag results when reporting an issue.
