Instagram Scraper Pro avatar

Instagram Scraper Pro

Pricing

from $0.01 / verified instagram profile intelligence

Go to Apify Store
Instagram Scraper Pro

Instagram Scraper Pro

Extract Instagram profiles, posts, stories, hashtags, and engagement metrics. Influencer research and social media analytics without an API key.

Pricing

from $0.01 / verified instagram profile intelligence

Rating

1.0

(1)

Developer

AutomateLab

AutomateLab

Maintained by Community

Actor stats

2

Bookmarked

104

Total users

5

Monthly active users

4 days ago

Last modified

Share

AI AUTOMATION SOCIAL_MEDIA BUSINESS_INTELLIGENCE LEAD_GENERATION

Apify Actor License: MIT

Pay-Per-Event

Influencer ROI Auditor: Deep Instagram business intelligence for OpenClaw agents

Description

Influencer ROI Auditor: Deep Instagram business intelligence for OpenClaw agents. Extract engagement rates, verified emails, and brand DNA with 90% cost savings. No API key required.

Features

  • Business intelligence and engagement analytics
  • CRM-ready export formats including Salesforce, HubSpot, CSV, and Markdown
  • Comment extraction and sentiment analysis
  • Contains the Actor's definition and input/output schemas.
  • Follower metrics and growth rate tracking
  • Memory-optimized extraction pipeline
  • Multi-target batch extraction
  • Pay-per-event billing with no charge for empty results
  • Premium residential proxy support for maximum success rate
  • Smoke test and AI agent handshake for availability checks
  • [2026-03-12] โ€” outputSchema description added (spec-005)

How It Works

  • Configuration Node - Contains the Actor's definition and input/output schemas. ---

Quick Start

# Run via Apify API
apify run -a red.cars/instagram-scraper-pro
# Or configure input and click Run on:
# https://apify.com/red.cars/instagram-scraper-pro

Running on Apify Platform

Set API_KEY in your Apify Console secrets (if required), configure input via the Actor input schema UI, and click Run.

Input Schema

| Parameter | Type | Description | Default |

|-----------|------|-------------|---------|

Input

| target | string | Instagram username, URL, or comma-separated list (e.g., @nike, @tesla, https://instagram.com/nike, nike,adidas,tesla) Required (editor: textfield)
Example: @nike
Prefill: @tesla | "@nike" | | search | string | Search Instagram for users, hashtags, or places (e.g., 'fitness', 'New York') (editor: textfield)
Example: fitness | - | | searchType | enum | Type of Instagram search to perform (editor: select)
Options: user, hashtag, place, users, hashtags, places | "users" | | resultsType | enum | What data to extract from found items (editor: select)
Options: details, posts | "details" | | analysisType | enum | Type of Instagram analysis to perform (editor: select)
Options: profile, posts, competitors, hashtags, search, comments, location
Prefill: profile | "profile" | | searchLimit | integer | Maximum search results to find (1-100) (editor: number)
Range: min: 1, max: 100 | 10 | | resultsLimit | integer | Maximum results per found item (1-1000) (editor: number)
Range: min: 1, max: 1000
Prefill: 10 | 10 | | maxResults | integer | Maximum number of results to extract (1-1000) - Backward compatibility (editor: number)
Range: min: 1, max: 1000
Prefill: 1 | 10 | | debugMode | boolean | Enable minimal extraction for health checks and testing. Guarantees success within 300s. (editor: checkbox)
Prefill: true | false | | includeBusinessIntelligence | boolean | Add engagement rate calculation, hashtag scoring, and competitive analysis (editor: checkbox)
Prefill: false | false | | exportFormat | enum | Choose output format for your analysis (editor: select)
Options: json, csv, salesforce, hubspot, markdown
Prefill: json | "json" | | checkOnly | boolean | When true, returns immediately with capability metadata without scraping. Used by AI agents to verify availability before committing to a paid run. Free, <5 seconds. (editor: checkbox) | false |

Infrastructure & Reliability

| proxyType | enum | Choose your preferred balance of cost vs reliability. Standard (Datacenter) is faster; Premium (Residential) is most reliable for high-security targets. (editor: select)
Options: DATACENTER, RESIDENTIAL
Prefill: DATACENTER | "RESIDENTIAL" |

Required fields: target

Output Schema

The output conforms to the following TypeScript interfaces:

InstagramProfile

id?: string;
url: string;
username: string;
fullName?: string;
displayName: string;
biography?: string;
bio: string;
externalUrl?: string | null;
externalUrlShimmed?: string;
NEW: Competitor has this
website?: string | null;
followersCount: number;
followsCount?: number;
followingCount: number;
postsCount: number;
verified?: boolean;
isVerified: boolean;
isBusinessAccount: boolean;
businessCategoryName?: string | null;
category?: string | null;
private?: boolean;
isPrivate?: boolean;
NEW: Competitor uses this field name
// Profile images (match competitor exactly)
profilePicUrl?: string;
profilePicUrlHD?: string;
hasChannel?: boolean;
highlightReelCount?: number;
igtvVideoCount?: number;
latestIgtvVideos?: any[];
NEW: Competitor has this
// Account status (match competitor exactly)
joinedRecently?: boolean;
facebookPage?: any;
latestPosts?: InstagramPost[];
following?: any[];
followedBy?: any[];
extractionMetadata: ExtractionMetadata;
extractionMethod: string;
extractedAt: string;
confidence: number;

InstagramPost

id: string;
url: string;
inputUrl?: string;
NEW: Competitor has this
type?: string;
shortCode?: string;
caption: string;
hashtags: string[];
mentions: string[];
likesCount: number;
commentsCount: number;
firstComment?: string;
NEW: Competitor has this
latestComments?: Array<{
ownerUsername: string;
text: string;
NEW: Competitor has this
// Media and dimensions (match competitor exactly)
displayUrl?: string;
dimensionsHeight?: number;
NEW: Competitor has this
dimensionsWidth?: number;
NEW: Competitor has this
imageUrl?: string;
videoUrl?: string;
images?: string[];
NEW: Competitor has this for carousels
displayResourceUrls?: string[];
NEW: Competitor has this
alt?: string;
NEW: Competitor has this (accessibility caption)
// Timing (match competitor exactly)
timestamp: string;
ownerUsername?: string;
ownerFullName?: string;
ownerId?: string;
locationName?: string | null;
locationId?: string | null;
NEW: Competitor has this
// Video specific (match competitor exactly)
videoViewCount?: number;
isSponsored?: boolean;
contentType?: 'photo' | 'video' | 'carousel' | 'reel';
childPosts?: Array<{
type: string;
displayUrl: string;
dimensionsHeight: number;
dimensionsWidth: number;
NEW: Competitor has this
// Enhanced with shared infrastructure metadata
extractionMetadata: ExtractionMetadata;
extractionMethod: string;
extractedAt?: string;
confidence?: number;

InstagramHashtag

id?: string;
name: string;
url?: string;
postCount?: number;
postsCount?: number;
topPosts: InstagramPost[];
latestPosts?: InstagramPost[];
recentPosts?: InstagramPost[];
topPostsOnly?: boolean;
public?: boolean;
profilePicUrl?: string;
extractionMethod: string;
extractedAt: string;
confidence: number;

InstagramComment

id: string;
text: string;
author: {
username: string;
profilePicUrl: string;
isVerified: boolean;
likesCount: number;
timestamp: string;
replies: InstagramComment[];
extractionMethod: string;
extractedAt: string;
confidence: number;

InstagramLocation

id: string;
name: string;
url?: string;
slug?: string;
lat?: number;
lng?: number;
addressStreetAddress?: string;
addressCityName?: string;
addressCountryCode?: string;
description?: string;
phone?: string;
address?: any;
coordinates?: {
lat: number;
lng: number;
postCount?: number;
postsCount?: number;
topPosts: InstagramPost[];
latestPosts?: InstagramPost[];
recentPosts?: InstagramPost[];
public?: boolean;
extractionMethod: string;
extractedAt: string;
confidence: number;

BusinessIntelligence

engagementRate: number;
averageLikes: number;
averageComments: number;
topHashtags: HashtagAnalysis[];
competitorRank: number;
contentTypes: ContentTypeBreakdown;
optimalPostingTimes: PostingTimeAnalysis[];

HashtagAnalysis

hashtag: string;
frequency: number;
score: number;

ContentTypeBreakdown

photos: number;
videos: number;
carousels: number;
reels: number;

PostingTimeAnalysis

day: string;
time: string;
engagementScore: number;

CompetitorComparison

profiles: InstagramProfile[];
comparison: {
engagementRates: number[];
followerGrowth: number[];
contentStrategy: string[];
marketPositioning: string[];
recommendations: string[];

ExtractionResult

profile?: InstagramProfile;
posts?: InstagramPost[];
hashtags?: InstagramHashtag[];
businessIntelligence?: BusinessIntelligence;
competitorComparison?: CompetitorComparison;
metadata: {
extractionMethod: string;
processingTime: number;
successRate: number;
totalResults: number;
batchIndex?: number;
verticalScaling?: boolean;
inputType?: string;
extractionMode?: string;

ExtractionError

type: 'PLATFORM_ERROR' | 'VALIDATION_ERROR' | 'EXTRACTION_ERROR' | 'RATE_LIMIT_ERROR';
message: string;
suggestion: string;
retryable: boolean;

Example Output

{
"results": [
{
"url": "https://www.instagram.com/nike",
"username": "nike",
"fullName": "Nike",
"displayName": "Nike",
"biography": "Just do it.\n\nSwoosh.",
"externalUrl": "https://www.nike.com",
"website": "https://www.nike.com",
"followersCount": 286000000,
"followsCount": 45,
"followingCount": 45,
"postsCount": 7850,
"verified": true,
"isVerified": true,
"isBusinessAccount": true,
"businessCategoryName": "Footwear",
"category": "Footwear",
"private": false,
"isPrivate": false,
"profilePicUrl": "https://scontent-xxfb5-1.cdninstagram.com/v/...",
"profilePicUrlHD": "https://scontent-xxfb5-1.cdninstagram.com/v/.../...jpg",
"highlightReelCount": 24,
"igtvVideoCount": 142,
"latestPosts": [
{
"id": "3456789012345678901",
"url": "https://www.instagram.com/p/DH5x1234567/",
"shortCode": "DH5x1234567",
"type": "image",
"caption": "Fresh drops. ๐Ÿƒโ€โ™‚๏ธ #Nike #JustDoIt",
"hashtags": [
"Nike",
"JustDoIt",
"Swoosh"
],
"mentions": [],
"likesCount": 485200,
"commentsCount": 3241,
"firstComment": "Can't wait! ๐Ÿ’จ",
"latestComments": [
{
"ownerUsername": "sneakerhead_mike",
"text": "Need these in my size!"
},
{
"ownerUsername": "fit_mom_23",
"text": "Obsessed with this colorway ๐Ÿ”ฅ"
}
],
"displayUrl": "https://scontent-xxfb5-1.cdninstagram.com/v/...jpg",
"dimensionsHeight": 1080,
"dimensionsWidth": 1080,
"timestamp": "2026-03-22T14:30:00.000Z",
"ownerUsername": "nike",
"ownerFullName": "Nike",
"ownerId": "528817099",
"locationName": null,
"locationId": null,
"isSponsored": false,
"contentType": "photo",
"childPosts": [],
"extractionMetadata": {
"extractionTimestamp": "2026-03-23T10:00:00.000Z",
"extractionMethod": "direct-instagram-service",
"confidence": 0.95,
"dataFreshness": "live"
},
"extractionMethod": "direct-instagram-service",
"extractedAt": "2026-03-23T10:00:00.000Z",
"confidence": 0.95
}
],
"extractionMetadata": {
"extractionTimestamp": "2026-03-23T10:00:00.000Z",
"extractionMethod": "direct-instagram-service",
"confidence": 0.95,
"dataFreshness": "live"
},
"extractionMethod": "direct-instagram-service",
"extractedAt": "2026-03-23T10:00:00.000Z",
"confidence": 0.95
}
],
"metadata": {
"extractionTimestamp": "2026-03-23T10:00:00.000Z",
"totalResults": 1,
"successRate": 1,
"processingTimeMs": 2340,
"actorVersion": "1.1"
}
}

Pricing

Uses Apify's Pay-Per-Event (PPE) model โ€” you are charged per result returned. No charge for queries that return zero results.

EventPriceAvailable On
EventPriceAvailable On
-----------------------------
Price for Instagram Profile Report
Flat fee for a comprehensive Instagram profile intelligence report (includes posts, engagement, and metadata).
$0.01Free, Starter, Professional, Scale

See Apify PPE documentation for details on how billing works.

Use Cases

1. RAG Pipelines โ€” Vector Search and LLM Context

Feed extracted profiles, posts, and engagement data into a vector database (Pinecone, Weaviate, Qdrant) for retrieval-augmented generation:

// Pseudocode: Ingest into vector store
const profiles = await callActor('red.cars/instagram-scraper-pro', {
target: '@nike, @tesla, @redbull',
resultsLimit: 50,
includeBusinessIntelligence: true
});
for (const profile of profiles) {
const vector = await embedModel.embed(profile.biography + ' ' + profile.username);
await vectorStore.upsert({
id: profile.username,
values: vector,
metadata: { followers: profile.followersCount, platform: 'instagram', engagement: profile.engagementRate }
});
}
// Query: "Which influencers in the beauty niche have >1M followers?"
const results = await vectorStore.query({
filter: { platform: 'instagram', followers: { $gt: 1000000 }, niche: 'beauty' },
topK: 20
});

2. AI Agents โ€” Autonomous Decision Making

Use the smoke test mode to verify availability before committing to a paid run:

// Pseudocode: AI agent workflow
async function auditInfluencer(handle: string) {
// Step 1: Smoke test โ€” free, <5s, no charge
const check = await callActor('red.cars/instagram-scraper-pro', {
target: handle,
checkOnly: true
});
if (!check.capabilities?.includes('instagram-scraper-pro-profiles')) {
return { status: 'unavailable', reason: 'Actor not ready' };
}
// Step 2: Full extraction โ€” only if smoke test passes
const report = await callActor('red.cars/instagram-scraper-pro', {
target: handle,
resultsLimit: 20,
includeBusinessIntelligence: true,
exportFormat: 'json'
});
return { status: 'ready', report };
}

3. Dashboards โ€” Real-Time KPI Monitoring

Aggregate results across multiple targets for a live dashboard:

// Pseudocode: Aggregate for BI dashboard
const targets = ['@nike', '@adidas', '@underarmour', '@puma', '@newbalance'];
const batch = await Promise.all(
targets.map(handle =>
callActor('red.cars/instagram-scraper-pro', {
target: handle,
resultsLimit: 1,
includeBusinessIntelligence: true
})
)
);
const kpis = batch.map(r => ({
handle: r.username,
followers: r.followersCount,
engagementRate: r.engagementRate,
avgLikes: r.averageLikes,
avgComments: r.averageComments,
lastUpdated: new Date().toISOString()
}));
// Push to your BI tool (Metabase, Grafana, Superset, etc.)
await dashboard.updateMetrics('instagram_brand_audit', kpis);

4. Market Intelligence โ€” Trend and Pattern Tracking

Track Instagram presence over time for competitive intelligence:

// Pseudocode: Scheduled competitive tracking
// Run daily via Apify Scheduler
const competitors = ['@nike', '@adidas', '@underarmour'];
const today = new Date().toISOString().split('T')[0];
for (const handle of competitors) {
const snapshot = await callActor('red.cars/instagram-scraper-pro', {
target: handle,
resultsLimit: 10
});
await db.competitorSnapshots.insert({
date: today,
handle: snapshot.username,
followersCount: snapshot.followersCount,
postsCount: snapshot.postsCount,
engagementRate: snapshot.engagementRate,
topHashtags: snapshot.topHashtags?.slice(0, 5)
});
}
// Query: "Which brand is growing fastest?"
const growth = await db.competitorSnapshots.aggregate([
{ $group: { _id: '$handle', growth: { $last: '$followersCount' - $first: '$followersCount' } } },
{ $sort: { growth: -1 } }
]);

FAQ

How do I get started?

  1. Go to apify.com/red.cars/instagram-scraper-pro
  2. Configure input via the UI or pass a JSON payload
  3. Click Run or call via the Apify API
  4. Receive structured Instagram data in your dataset

Do I need an API key?

Yes. This actor requires a API_KEY secret. Set it in Apify Console, then go to Actors โ†’ Instagram Scraper Pro โ†’ Environment โ†’ Secrets.

What is the rate limit?

Rate limits depend on your Apify plan. Higher tiers (Professional, Scale) get more compute units and faster extraction. Using Premium (Residential) proxy maximizes success rate for high-security targets.

This actor extracts publicly available data. You are responsible for complying with Instagram's Terms of Service and applicable laws. Do not use extracted data for spam, harassment, or unauthorized commercial purposes. See Legal section for full details.

What happens if there are no results?

No charge for empty results under Pay-Per-Event pricing. If a profile is private, non-existent, or blocked, the actor returns an error with a suggested fix โ€” no charge is incurred.

Does this work outside the US?

Yes. Use the Premium (Residential) proxy option for best results internationally. Standard datacenter proxies work for most targets but may be rate-limited in certain regions.

How accurate is the data?

Extraction accuracy depends on target visibility and proxy settings:

  • Public accounts: ~95%+ accuracy with residential proxy
  • Business accounts: ~90%+ accuracy with engagement metrics
  • Private accounts: Cannot be accessed (by platform design)
  • Data reflects the moment of extraction โ€” use Apify Scheduler for continuous monitoring

How is this different from the official API?

FactorOfficial APIThis Actor
CostHigh (per-request fees)Pay-per-event, ~90% cheaper
Rate limitsStrictFlexible with proxy options
Data depthLimited fieldsFull profile + engagement
Auth requiredYesNo
Setup timeHoursMinutes

Troubleshooting

ErrorCauseFix
ErrorCauseFix
-------------------
NETWORK_ERRORNetwork connectivity issue or proxy failureCheck your internet connection. Retry with a different proxy type.
VALIDATION_ERRORInvalid input parameters or missing required fieldReview the input schema and ensure all required fields are provided.
PLATFORM_ERRORTarget platform is experiencing issuesInstagram may be down or rate-limiting. Try again in 10-15 minutes.
MEMORY_ERRORExtraction exceeded memory limitsReduce resultsLimit or maxResults to stay within memory constraints.
BUDGET_EXCEEDEDPay-per-event budget limit reachedIncrease your event charge limit in Apify Console or wait for reset.

Known Limitations

  • Private accounts: Cannot extract data from private accounts without an active follow relationship
  • Rate limiting: Platform may temporarily block repeated requests from the same IP โ€” use residential proxy for high-security targets
  • Data freshness: Extracted data reflects the moment of extraction. Historical data retrieval is limited by platform constraints.
  • Content limits: Platforms impose retrieval limits on historical posts (typically 18-24 months of posts).
  • Geographic restrictions: Some content may be hidden based on user region settings. Residential proxy helps bypass geographic blocks.

Data Source: Instagram (instagram.com)

This actor extracts publicly available data from Instagram. Users must comply with:

  1. Instagram Terms of Service โ€” Review at instagram.com/legal
  2. Community Guidelines โ€” No spam, harassment, or automated scraping in violation of ToS
  3. Privacy Rights โ€” Do not use extracted data for unlawful purposes or privacy violations
  4. Attribution โ€” When displaying Instagram data, comply with attribution requirements

Disclaimer: This actor is provided as-is for legitimate data collection. Red.cars is not responsible for misuse. Users bear full responsibility for compliance with applicable laws and platform terms.

License: MIT โ€” Free to use, modify, and distribute. See LICENSE for details.


red.cars Intelligence Fleet โ€ข apify.com/red.cars โ€ข Version 1.1