Instagram Posts Scraper Lowcost (0.25$/1K 🤑) avatar

Instagram Posts Scraper Lowcost (0.25$/1K 🤑)

Deprecated

Pricing

$0.25 / 1,000 posts

Go to Apify Store
Instagram Posts Scraper Lowcost (0.25$/1K 🤑)

Instagram Posts Scraper Lowcost (0.25$/1K 🤑)

Rising star
Deprecated

Cost-optimized Instagram scraper for public profiles. Extract posts, captions, engagement metrics, coauthors, and media without authentication. HTTP-only (no browser), 10x cheaper than alternatives. Supports batch scraping with residential proxies and smart rate limiting.

Pricing

$0.25 / 1,000 posts

Rating

5.0

(1)

Developer

Samy

Samy

Maintained by Community

Actor stats

3

Bookmarked

45

Total users

24

Monthly active users

0.18 hours

Issues response

21 hours ago

Last modified

Share

Instagram Posts Scraper (Low-Cost)

Fast and affordable Instagram scraper for extracting posts from public profiles. No Instagram account required - accesses public data only.

What does Instagram Posts Scraper do?

Instagram Posts Scraper extracts post data from public Instagram profiles using Instagram's public APIs. It retrieves images, videos, carousels, captions, engagement metrics, and user information without requiring any Instagram authentication.

Key features:

  • Scrape public profiles - Extract posts with all metadata (likes, comments, views)
  • No session needed - Works without Instagram login or cookies
  • Cost-optimized - Significantly more affordable than browser-based scrapers
  • Automatic pagination - Fetch as many posts as you need (1-500 per profile)
  • Smart rate limiting - Built-in delays and retry logic to avoid blocks
  • Residential proxies - Integrated Apify Proxy support

Why scrape Instagram?

Instagram data extraction enables powerful business insights and automation:

  • Track competitors - Monitor what content performs best for rival brands
  • Influencer research - Discover creators with high engagement for partnerships
  • Hashtag analysis - See what's trending and optimize your content strategy
  • Brand monitoring - Track how customers engage with your posts
  • Market research - Analyze visual trends in your industry
  • Lead generation - Find potential customers engaging with relevant content

How to scrape Instagram profiles

  1. Create a free Apify account
  2. Open the Actor in Apify Console
  3. Add Instagram usernames - Enter one or more usernames (without @)
  4. Configure settings - Set how many posts to fetch per profile
  5. Click "Start" and wait for the scraper to finish
  6. Download your data - Export as JSON, CSV, Excel, or HTML

How much does it cost to scrape Instagram?

This scraper is designed to be highly cost-efficient by using HTTP requests instead of browser automation. The actual cost depends on:

  • Number of profiles you scrape
  • Posts per profile you extract
  • Proxy type (residential vs datacenter)
  • Apify plan you're subscribed to

Key cost advantages:

  • No browser overhead - HTTP-only requests use minimal compute units
  • Efficient memory usage - 512MB footprint (vs 4-8GB for browser scrapers)
  • Smart proxy usage - Session pooling reduces proxy costs

With the Apify Free plan, you can scrape a significant number of Instagram profiles every month at no cost. For high-volume extraction, paid plans offer better value.

Input

{
"usernames": ["natgeo", "nike", "cristiano"],
"postsPerProfile": 24,
"maxConcurrentProfiles": 3,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
},
"delayBetweenProfiles": 1000,
"delayBetweenRequests": 500,
"maxRetries": 3
}

Input parameters

FieldTypeRequiredDescription
usernamesArrayYesInstagram usernames to scrape (without @). Example: ["natgeo", "nike"]
postsPerProfileIntegerNoNumber of posts to fetch per profile (1-500). Default: 24
maxConcurrentProfilesIntegerNoHow many profiles to scrape in parallel (1-10). Default: 3
proxyObjectNoApify Proxy configuration. Default: Residential proxies enabled
delayBetweenProfilesIntegerNoDelay in milliseconds between profile batches. Default: 1000
delayBetweenRequestsIntegerNoDelay in milliseconds between pagination requests. Default: 500
maxRetriesIntegerNoMaximum retry attempts for failed requests. Default: 3

Note: Check the Input tab for the complete list of input fields with descriptions.

Output

The scraper saves all extracted data to the Apify dataset in structured JSON format. Each post includes:

Post data

  • Identifiers: pk, id, code (shortcode for URL)
  • Media: media_type, image_versions2, video_versions, dimensions
  • Content: caption.text, hashtags, mentions
  • Engagement: like_count, comment_count, view_count
  • Metadata: taken_at, product_type, location
  • User info: user.username, user.full_name, user.is_verified
  • Carousel: carousel_media[] (for multi-image/video posts)
  • Tags: usertags.in[] (tagged users with positions)

Output example

{
"pk": "3284567890123456789",
"id": "3284567890123456789",
"code": "C5xYzAbCdEf",
"taken_at": 1704067200,
"media_type": 1,
"product_type": "feed",
"caption": {
"pk": "18012345678901234",
"text": "Exploring the beauty of nature 🌲 #wildlife #photography"
},
"like_count": 45892,
"comment_count": 1247,
"user": {
"pk": "25025320",
"username": "natgeo",
"full_name": "National Geographic",
"is_verified": true,
"profile_pic_url": "https://scontent.cdninstagram.com/..."
},
"image_versions2": {
"candidates": [
{
"width": 1080,
"height": 1350,
"url": "https://scontent.cdninstagram.com/..."
}
]
},
"scraped_username": "natgeo",
"scraped_at": 1704067200,
"post_url": "https://www.instagram.com/p/C5xYzAbCdEf/"
}

Export formats

Download your data in multiple formats:

  • JSON - Structured data for APIs and databases
  • CSV - For Excel and data analysis tools
  • Excel - Ready-to-use spreadsheets
  • HTML - Human-readable tables
  • XML - Legacy system integration

Yes, when done ethically. This scraper only accesses publicly available data that Instagram exposes for SEO, link previews, and website embeds. It does not:

  • ❌ Extract private user data (emails, phone numbers, private posts)
  • ❌ Bypass login walls or authentication
  • ❌ Access content from private accounts
  • ❌ Store personal data unnecessarily

However, you should:

  • âś… Review Instagram's Terms of Service
  • âś… Respect rate limits and implement delays
  • âś… Comply with GDPR if scraping EU users
  • âś… Have a legitimate purpose for data collection
  • âś… Not use data for spam, harassment, or unauthorized contact

Our scrapers are ethical and only extract what users have chosen to share publicly. If you're unsure about your use case, consult legal counsel.

Learn more: Is web scraping legal? (Apify Blog)

Using Instagram Posts Scraper with the Apify API

The Apify API gives you programmatic access to the Apify platform. Run any Actor, manage runs, access datasets, and more from your applications.

Run the Actor via API:

curl -X POST https://api.apify.com/v2/acts/YOUR_USERNAME~instagram-posts-scraper-lowcost/runs \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"usernames": ["natgeo", "nike"],
"postsPerProfile": 24
}'

Fetch results:

curl https://api.apify.com/v2/datasets/YOUR_DATASET_ID/items \
-H "Authorization: Bearer YOUR_API_TOKEN"

Client libraries

Example (Node.js):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('YOUR_USERNAME/instagram-posts-scraper-lowcost').call({
usernames: ['natgeo', 'nike'],
postsPerProfile: 24,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Resources:

Integrations

Connect Instagram Posts Scraper to your favorite tools:

Learn more: Apify Integrations Documentation

Advanced configuration

Proxy settings

For best results, use residential proxies (default):

{
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Datacenter proxies (cheaper but higher block rate):

{
"proxy": {
"apifyProxyGroups": ["SHADER"]
}
}

Custom proxies:

{
"proxy": {
"useApifyProxy": false,
"proxyUrls": ["http://proxy1.com:8080", "http://proxy2.com:8080"]
}
}

Rate limiting

Adjust delays to balance speed vs reliability:

{
"delayBetweenProfiles": 2000,
"delayBetweenRequests": 1000,
"maxRetries": 5
}
  • Lower delays = Faster scraping, higher block risk
  • Higher delays = Slower but more reliable

Concurrency

Control parallel processing:

{
"maxConcurrentProfiles": 5
}
  • 1-3: Conservative (recommended for stability)
  • 4-7: Moderate (good balance)
  • 8-10: Aggressive (faster but may trigger rate limits)

FAQ

Does this scraper require an Instagram account?

No. This scraper accesses Instagram's public APIs that don't require authentication. It works without any Instagram login or session cookies.

Can I scrape private accounts?

No. Private Instagram profiles are not accessible without authentication. The scraper will return an error for private accounts.

How many posts can I scrape per profile?

You can scrape 1-500 posts per profile. Instagram's API pagination has practical limits beyond this range.

What if I get rate limited?

Increase the delayBetweenRequests and delayBetweenProfiles parameters. Use residential proxies (not datacenter) for better reliability.

Can I scrape Stories or Highlights?

No. Stories and Highlights require authentication. This scraper only accesses public feed posts.

How do I scrape comments?

This Actor focuses on posts only. For comment scraping, check out other Apify Instagram scrapers with comment extraction features.

What data format is supported?

Data is saved to Apify datasets and can be exported as:

  • JSON (for APIs)
  • CSV (for Excel/analysis)
  • Excel (.xlsx)
  • HTML (readable tables)
  • XML (legacy systems)

Can I schedule recurring scraping?

Yes! Use Apify Schedules to run the scraper automatically (hourly, daily, weekly, etc.).

The scraper failed. What do I do?

  1. Check the log for error messages
  2. Verify usernames are correct and profiles are public
  3. Increase delays if you see rate limit errors
  4. Try using residential proxies instead of datacenter
  5. If the issue persists, open an Issue on GitHub

You might also like


Need help? Contact Apify Support or check the Apify Documentation.