Instagram Post Scraper avatar

Instagram Post Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Instagram Post Scraper

Instagram Post Scraper

Scrape public Instagram posts by username or profile URL. Extract captions, likes, comments, timestamps, image and video URLs, hashtags, and mentions into a clean, structured JSON dataset. Fast, reliable, and easy to configure — great for social monitoring, research, and content analytics work.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Biddut Hossain

Biddut Hossain

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

11 days ago

Last modified

Share

Scrape public Instagram posts by username or profile URL. Extract captions, likes, comments, timestamps, image and video URLs, hashtags, and mentions into a clean, structured JSON dataset. Fast, reliable, and easy to configure — great for social monitoring, research, and content analytics work.

⚠️ Before you use this

Instagram's Terms of Service prohibit automated scraping of the platform, and Meta actively detects and blocks bot-like traffic. This Actor ships as a structural template only — the data-extraction step is a placeholder. To get real data, use one of:

  • Instagram Graph API — the official, compliant way to pull data from Instagram Business/Creator accounts you own or manage, via a Facebook Developer App.
  • Apify's published Instagram Scraper — a maintained, ToS-aware Actor already available in the Apify Store that you can call from your own Actor via the Apify API/client instead of writing scraping logic yourself.

Input

FieldTypeDescription
usernamesarray of stringsInstagram usernames or full profile URLs to fetch posts from.
resultsLimitintegerMax number of posts to fetch per profile (default: 20).
proxyConfigurationobjectApify Proxy settings used for outbound requests.

Example input:

{
"usernames": ["natgeo", "https://www.instagram.com/nasa/"],
"resultsLimit": 20,
"proxyConfiguration": { "useApifyProxy": true }
}

Output

Each item pushed to the dataset has the shape:

{
"username": "natgeo",
"postUrl": "https://www.instagram.com/p/xxxxxxx/",
"caption": "Example caption text...",
"likesCount": 1234,
"commentsCount": 56,
"timestamp": "2026-08-01T12:00:00Z",
"mediaUrl": "https://example.com/media.jpg"
}

Project structure

.
├── .actor/
│ ├── actor.json # Actor metadata & dataset view config
│ └── input_schema.json # Defines the Input UI shown in Apify Console
├── src/
│ ├── __init__.py
│ ├── __main__.py # Entry point: python3 -m src
│ └── main.py # Actor logic
├── Dockerfile
├── requirements.txt
└── README.md

Running locally on Apify

  1. Push this code to your Actor in the Apify Console Web IDE (or via Git integration).
  2. Click Build.
  3. Go to the Input tab, fill in usernames, and click Start.
  4. Check the Log tab for progress and the Dataset tab for output.

Tech stack