Instagram Hashtag Posts Scraper avatar

Instagram Hashtag Posts Scraper

Pricing

from $1.40 / 1,000 per post scrapeds

Go to Apify Store
Instagram Hashtag Posts Scraper

Instagram Hashtag Posts Scraper

Extract posts, reels, and media data from any public Instagram hashtag. Get engagement metrics, captions, trending audio, author profiles, and location data in clean JSON β€” no cookies or login needed.

Pricing

from $1.40 / 1,000 per post scrapeds

Rating

0.0

(0)

Developer

PinaCode

PinaCode

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

8

Monthly active users

a day ago

Last modified

Share

πŸ“Έ Instagram Hashtag Posts Scraper

Extract Instagram posts, reels, and media data from any hashtag β€” no login, no cookies, no limits.
Get likes, comments, play counts, captions, audio, location, author info, and more in clean structured JSON.


🌟 Why This Scraper?

Whether you're tracking trends, doing influencer research, or building a content intelligence pipeline β€” this scraper gives you deep, structured data from Instagram hashtag feeds at scale.

  • βœ… No Instagram login or session cookies required
  • βœ… Scrape Recent (latest) or Top (highest-performing) posts
  • βœ… Full media metadata: photos, videos, reels, and carousels
  • βœ… Rich engagement metrics: likes, comments, plays, shares
  • βœ… Audio intelligence: track trending sounds and licensed music
  • βœ… Author profiling: follower count, account type, verification status
  • βœ… Location data: city, coordinates, venue name
  • βœ… Pagination cursor support β€” resume interrupted runs (paid users)
  • βœ… Auto-retry on failures β€” up to 3 retries per request

πŸš€ Quick Start

  1. Enter a hashtag (without #) β€” e.g. travel, fitness, streetphotography
  2. Choose a scrape type: Recent for the latest posts or Top for viral content
  3. Set your max items limit
  4. Hit Start β€” results land in your dataset in seconds

πŸ“₯ Input Parameters

ParameterTypeRequiredDefaultDescription
hashtagStringβœ… Yesβ€”Hashtag to scrape (without #). Example: travel, fitness, reelsinstagram
scrape_typeString❌ NorecentFeed to scrape: recent (latest posts) or top (best performing)
max_itemsInteger❌ No24Maximum number of posts/reels to return. Minimum: 24
cursorString❌ Noβ€”Pagination cursor from a previous run to resume scraping

πŸ“‹ Example Input

{
"hashtag": "streetphotography",
"scrape_type": "top",
"max_items": 100
}

πŸ“€ Output Data

Each item represents one Instagram post, reel, or carousel with full metadata.

πŸ”‘ Identity Fields

FieldTypeDescription
idStringInstagram internal post ID (pk)
shortcodeStringPost shortcode (used in URL)
urlStringDirect link to the post or reel
taken_atIntegerUnix timestamp of when the post was published
taken_at_timestampStringISO 8601 formatted publish datetime (UTC)
scraped_atStringISO 8601 datetime when this item was scraped
product_typeStringclips for Reels, feed for regular posts
media_typeInteger1 = Photo, 2 = Video, 8 = Carousel

πŸ‘€ Author Fields (author object)

FieldTypeDescription
idStringAuthor's Instagram user ID
usernameStringInstagram handle
full_nameStringDisplay name
is_verifiedBooleanBlue checkmark verification status
is_privateBooleanWhether the account is private
follower_countIntegerNumber of followers at time of scrape
account_typeInteger1 = Personal, 2 = Creator, 3 = Business
profile_pic_urlStringProfile picture URL

πŸ“ Content Fields

FieldTypeDescription
captionStringFull post caption text
hashtagsArrayList of hashtags extracted from caption
mentionsArrayList of @mentioned usernames in caption
caption_is_editedBooleanWhether the caption was edited after posting
carousel_media_countIntegerNumber of slides (carousel posts only)

πŸ“Š Engagement Metrics

FieldTypeDescription
like_countIntegerInstagram likes
comment_countIntegerInstagram comments
play_countIntegerVideo/reel play count
ig_play_countIntegerInstagram-specific play count
fb_play_countIntegerFacebook play count (cross-posted)
fb_like_countIntegerFacebook likes
fb_comment_countIntegerFacebook comments
reshare_countIntegerNumber of reshares
like_and_view_counts_disabledBooleanWhether counts are hidden by the creator

🎬 Media Fields

FieldTypeDescription
video_urlStringDirect URL to the highest-quality video
thumbnail_urlStringURL to the post thumbnail image
duration_secondsFloatVideo/reel duration in seconds
original_widthIntegerOriginal media width (pixels)
original_heightIntegerOriginal media height (pixels)
has_audioBooleanWhether the media includes audio

🎡 Audio Fields (audio object)

Handles all 3 Instagram audio structures: licensed music, original sounds, and audio type flags.

FieldTypeDescription
titleStringSong/track title (licensed music)
artistStringArtist name or original audio creator
typeStringlicensed_music, original_sound, or audio type flag
is_explicitBooleanExplicit content flag
original_audio_titleStringCustom title for original audio
is_trendingBooleanWhether the audio is trending in Reels

πŸ“ Location Fields (location object)

FieldTypeDescription
pkStringLocation ID
nameStringVenue or place name
addressStringStreet address
cityStringCity name
latFloatLatitude coordinate
lngFloatLongitude coordinate

🀝 Collaboration & Rights Fields

FieldTypeDescription
is_paid_partnershipBooleanWhether the post is a sponsored/paid partnership
coauthor_usernamesArrayList of co-author Instagram handles
has_tagged_usersBooleanWhether users are tagged in the post
can_viewer_reshareBooleanWhether resharing is allowed
ig_media_sharing_disabledBooleanWhether media sharing is disabled

πŸ“¦ Example Output Item

{
"id": "3621480123456789012",
"shortcode": "DAbc1234XYZ",
"url": "https://www.instagram.com/reel/DAbc1234XYZ/",
"taken_at": 1720000000,
"taken_at_timestamp": "2024-07-03T12:00:00+00:00",
"scraped_at": "2025-04-13T09:30:00+00:00",
"product_type": "clips",
"media_type": 2,
"author": {
"id": "123456789",
"username": "jane.travels",
"full_name": "Jane Wanderlust",
"is_verified": false,
"is_private": false,
"follower_count": 48200,
"account_type": 2,
"profile_pic_url": "https://..."
},
"caption": "Golden hour in Santorini πŸŒ… #travel #greece #sunset #reels",
"hashtags": ["travel", "greece", "sunset", "reels"],
"mentions": [],
"like_count": 4821,
"comment_count": 112,
"play_count": 98400,
"video_url": "https://...",
"thumbnail_url": "https://...",
"duration_seconds": 14.5,
"has_audio": true,
"audio": {
"title": "Golden Hour",
"artist": "JVKE",
"type": "licensed_music",
"is_explicit": false,
"original_audio_title": null,
"is_trending": true
},
"location": {
"pk": "213204004",
"name": "Santorini, Greece",
"city": "Santorini",
"lat": 36.3932,
"lng": 25.4615
},
"is_paid_partnership": false,
"coauthor_usernames": [],
"has_tagged_users": true
}

πŸ”– Final Cursor Record (paid users only)

The last item in the dataset contains pagination metadata for resuming future runs:

{
"_metadata": {
"cursor": "QVFDZjJmUTdQcGQ4VUluUFZMa3N...",
"total_scraped": 500,
"unique_items": 498,
"hashtag": "travel"
}
}

πŸ” Resuming a Scrape

Paid users can continue any scrape from where it left off:

  1. Copy the cursor value from the _metadata record in your dataset
  2. Start a new run with the same hashtag
  3. Paste the cursor into the Resume Cursor field
  4. The scraper picks up exactly where you left off β€” no duplicate data

πŸ’³ Free vs Paid

FeatureFreePaid
Posts per run~24Up to max_items
Scrape typeβœ… Bothβœ… Both
Full output fieldsβœ… Yesβœ… Yes
Pagination cursor returned❌ Noβœ… Yes
Resume interrupted runs❌ Noβœ… Yes
Priority support❌ Noβœ… Yes

βš™οΈ Technical Notes

  • Works with public hashtags only β€” content must be publicly accessible on Instagram
  • Deduplication is built-in β€” no duplicate posts even across paginated requests
  • Failed requests are automatically retried up to 3 times with exponential backoff
  • The scraper handles all 3 Instagram audio data structures automatically

🧠 Use Cases

πŸ“ˆ Marketing & Growth

  • Track trending hashtags in your niche to identify peak engagement windows
  • Monitor competitor brand hashtags for content and campaign intelligence

🎯 Influencer Research

  • Discover emerging creators by filtering top-performing posts in a hashtag
  • Analyze follower counts, account types, and verification status at scale

πŸ”Š Audio & Trend Intelligence

  • Identify which songs and sounds are going viral in specific communities
  • Track is_trending audio signals before they peak

πŸ“ Location-Based Insights

  • Find geo-tagged content from specific cities or venues
  • Build location-aware content strategies using coordinate data

πŸ› οΈ Data Pipelines & Automation

  • Feed structured Instagram data into analytics tools, CRMs, or dashboards
  • Schedule recurring runs to build time-series trend datasets

⚠️ Disclaimer

This Actor collects only publicly available data β€” the same information visible to any unlogged visitor browsing Instagram. No private data, passwords, or personal messages are accessed. Use this tool responsibly and in accordance with applicable laws and platform terms. The developer assumes no liability for misuse.


πŸ’¬ Support

Experiencing issues or need a custom feature? Use the Issues tab on this Actor's page or reach out via the Apify community forum. Paid subscribers receive priority response.


Built for marketers, researchers, and developers who need reliable Instagram data β€” fast.