Instagram Trending Scraper avatar

Instagram Trending Scraper

Pricing

from $3.51 / 1,000 results

Go to Apify Store
Instagram Trending Scraper

Instagram Trending Scraper

Unofficial Instagram Explore scraper for public posts and reels by country, with section and topic labels, captions, engagement metrics, creator, location, comments, audio, and automatically archived images and videos. Not affiliated with Instagram or Meta.

Pricing

from $3.51 / 1,000 results

Rating

5.0

(3)

Developer

AgentX

AgentX

Maintained by Community

Actor stats

9

Bookmarked

291

Total users

55

Monthly active users

0.11 hours

Issues response

4 days ago

Last modified

Share

Instagram Trending Scraper extracts public posts and reels currently surfaced in Instagram Explore for a selected country, then returns normalized topic, creator, engagement, media, location, comment, and audio data.

  • Select from 35 country options for a country-routed Explore request.
  • Set a per-run result cap from 1 to 500 public posts.
  • Export 64 declared Dataset fields in JSON, CSV, Excel, or through the Dataset API.
  • Archive available post images, videos, and covers automatically; there is no download input to configure.

Run a one-result test · View API

The smallest useful test requests one result. At the FREE tier and default 256 MB memory, the maximum event charge for one stored result is $0.01390: one $0.01 Actor Start plus one $0.00390 Result.

Why Choose This API

Instagram Trending Scraper is designed for analysts, developers, content teams, and AI workflows that need a structured snapshot of Explore rather than a manually reviewed screen. Every published row represents one distinct post that completed detail collection, media archival, Dataset storage, and result billing.

CapabilityPractical benefit
Explore section and topic fieldsGroup content by the labels Instagram exposed with the post instead of classifying captions alone.
Creator, caption, engagement, location, comment, and audio fieldsCompare content signals without joining several separate exports.
Normalized image, video, carousel, and reel recordsUse one field model across the public post types returned by the current feed.
Locale-aware runsCompare snapshots requested with different language-region headers.
Automatic post-media archivalReceive stable Apify storage links for successfully processed post covers, images, and videos.

The main trade-off is source dependence: max_results is a cap, not a guarantee. Instagram may expose fewer distinct public Explore candidates, omit optional values, or change what it returns between runs.

Meta explains that Instagram recommendations personalize over time based on the content and accounts a user interacts with. Treat each Actor output as a run-specific public Explore snapshot, not a universal or official country ranking.

Quick Start Guide

  1. Open the Actor input.
  2. Set max_results to 1 for the smallest useful test.
  3. Choose one supported country, such as United States.
  4. Start the Actor and open the default Dataset when the run finishes.
{
"max_results": 1,
"country": "United States"
}

The limit applies to successfully published Dataset rows in the current run. Each run processes its own Explore snapshot without reading earlier Dataset rows.

Input Parameters

FieldTypeRequiredAccepted valuesEffect
max_resultsintegerYes1 to 500Maximum number of public Explore post rows to publish in the run.
countrystringYesOne of the 35 schema optionsSelects the residential proxy country and language header used for Explore.

Supported countries are:

  • Americas: United States, Canada, Brazil, Mexico, Argentina, Chile, and Colombia.
  • Europe: United Kingdom, Germany, France, Italy, Spain, Netherlands, Sweden, Norway, Denmark, Finland, Poland, and Portugal.
  • Asia-Pacific: Australia, Japan, South Korea, Singapore, Hong Kong, Taiwan, India, Indonesia, Thailand, Philippines, Malaysia, and Vietnam.
  • Middle East and Africa: United Arab Emirates, Saudi Arabia, Turkey, and South Africa.

The country setting routes Explore discovery through a matching residential proxy and applies its Accept-Language header. Instagram does not expose an official country-ranking parameter, so two runs can still differ even when they use the same country.

Media handling is intentionally not an input. Available post covers, images, and videos are archived automatically for every row that is successfully published.

Output Data Schema

The default Dataset declares 64 fields. Optional source values can be null; collection fields can be empty when Instagram does not expose a value for that post.

GroupDataset fields
Primary visualcover_url
Processingprocessor, processed_at
Identity and Explorepost_id, shortcode, post_url, explore_section, explore_topic, post_type, instagram_product_type, instagram_media_type
Ownerowner_id, owner_username, owner_full_name, owner_is_verified, owner_is_private, owner_profile_pic_url
Caption and publicationcaption, caption_created_at, caption_is_edited, accessibility_caption, hashtags, mentions, published_at, published_timestamp
Engagementlike_count, comment_count, play_count, view_count, like_and_view_counts_disabled
Mediamedia_count, image_count, video_count, is_carousel, has_video, has_audio, media_items
Locationlocation_id, location_name, location_lat, location_lng, location_address, location_city
Accounts and commentstagged_users, coauthors, comments_disabled, can_viewer_save, can_viewer_reshare, is_paid_partnership, sponsor_tags, top_comments
Audioaudio_type, audio_title, audio_artist, audio_asset_id, audio_canonical_id, audio_duration_ms, audio_cover_url, audio_preview_url, audio_owner_username, audio_is_original, audio_is_reuse_allowed, audio_is_trending, audio_mashups_count

This abbreviated item is illustrative and uses the same one-result United States scenario as the input and API examples:

{
"cover_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/media-cover.jpg",
"processor": "https://apify.com/agentx/instagram-trending-scraper",
"processed_at": "2026-07-26T10:30:00+00:00",
"post_id": "3930000000000000000_25025320",
"shortcode": "DaTSSukB-Lb",
"post_url": "https://www.instagram.com/reel/DaTSSukB-Lb/",
"explore_section": "Fashion & Beauty",
"explore_topic": "Street Fashion",
"post_type": "reel",
"owner_username": "instagram",
"caption": "time to create",
"like_count": 333091,
"comment_count": 18435,
"play_count": 61839889,
"media_count": 1,
"has_video": true,
"has_audio": true,
"media_items": [
{
"position": 1,
"media_id": "3930000000000000000",
"media_type": "video",
"media_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/media-video.mp4",
"cover_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/media-cover.jpg",
"width": 720,
"height": 1280,
"duration_seconds": 22.033,
"has_audio": true,
"accessibility_caption": null
}
]
}

Post media and covers are archived to the run's Key-Value Store. Other auxiliary URLs, such as profile pictures or audio previews, can remain source-provided URLs and may expire.

Integration Examples

The verified Actor ID is bUkw01H4rn1K9brjp. The stable name-based ID agentx~instagram-trending-scraper can also be used in Apify API paths.

HTTP API

curl "https://api.apify.com/v2/acts/agentx~instagram-trending-scraper/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
-X POST \
-H "Content-Type: application/json" \
-d '{"max_results":1,"country":"United States"}'

Python client

from apify_client import ApifyClient
client = ApifyClient("YOUR_API_TOKEN")
run = client.actor("bUkw01H4rn1K9brjp").call(
run_input={"max_results": 1, "country": "United States"}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

See the generated API page for JavaScript, CLI, OpenAPI, and additional HTTP examples maintained by Apify.

Pricing & Cost Calculator

The current local pricing configuration has one automatic Apify start event and one custom data event. There is no separate media event: automatic media archival does not trigger an additional Actor-defined media charge.

EventBilling unitFREEBRONZESILVERGOLDPLATINUMDIAMOND
Actor StartRun start; event count depends on memory, minimum one$0.01000$0.01000$0.01000$0.01000$0.01000$0.01000
ResultOne successfully stored default Dataset row$0.00390$0.00351$0.00312$0.00293$0.00293$0.00293

At the FREE tier and default 256 MB memory, a one-result test costs at most $0.01 + (1 × $0.00390) = $0.01390 in configured events. Actual prices shown by Apify can change; review the live pricing tab before a larger run.

Use Cases & Applications

  • Content research: collect the captions, formats, topics, and engagement snapshots of posts currently surfaced in Explore.
  • Creator discovery: identify accounts appearing in selected locale-aware snapshots and retain their public post context.
  • Trend monitoring: schedule comparable runs and analyze changes in section, topic, audio, and engagement fields over time.
  • Creative review: archive successfully processed post covers, images, and videos for authorized downstream analysis.
  • Data and AI workflows: feed normalized Dataset rows into dashboards, notebooks, retrieval systems, or agent tools through the Apify API.

This Actor is not a profile crawler, hashtag search tool, follower exporter, direct-message automation tool, or an official Instagram analytics product.

How It Compares with Alternatives

OptionBest fitMain trade-off
Instagram Trending ScraperLocale-aware snapshots of public Explore posts with normalized post, topic, engagement, and media dataResults depend on what the source exposes during the run.
Manual Explore reviewSmall qualitative checks where a person needs to interpret visual context immediatelyProduces no repeatable structured Dataset without additional work.
Profile, reel, or hashtag-specific ActorResearch that starts from a known account, post URL, reel, or hashtagIt answers a different question from “what is surfaced in Explore now?”

Choose this Actor when Explore discovery is the starting point. Choose a narrower Actor when you already know the creator or content URL you want to inspect.

Limits and Troubleshooting

Symptom or limitExplanationNext step
Fewer rows than max_resultsThe value is a cap; the current feed may expose fewer distinct posts, and incomplete posts are not published.Retry later or compare another supported country with a small limit.
A field is null or a list is emptyInstagram does not expose every metric, location, comment, or audio value for every post.Treat missing values as source-dependent rather than as zero.
Country runs look similarLocalization influences the request but does not create an official national ranking.Compare multiple scheduled snapshots before drawing a country-level conclusion.
A run returns no rowsPublic Explore availability or post details may be temporarily unavailable.Reproduce with {"max_results":1,"country":"United States"} and attach the run ID to an issue.
Media is absent from the DatasetA row is only published after required post media is available and stored; auxiliary URLs can still be unavailable.Check the run log and report the affected post shortcode without sharing your API token.

FAQ

No. It returns posts currently surfaced by the public Explore experience for the selected localization. The order and availability are source-dependent and can change between runs.

Can I filter by section or topic before extraction?

No. explore_section and explore_topic are output fields. Filter them after the Dataset is produced.

Can I disable image or video downloads?

No. The public input intentionally contains only max_results and country. Available post covers, images, and videos are archived automatically.

Why can two identical inputs return different posts?

Explore content changes over time and can vary with source availability and localization. Store the processed_at value with each snapshot when comparing runs.

Are engagement values live counters?

They are snapshots of values exposed while the post was processed. Likes, comments, plays, and views may change after the run.

How are duplicate posts handled?

The Actor removes repeated post codes while collecting the current Explore snapshot. It does not scan earlier Dataset rows, so separate runs remain independent.

What exactly triggers Result billing?

One result event is requested only when a completed row is pushed to the default Dataset. Failed, incomplete, or duplicate candidates do not produce a Result row.

Can I schedule recurring snapshots?

Yes. Use Apify schedules with the same small input, then compare Dataset exports by processed_at, country, Explore section, and topic.

Responsible Use

This Actor processes publicly visible Instagram Explore content and is not affiliated with or endorsed by Instagram or Meta. You are responsible for your use of the data, including compliance with applicable law, privacy obligations, intellectual-property rights, and platform terms. Do not use the output for unauthorized surveillance, harassment, or decisions that require protected or sensitive personal information.

Enrich with AgentX

  • All Video Scraper — normalize known video URLs from Instagram and other supported sites.
  • All Shopping Scraper — add structured marketplace context when Explore research identifies products to investigate.
  • All Jobs Scraper — add multi-source job data when research moves from creator or brand signals to hiring activity.

Support & Last Updated

Last verified against the current local Actor on 2026-07-28. The Store page can continue to show the previous published input, output, README, and pricing until this local revision is published.

Start with one Explore result · Open the verified API page