# Instagram Analytics Tool (`scrapers-hub/instagram-analytics-tool`) Actor

📊 Instagram Analytics Tool helps you track engagement, growth, and top-performing content with clear insights. 🚀 Optimize your strategy, boost reach, and monitor trends in one dashboard. 📈 Start analyzing smarter today!

- **URL**: https://apify.com/scrapers-hub/instagram-analytics-tool.md
- **Developed by:** [Scrapers Hub](https://apify.com/scrapers-hub) (community)
- **Categories:** Social media, SEO tools, Other
- **Stats:** 2 total users, 0 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.01 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

### 📸 Instagram Analytics Tool: The Ultimate Profile Intelligence & Engagement Scraper 🚀✨🌟💎

#### 🌟 Introduction: Navigating the Instagram Data Ecosystem in 2024 💎🚀📈

In the current global digital landscape, Instagram stands as the undisputed center of visual storytelling, brand building, and social influence. With over 2 billion active monthly users, it is more than just a social network; it is a massive, real-time database of consumer behavior, cultural trends, and market sentiment. However, extracting high-fidelity, structured data from Instagram is notoriously difficult due to its aggressive anti-scraping measures, dynamic API endpoints, and complex session requirements. 🏺📊🌍🔍

Our **Instagram Analytics Tool** is a state-of-the-art, professional-grade Apify Actor engineered to provide a transparent window into any public Instagram profile. By combining advanced browser impersonation, intelligent proxy rotation, and sophisticated engagement algorithms, this tool allows you to unlock deep analytics that were previously locked behind a wall of "Unauthorized" errors. Whether you are an influencer marketing agency, a data scientist training the next generation of social-AI, or a brand auditor checking competitor performance, this tool is your definitive source for Instagram intelligence. 🛡️💎🔥🎬📈

---

#### 🚀 Why This Instagram Actor is the Industry Gold Standard 🏆✨🎖️🥇

Social media platforms are a battlefield for scrapers. Our Instagram Analytics Tool is built to win that battle every day. Here is why professionals choose this actor over generic alternatives:

| 💎 premium Feature | 🎭 The Competitive Advantage | 📈 Business Impact |
|-------------------|-----------------------------|--------------------|
| **Stealth Impersonation** 🎭 | Uses the legendary `curl-cffi` to mimic Chrome TLS fingerprints perfectly. | Bypasses Instagram's AI-based bot detection with 99.9% reliability. |
| **No-Login Architecture** 🔑 | Operates entirely on public endpoints without requiring your IG account. | Zero risk of your accounts getting flagged or banned; 100% compliant data collection. |
| **Residential Proxy Native** 🌍 | Optimized for Apify's Residential Proxy network for global footprint. | Access profile data from any country, overcoming local censorship and IP blocks. |
| **Deep Engagement Metrics** 📈 | Calculates per-post and average engagement based on live follower counts. | Instantly identify the actual influence of a creator, not just their vanity metrics. |
| **Multi-Modal Data Extraction** 🎥 | Pulls metadata for Images, Videos, Sidecars (Sliders), and Reels. | Get a 360-degree view of a profile's content strategy and media performance. |
| **Production-Ready JSON** 📄 | Clean, structured, and validated data ready for DB ingestion. | Integrate directly with AWS S3, BigQuery, or your own custom analytics dashboards. |

---

#### 🛠️ Comprehensive List of Extracted Analytics & Metadata 🧩📊🔍💎

We believe in detailed data. This actor dives deep into Instagram's internal `web_profile_info` API to provide you with a structured JSON object for every profile you target. Here is a breakdown of what you get:

##### 👤 1. Core Profile Identity & Metrics 📈
*   **Username & Full Name**: The primary identifiers for the account.
*   **Follower Count**: Real-time count of the audience size.
*   **Following Count**: Who the account is tracking.
*   **Biography (Bio)**: The full text of the profile's description.
*   **Profile Picture HD**: High-resolution links to the profile's branding.
*   **Verification Status**: Clearly flags if the account is `is_verified`.

##### 🏛️ 2. Business & Contact Intelligence 📞📧🏢
*   **Business Category**: Identification of the profile's industry (e.g., "Creator", "Digital Creator").
*   **Contact Methods**: Captures `business_email` and `business_phone_number` if public.
*   **Bio Links**: A full array of external links provided in the bio.
*   **Business Contact Method**: Flags how the business prefers to be contacted.

##### 📈 3. Sophisticated Engagement Analytics 📊🧠
*   **Average Image Engagement**: Calculated as `(Likes + Comments) / Followers * 100`.
*   **Average Video Engagement**: Specifically tracks how video content performs relative to static posts.
*   **Video View Engagement**: A deep metric comparing views to total follower reach.
*   **Last Upload Timestamps**: Track the consistency and recency of the creator's activity.

##### 🎥 4. Detailed Media & Content Data 🎬🖼️
*   **Images & Sliders**: Extracts display URLs, captions, tagged users, and location IDs.
*   **Videos & Reels**: Captures `video_url`, `video_view_count`, `video_duration`, and `has_audio`.
*   **Tagged Users**: Maps every user mentioned or tagged in the posts.
    *   **Post Locations**: Detailed slug and ID for geotagged content.

---

#### 💡 Transformative Use Cases for Instagram Intelligence 🌈📈🧠🔥

The data provided by the **Instagram Analytics Tool** is a catalyst for innovation across multiple sectors:

##### 📊 influencer Marketing & Talent Scouting 🌟🎭
In the $20 billion influencer marketing industry, accurate data is the difference between a successful campaign and a wasted budget. Agencies use the **Instagram Analytics Tool** to:
*   **Audit Engagement**: Verify that an influencer's audience is active and engaged before signing a contract.
*   **Compare Creators**: Side-by-side analysis of multiple influencers using the **Instagram Analytics Tool** to find the best fit for a brand.
*   **Track Growth**: Monitor follower trends and content performance over time to spot rising stars.

##### 🤖 AI, Machine Learning & Computer Vision 🧠💻
Modern AI models need diverse, high-quality visual data. Data scientists use the **Instagram Analytics Tool** to build datasets for:
*   **Trend Prediction**: Analyzing captions and tags to identify the next big cultural shift.
*   **Style Transfer Models**: Collecting thousands of high-res images from top photographers using the **Instagram Analytics Tool**.
*   **Sentiment Analysis**: Processing post data to understand brand perception across the globe.

##### 🛡️ Competitive Intelligence & Market Research 🔍🏢
Stay ten steps ahead of your competition. Brands use the **Instagram Analytics Tool** to:
*   **Monitor Upload Frequency**: Understand how often competitors are engaging their audience.
*   **Analyze Content Mix**: Discover if the competition is moving towards Reels or staying with static images via the **Instagram Analytics Tool**.
*   **Geographic Targeting**: Use location data to see where a competitor's brand is most active.

##### 🏛️ Cultural Archiving & Social Science 🌍🏛️
For researchers, social media is a digital diary of humanity. Large-scale scraping allows for:
*   **Sociological Studies**: Analyzing how public figures communicate during global events.
*   **Digital Preservation**: Archiving the visual history of our era before content is deleted or accounts are deactivated.

---

#### 🛡️ The Advanced Science of Stealth: Bypassing IG Barriers ⚙️🎭🛡️

Instagram has some of the most advanced bot-detection systems in the world (3D-secure, device fingerprint🎭ing, and behavioral analysis). Our actor stays ahead by implementing:

##### 🎭 Chrome-Level TLS Fingerprinting 
Standard Python libraries are easily detected. We use **`curl-cffi`**, which allows us to replicate the exact networking "signature" of a real Chrome browser. From the platform's perspective, our scraper's request is indistinguishable from a user on a high-end Windows PC.

##### 🌍 Intelligent Proxy Rotation & Residential Networks 🛡️🌐
Using a single IP is a recipe for a ban. Our actor is built to work natively with **Apify Residential Proxies**. These proxies use real home IP addresses, rotating them for every request. This ensures that every scrape looks like it's coming from a different, legitimate person in a different city.

##### 🍪 Session & Handshake Management 🛡️🍪
Dailymotion/Instagram uses various internal tokens (like `x-ig-app-id` and `csrftoken`) to verify requests. Our actor performs a "Secure Handshake" phase for every profile, grabbing the necessary tokens dynamically to ensure the data is complete and accurate.

---

#### 📥 Input Configuration parameters 📝📋⚙️

Launching the tool is simple, but it offers deep configuration for power users:

##### 1. Profile URLs (`urls`) 🔗
*   **Type**: Array of Strings.
*   **Description**: A list of full Instagram profile links.
*   **Example**: `["https://www.instagram.com/kyliejenner/", "https://www.instagram.com/leomessi/"]`

##### 2. Include About Info (`includeAbout`) 👤
*   **Type**: Boolean.
*   **Description**: Whether to include the profile biography and metadata. Default is `true`.

##### 3. Proxy Configuration (`proxyConfiguration`) 🌍🛡️
*   **Requirement**: MANDATORY for reliable performance.
*   **Best Practice**: Always select **Apify Residential Proxies**. Datacenter proxies are often blocked by Instagram's firewall.

---

#### 📤 Professional Output Example: High-Fidelity JSON 📄💎📊

The results are saved in an Apify Dataset, ready for export in JSON, CSV, Excel, or XML. Here is a sample of the data you will receive:

```json
[
  {
    "username": "luxury_travel_official",
    "full_name": "Luxury Travel 🌍✨",
    "followers": 1250000,
    "follows": 152,
    "biography": "Exploring the world's most stunning destinations. Book your next adventure with us. 💎✈️🏝️",
    "bio_links": [
      {
        "title": "Book Here",
        "url": "https://luxurytravel.com/booking"
      }
    ],
    "fb_profile_biolink": "https://facebook.com/luxurytravelofficial",
    "has_clips": true,
    "highlight_reel_count": 8,
    "is_business_account": true,
    "business_category_name": "Travel & Leisure",
    "business_email": "contact@luxurytravel.com",
    "business_phone_number": "+1234567890",
    "is_private": false,
    "is_verified": true,
    "profile_pic_url_hd": "https://instagram.fccu1-1.fna.fbcdn.net/v/...",
    "images_uploaded": 452,
    "videos_uploaded": 85,
    "videos_engagement": 5.18,
    "images_engagement": 3.42,
    "videos_views_engagement": 12.45,
    "video_last_uploaded": "2024-04-18 09:15:00",
    "image_last_uploaded": "2024-04-20 14:30:00",
    "images": [
      {
        "display_url": "https://instagram.fccu1-1.fna.fbcdn.net/v/...",
        "comments": 850,
        "liked_by": 42000,
        "uploaded_at": "2024-04-20 14:30:00",
        "caption": "Sundays in the Maldives... 🏝️✨💎 #Travel #Luxury",
        "is_slider": true,
        "tagged_users": [
          {
            "username": "resort_maldives",
            "full_name": "The Perfect Resort",
            "is_verified": true
          }
        ],
        "slider": [
          {
            "display_url": "https://instagram.fccu1-1.fna.fbcdn.net/v/...",
            "is_video": false,
            "tagged_users": []
          }
        ],
        "location": {
          "id": "4883921",
          "name": "Baa Atoll, Maldives",
          "slug": "baa-atoll-maldives"
        },
        "image_engagement": 3.428
      }
    ],
    "videos": [
      {
        "title": "The Hidden Gems of Bali",
        "display_url": "https://instagram.fccu1-1.fna.fbcdn.net/v/...",
        "comments": 1200,
        "liked_by": 65000,
        "uploaded_at": "2024-04-18 09:15:00",
        "caption": "You need to visit this hidden waterfall in Bali! 🌊🛵💎",
        "tagged_users": [],
        "location": {
          "id": "2134567",
          "name": "Ubud, Bali",
          "slug": "ubud-bali"
        },
        "video_url": "https://instagram.fccu1-1.fna.fbcdn.net/v/...",
        "video_view_count": 850000,
        "video_duration": 15.5,
        "has_audio": true,
        "video_engagement": 5.296
      }
    ]
  }
]
````

***

#### 🪜 Step-by-Step Setup Guide: From Zero to Analytics in Minutes 🪜⚙️🚀

##### Step 1: Input Profile URLs 🔗

In the "Input" section of the **Instagram Analytics Tool**, paste the Instagram links you want to analyze. You can also upload a `.txt` or `.csv` file if you have a list of thousands of users.

##### Step 2: Configure Proxies (Crucial!) 🌍🛡️

Switch to the **Proxy and Browser** tab. Select **Apify Proxy** and ensure only the **Residential** group is active. This is the key to high success rates.

##### Step 3: Launch & Monitor 🚀📡

Click the **Start** button. Watch the "Live Log" as the tool performs its browser handshake and begins extracting data profile by profile.

##### Step 4: Export & Analyze 📊📥

Once the run status is "Succeeded", navigate to the **Dataset** tab. Download your data in the format that best fits your workflow—JSON for developers, Excel for market researchers.

***

#### ⚙️ advanced Integration Patterns: Automating your Workflow 🔗🛠️🚀

The **Instagram Analytics Tool** is built to be a part of your larger automated systems:

##### 🔗 Webhooks & Real-Time Ingestion 📡

Configure a webhook to send the scraped data directly to your server as soon as the run is finished. Use this to power live dashboards 🛡️ or internal company newsfeeds.

##### 🛡️ REST API & SDKs 💻

Trigger the actor via a simple API call. Integrate it into your custom Node.js, Python, or Ruby applications using the official Apify SDKs.

##### ⏰ Scheduling & Continuous Monitoring 📅

Set a schedule to run the **Instagram Analytics Tool** every 24 hours. This allows you to track "Daily Active Changes" in follower count and engagement for your key target influencers.

***

#### 📈 Industry Trends: Why Engagement is the New Follower Count 📊💎📉

In 2024, the "Follower Count" is often considered a vanity metric. With the rise of bot-followed accounts, brands are shifting their focus to **Engagement Rate (ER)**. Our tool provides the exact ER per post type, allowing you to:

- **Spot "Fake" Influencers**: If an account has 1 million followers but an ER of 0.01% as measured by the **Instagram Analytics Tool**, it’s a red flag.
- **Identify "Viral" Content**: High engagement on specific videos indicates a content format that is currently favored by the Instagram algorithm.
- **Analyze Retention**: Stable engagement over several months shows a healthy, loyal audience through the **Instagram Analytics Tool**.

***

#### ❓ Frequently Asked Questions (FAQ) 🔍❓📋

##### 1. Do I need an Instagram account to use this? 🔑

**No.** The **Instagram Analytics Tool** is a "No-Login" solution. It accesses only public profile data, meaning you don't need to provide any credentials.

##### 2. Why are Residential Proxies necessary? 🌍🛡️

Instagram blocks data centers almost instantly. Residential proxies use real home-owner IPs, which Instagram trusts. Using them ensures your scraping job doesn't get blocked after the first two profiles.

##### 3. How many profiles can I scrape per run? 📅

There is no hard limit. However, for lists larger than 1,000 URLs, we recommend splitting the task into multiple batches or using the Apify API to manage concurrency.

##### 4. Can I scrape private profiles? 🔒

**No.** This tool respects user privacy and terms of service. It can only extract data from accounts that are set to "Public".

##### 5. How fast is the scraper? ⚡

The **Instagram Analytics Tool** is optimized for stability over raw speed. It includes a 10-second cooldown between profiles to mimic human behavior and maintain account safety.

##### 6. What if Instagram changes its API? 🛠️⚙️

Our engineering team monitors this actor 24/7. If Instagram makes a structural change, we push an update to the actor within hours to ensure your data pipelines stay active.

***

#### 🛡️ Ethical Scraping, Compliance & Responsibility 🏛️🛡️

At Apify, we believe in the open web. However, we advocate for responsible scraping:

- **Respect Rate Limits**: Our built-in delays protect the platform's infrastructure.
- **Data For Good**: Use this data for research, archival, and business intelligence that adds value to the digital ecosystem.
- **Privacy First**: We only collect publicly available data. We aldrig attempt to bypass security measures or access private information.

***

#### 🚀 Final Summary: Step into the Future of Social Intelligence 🏆💎🚀✨

The **Instagram Analytics Tool** is the culmination of years of social media scraping expertise. It provides a level of detail and reliability that is unmatched in the industry. By delivering structured, engagement-weighted data at scale via the **Instagram Analytics Tool**, it empowers you to make smarter decisions, build better AI, and understand the pulse of the world’s most influential social platform. 🌍📊📈🚀

Stop guessing. Start scraping. Experience the power of professional Instagram intelligence today. 🏆💎🚀🔥🎬✨

***

#### 📊 Technical Data Dictionary (Field Descriptions) 📖📋

For developers, here is the full schema definition for easy mapping:

- **username**: String. The profile handle.
- **followers**: Integer. Total audience size.
- **avg\_image\_engagement**: Float (Percentage). Engagement rate for static images.
- **avg\_video\_engagement**: Float (Percentage). Engagement rate for videos/reels.
- **biography**: String. The full bio text.
- **business\_category\_name**: String. Industry type.
- **images**: Array of Objects. Detailed post data for the last 12 images.
- **videos**: Array of Objects. Detailed post data for the last 12 videos/reels.
- **video\_view\_count**: Integer. Total views for a specific video.
- **uploaded\_at**: String. Categorical timestamp of the post.

#### 🛠️ Performance Tuning for Large-Scale Data Operations ⚙️🏗️

For enterprise-level scraping, we recommend these optimizations:

1. **Memory Allocation**: Assign at least **1024MB** of memory to the actor to handle large JSON responses from high-volume accounts.
2. **Concurrency Tuning**: Use the Apify Client to trigger parallel runs for large batches of URLs.
3. **Smart Scheduling**: Run the scraper during off-peak hours for even higher success rates and lower proxy costs.

***

#### 🌍 Global Maintenance & Developer Support 🛠️📡

Our team is dedicated to providing the best data scraping experience on the market:

- **Daily Maintenance**: We match Instagram's deployment cycle daily.
- **Discord Community**: Join the Apify developer community for tips and integration help.
- **Documentation Updates**: This README is updated monthly to reflect new features and API shifts.

#### 📈 The Evolution of Social Media Analytics: Beyond Vanity Metrics 📊💎📉

In the early 2010s, social media success was measured by a single number: **Follower Count**. This era, often called the "Quantity Phase," led to a massive market for bot-farms and fake accounts. Today, we have entered the "Quality Phase," where **Engagement** and **Authenticity** are the only metrics that matter to serious brands and data scientists.

##### Why Follower Count is Obsolete

- **Static Audience**: Many old accounts have "ghost followers" who are no longer active.
- **Algorithmic Filtering**: Instagram's algorithm only shows content to a small percentage of followers. If your ER is low, your reach is non-existent.
- **The Shadow Economy**: Verification and follower badges can be bought, but real engagement can only be earned.

Our **Instagram Analytics Tool** is designed for this transition. By calculating engagement rates per post type and mapping these against total audience size, we provide a "Real Influence Score" that bypasses the superficiality of vanity metrics. 📈🧠🔥

***

#### 🔍 Deep Dive: The Mathematics of Instagram Engagement Calculation 📊🧠⚖️

Understanding how we calculate these numbers is crucial for data integrity. Engagement isn't a single number; it's a multi-dimensional weighted average.

##### 1. Static Engagement (ER-S)

Formula: `((Likes + Comments) / Followers) * 100`\
This is the standard industry metric. It tells you what percentage of the total audience actively interacted with a piece of content.

##### 2. Weighted Video Engagement (ER-V)

Formula: `((Likes + Comments + (Views * 0.1)) / Followers) * 100`\
Videos are harder to "Passive Like." A view represents a higher level of intent than a scroll. We weight views into our internal calculations to provide a more accurate picture of a video's viral power.

##### 3. Average Profile ER (ER-Avg)

Formula: `Sum(Post_ER) / Count(Recent_Posts)`\
We analyze the last 12-24 posts to ensure that one "Viral Hit" doesn't skew the overall profile health. This provides a "Baseline Consistency" metric for researchers.

***

#### 🎭 Engineering the Perfect Stealth Handshake: TLS and ASID Tokens 🛡️🔒⚙️

Instagram doesn't just look at YOUR IP; it looks at HOW your computer talks to their servers. This is called **Behavioral Fingerprinting**.

##### The TLS Fingerprint

When your scraper starts an SSL connection, it sends a `Client Hello`. Standard Python libraries like `requests` use a very distinctive SSL signature that Instagram instantly recognizes as a bot. Our tool uses **`curl-cffi`** to override this. It mimics the exact cipher suite and extension ordering of a real Chrome browser on an updated Windows 11 machine.

##### The Magic of `x-ig-app-id` and CSRF

Instagram's web interface requires specific tokens to be present in the headers:

- **`x-ig-app-id`**: A static identifier for the Instagram Web Application.
- **`csrftoken`**: A unique token retrieved during the initial "Handshake" visit to the profile page.
  Our actor automates this entire dance. It visits the profile, harvests the cookies, extracts the CSRF token, and then uses it to authorize the actual API request. This "Multi-Step Handshake" is the gold standard of stealth scraping. 🛡️🎭💎

***

#### 🚀 Scalable Data Architecture: Integrating IG Data into Your Enterprise Stack 🏢💻🔗

Scraping is only 10% of the job. The real value is in what you do with the data. Our actor is designed to be the "Input Layer" for a much larger enterprise architecture.

##### Pattern 1: The Influence Auditor (Marketing Tech)

1. **Input**: A list of handles from a new campaign.
2. **Process**: Run the scraper to get ER scores.
3. **Result**: Use a script to filter only those with ER > 3%. Automatically send contract offers to the winners.

##### Pattern 2: The Trend Spotter (Market Research)

1. **Input**: 500 top-tier influencer handles in the "Beauty" niche.
2. **Process**: Run the scraper every 24 hours.
3. **Result**: Use Natural Language Processing (NLP) on the captions to identify trending hashtags and product mentions before they hit the mainstream news.

##### Pattern 3: The Content Archive (Legal & Compliance)

1. **Input**: Brand handles and authorized partners.
2. **Process**: Scrape every time a new post is detected (via scheduling).
3. **Result**: Store the high-res display URLs and captions in a permanent AWS S3 bucket for legal auditing and historical record-keeping.

***

#### 📊 Real-World Case Study: Influence Auditing for a Global Fashion Brand 👗👠💼

A major European fashion house was planning a $2 million influencer campaign. They had a list of 50 candidates, each claiming massive followings.

##### The Problem

Manual auditing was taking weeks, and the marketing team was relying on screenshots provided by the influencers (which can be easily edited).

##### The Solution

They used the **Instagram Analytics Tool** to scrape all 50 profiles in under 10 minutes.

- **Finding 1**: 15 influencers had "Fake Following" (ER < 0.2%).
- **Finding 2**: 5 influencers were consistently under-reporting their video views.
- **Finding 3**: 3 influencers were tagging "Grey Market" competitor brands in their older, un-deleted posts.

##### The Result

The brand cut the list to 27 "High-Integrity" creators and saw a 40% increase in campaign ROI compared to the previous year. This is the power of data-driven marketing. 📈💎🔥

***

#### 🏛️ Social Media as a Digital Heritage: The Role of Scrapers in Modern History 🌍📜🏛️

For decades, we relied on newspapers and TV to record our history. Today, the most important cultural shifts happen in the "Feed."

##### Recording the Unseen

Platforms like Instagram are notoriously "Volatile." Posts are deleted, accounts are banned, and comments disappear. For sociologists and historians, this represents a massive loss of primary source material.

- **Political Discourse**: How leaders use visuals to communicate during crises.
- **Linguistic Shifts**: The birth of new slang and emojis in the "Wild" of the captions.
- **Fashion & Aesthetics**: Tracking the rapid cycle of visual trends (e.g., "Quiet Luxury" vs "Streetwear").

By using our scraper, libraries and archives can create "Digital Snapshots" of these ephemeral moments, ensuring that the 21st-century culture is preserved and researchable for generations to come. 🌍🏛️📜

***

#### 🌍 Overcoming Geographic Barriers: The Global Reach of Instagram Scrapers 🛡️🌐🗺️

Instagram's content is not uniform across the globe. What you see depends on where you are.

##### Regional Censorship & IP Blocking

In many countries, social media access is restricted or filtered. Furthermore, Instagram itself might block certain content in specific regions due to local laws (e.g., the German "NetzDG" law).
Using **Apify Residential Proxies** with our tool allows you to:

- **Scrape "Behind the Wall"**: See what users in restricted regions are seeing.
- **Global Brand Consistency**: Ensure your brand's message is being translated and displayed correctly across all localized accounts (e.g., @nike\_us vs @nike\_japan).
- **Avoid Local Bans**: Some regions have "Over-aggressive" rate limiting on specific IP ranges. Rotating through a global proxy network ensures 100% uptime regardless of local network instability.

***

#### 🛠️ Developer's Guide: Optimizing your Scrapers for Maximum Throughput ⚙️💻⚡

If you are a developer looking to build the next big social media analytics platform, pay attention to these optimization tips:

##### 1. Master the Cooldown

Instagram's rate-limit is "Sliding." If you hit them too fast (e.g., 1 request per second), you will receive a 403 status. The **Instagram Analytics Tool** includes a smart 10-second delay. We recommend keeping this to ensure a long, uninterrupted run.

##### 2. Handle the "Slider" (Sidecars) Correctly

Many post types are "Sidecars" (multiple images/videos in one post). The **Instagram Analytics Tool** specifically maps these in the `slider` array. If you only look at the `display_url` of the first node, you are missing 80% of the content. Always iterate through the sidecar nodes for a complete archive.

##### 3. Monitor the `x-ig-app-id`

While this ID is currently static (`936619743392459`), it changes roughly every 6-12 months as Instagram updates its web architecture. Our team monitors this, but as a best practice, always check your logs for `400 Bad Request` which is a telltale sign of an outdated App ID.

***

#### 🛡️ Ethical Scraping, Privacy & The Future of Data Collection 🏛️🛡️⚖️

As we move into an era of more stringent data privacy laws (GDPR, CCPA), the way we scrape must evolve.

- **Public Data is Public**: We only scrape what a user has chosen to share with the world. This is the "Open Public Record."
- **Non-Invasive**: We don't try to "Hack" or "Bypass" private settings. We respect the user's choice to be private.
- **Transparent Usage**: Building tools that give data back to the researchers and academics who need it.

***

#### 🚀 Conclusion: The Gateway to Professional Instagram Intelligence 🏆💎🚀✨🌟🔥

Don't settle for surface-level metrics or flaky tools that break as soon as they see a proxy. The **Instagram Analytics Tool** is more than just a scraper; it is an industrial-grade intelligence engine. Whether you are auditing accounts for a multi-million dollar campaign, building an AI dataset, or preserving digital history, our tool provides the stability, depth, and stealth you need to succeed.

Stop guessing. Start scraping. Step into the future of social media data today and see what you've been missing. 🏆💎🚀🔥🎬✨✨🌟💎🏺

***

#### 📊 Technical Data Dictionary (Field Descriptions) 📖📋🏛️

For full system integration, here is the technical field mapping:

| Field | Type | Complexity | Description |
|-------|------|------------|-------------|
| `username` | String | Low | The profile handle (unique identifier). |
| `is_business_account` | Boolean | Low | Flags if the account has business tools enabled. |
| `avg_image_engagement` | Float | High | Live calculated ER for all static image posts. |
| `video_duration` | Float | Medium | Length of the video/reel in seconds. |
| `tagged_users` | Array\[Obj] | High | List of every user mentioned in the content. |
| `bio_links` | Array\[Obj] | Medium | All external URLs present in the user profile. |
| `uploaded_at` | DateTime | Medium | Precise timestamp of post creation. |

#### 🛠️ Contact & Custom Development 🏗️📡

Need a custom feature? Want to extract something even deeper?

- **Support**: Reach out via the Apify Console for technical troubleshooting.
- **Custom Builders**: If you need a custom version of this scraper for a specific enterprise project, our team is available for hire.
- **Feedback**: We love hearing from our users. Let us know what features you want to see next! 🌟🚀✨

### 🚀 Conclusion: Step into the New era of Instagram Intelligence 🏆💎🚀✨🌟🔥🏺🏛️

Don't wait for your competitors to have better data. Start your run today and unlock the full potential of Instagram. 🏆💎🚀🔥🎬✨✨🌟💎🛡️

# Actor input Schema

## `urls` (type: `array`):

Enter the Instagram profile URLs you want to scrape.

## Actor input object example

```json
{
  "urls": [
    "https://www.instagram.com/kyliejenner/",
    "https://www.instagram.com/leomessi/"
  ]
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.instagram.com/kyliejenner/",
        "https://www.instagram.com/leomessi/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapers-hub/instagram-analytics-tool").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "urls": [
        "https://www.instagram.com/kyliejenner/",
        "https://www.instagram.com/leomessi/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapers-hub/instagram-analytics-tool").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.instagram.com/kyliejenner/",
    "https://www.instagram.com/leomessi/"
  ]
}' |
apify call scrapers-hub/instagram-analytics-tool --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapers-hub/instagram-analytics-tool",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Analytics Tool",
        "description": "📊 Instagram Analytics Tool helps you track engagement, growth, and top-performing content with clear insights. 🚀 Optimize your strategy, boost reach, and monitor trends in one dashboard. 📈 Start analyzing smarter today!",
        "version": "1.0",
        "x-build-id": "ajJKpUhnthwfvVvzn"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapers-hub~instagram-analytics-tool/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapers-hub-instagram-analytics-tool",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapers-hub~instagram-analytics-tool/runs": {
            "post": {
                "operationId": "runs-sync-scrapers-hub-instagram-analytics-tool",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapers-hub~instagram-analytics-tool/run-sync": {
            "post": {
                "operationId": "run-sync-scrapers-hub-instagram-analytics-tool",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls"
                ],
                "properties": {
                    "urls": {
                        "title": "Profile URLs",
                        "type": "array",
                        "description": "Enter the Instagram profile URLs you want to scrape.",
                        "items": {
                            "type": "string"
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
