# Instagram Post Scraper: Photos, Carousels, Likes, No Login (`themineworks/instagram-post-scraper`) Actor

Scrape public Instagram posts from profiles or post links: caption, hashtags, mentions, likes, comments, post time, type, every carousel image, video URL, location with coordinates, tagged users, coauthors and owner. No login or cookies. Pay per post.

- **URL**: https://apify.com/themineworks/instagram-post-scraper.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Social media, Lead generation, MCP servers
- **Stats:** 6 total users, 5 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 posts

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Instagram Post Scraper: Photos, Carousels, Likes, No Login

[![100 Instagram posts in 35 seconds from 5 profiles, with likes, comments, captions and every carousel image](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/instagram-post-scraper-hero.png)](https://console.apify.com/actors/8okBc9WStNe0W8BB0/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

From **The Mine Works**, makers of [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral) and [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), with over 140,000 runs across 170+ public actors.

### Why choose this actor?

- **Every post type, fully filled.** In our test on 5 October 2026, five brand profiles (Starbucks, The New York Times, Louis Vuitton, Coca-Cola, Google) returned **100 posts in 35 seconds**: photos, carousels and videos, each with likes, comments, caption, exact post time and owner, and every carousel slide's image link (436 image links across 121 sampled posts). No Instagram account, no cookies of yours, no browser.
- **Profiles or single post links, in one run.** Give usernames to get each profile's newest posts, paste post links to get exactly those posts, or mix both. A post that shows up twice is delivered and charged once.
- **You pay only for posts you receive.** Private accounts, usernames that do not exist and posts Instagram refused are listed in the run summary and never charged. Every outcome is explained in the `OUTPUT` record of the run.

[![Run it on Apify](https://api.apify.com/v2/key-value-stores/cUXz95yxflDho41nn/records/button-run.png)](https://console.apify.com/actors/8okBc9WStNe0W8BB0/input?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Part of The Mine Works Social media and video family:** [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Instagram Followers & Following](https://apify.com/themineworks/instagram-followers-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), [Reddit Search Scraper](https://apify.com/themineworks/reddit-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral).

### Try it in one minute

Paste this into the JSON tab of the input page. It returns the 10 newest posts of National Geographic in under 30 seconds.

```json
{
  "usernames": ["natgeo"],
  "maxPostsPerProfile": 10
}
```

You can give the actor two kinds of input, in any mix: `usernames` (a username like `natgeo`, a handle like `@natgeo`, or a profile link such as `https://www.instagram.com/natgeo/`) and `postUrls` (links to single posts: `https://www.instagram.com/p/<code>/` for a photo, carousel or video, or `/reel/<code>/`). A post link put in `usernames`, or a profile put in `postUrls`, is moved to the right list for you.

Apify's free plan includes $5 of credit every month, which covers about 2,700 posts at this actor's price.

#### Copy to your AI assistant

```
themineworks/instagram-post-scraper on Apify. Scrapes public Instagram posts (photos, carousels and videos) with no login, from profiles (newest posts first) or from single post links, and returns one row per post with shortCode, url, type (Image, Sidecar or Video), caption, hashtags, mentions, alt, likesCount, commentsCount, timestamp, ownerUsername, ownerFullName, ownerId, displayUrl, images (every carousel slide), childPosts, videoUrl, videoDuration, locationName, locationLat, locationLng, taggedUsers, coauthorProducers and isPaidPartnership. Call ApifyClient("TOKEN").actor("themineworks/instagram-post-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items. Required: usernames (array of usernames or profile links) and/or postUrls (array of post links). Optional: maxPostsPerProfile (default 12, 10 to 300), postTypes (any of image, carousel, video; default all), newerThan (a date like 2026-09-01 or a period like "30 days"), skipPinned (default true). Skip rows with _type "info"; the per profile and per link run summary is the key-value store record OUTPUT. Full spec: GET https://api.apify.com/v2/acts/themineworks~instagram-post-scraper/builds/default (Bearer TOKEN), which returns inputSchema and readme. Token: https://console.apify.com/account/integrations?fpr=ymnoit&utm_source=apify-readme&utm_medium=referral
```

### Key features

- **Up to 37 fields per post.** In our 121 sampled rows, 23 fields were filled in every row, including type, caption, likes, comments, exact time, owner, main image, size and the list of image links. Carousels add `carouselCount` and `childPosts`, videos add `videoUrl` and `videoDuration`, and a geotagged post adds its location name, id, latitude and longitude.
- **Every carousel slide.** `images` lists every slide's image link in order, and `childPosts` gives each slide's type, id, size, image link, video link (for a video slide) and the accounts tagged on that slide. Our sample held 56 carousels with up to 17 slides each.
- **Up to 300 posts per profile, up to 500 profiles per run.** Instagram serves a profile grid 12 posts at a time. In our tests we read NASA's grid 312 posts deep (26 pages, and Instagram still had more) without a login or a wall.
- **Filters that save money.** `postTypes` keeps only photos, carousels or videos; `newerThan` stops reading a profile as soon as its posts are older than your date, so a weekly run reads one or two pages per profile.
- **Location with coordinates.** A geotagged post comes with `locationName`, `locationId`, `locationLat` and `locationLng`, ready for a map.
- **Pinned posts handled.** Pinned posts sit on top of a grid whatever their age. They are skipped by default so you get the latest posts in date order; switch `skipPinned` off to keep them, flagged with `isPinned`.

### How to use it

#### Basic: the newest posts of one profile

```json
{
  "usernames": ["starbucks"],
  "maxPostsPerProfile": 24
}
```

#### Several profiles and a few post links in one run

```json
{
  "usernames": ["natgeo", "louisvuitton", "https://www.instagram.com/nytimes/"],
  "postUrls": [
    "https://www.instagram.com/p/DdHyaYAifb6/",
    "https://www.instagram.com/p/Dd1mj_IIOW-/"
  ],
  "maxPostsPerProfile": 12
}
```

Profiles run three at a time. If a linked post was already delivered from a profile in the same run, it is not repeated and not charged twice; the summary marks it `duplicate`.

#### Monthly brand content audit

Pull everything a set of brands posted last month, with likes and comments per post, to compare formats (photo, carousel or video) and posting frequency.

```json
{
  "usernames": ["starbucks", "dunkin", "costacoffee", "timhortons"],
  "maxPostsPerProfile": 100,
  "newerThan": "30 days"
}
```

Reading each profile stops at the first post older than 30 days. Scheduling tip: add a monthly schedule in Apify Console with this input and send the dataset to Google Sheets, so each month is its own tab.

#### Carousel swipe file for a design team

Collect only carousels from accounts known for strong carousels, with every slide's image link in `images`, so a designer can review them side by side.

```json
{
  "usernames": ["natgeo", "nytimes", "google"],
  "postTypes": ["carousel"],
  "maxPostsPerProfile": 30
}
```

With a type filter the actor reads up to three times more of each grid to find matches, and you pay only for the posts it returns.

#### Location map of a travel creator's posts

Pull a photographer's recent posts and plot the geotagged ones with `locationLat` and `locationLng`.

```json
{
  "usernames": ["chrisburkard"],
  "maxPostsPerProfile": 100
}
```

#### Track engagement on a list of campaign posts

Paste the links of the posts you paid for and run daily on a schedule to watch likes and comments grow.

```json
{
  "postUrls": [
    "https://www.instagram.com/p/DdHyaYAifb6/",
    "https://www.instagram.com/p/Dd1mj_IIOW-/"
  ]
}
```

When you give only post links, the example profiles prefilled in the form are left out automatically, so they are never scraped by accident.

### Input parameters

| Parameter | Type | Default | What it does |
| --- | --- | --- | --- |
| `usernames` | array of strings | `["natgeo", "nasa"]` | Public profiles to read posts from, newest first, up to 500 per run. Usernames, @handles and profile links all work. Post links here are moved to `postUrls`. Left out automatically when you give post links but keep this example list unchanged. |
| `postUrls` | array of strings | empty | Links to single posts (photo, carousel, video or reel), up to 1,000 per run. |
| `maxPostsPerProfile` | integer | `12` | Newest posts to return per profile, from 10 to 300. |
| `postTypes` | array of strings | `["image", "carousel", "video"]` | Which kinds of posts to return from profiles. All three means no filter. |
| `newerThan` | string | empty | Only posts newer than this, for profiles: a date (`2026-09-01`) or a period (`30 days`, `2 weeks`, `3 months`, `1 year`). Empty means no date limit. |
| `skipPinned` | boolean | `true` | Leave out posts pinned on top of a profile grid. |
| `proxyConfiguration` | object | `{"useApifyProxy": true}` | Apify datacenter proxy, all this actor needs. Residential groups are removed if selected. |

The actor also accepts the field names other post scrapers use, so existing integrations keep working: `username`, `directUrls`, `startUrls` and `urls` for input, `resultsLimit` for the per profile count, `onlyPostsNewerThan` for the date window and `skipPinnedPosts` for pinned posts.

### What data do you get?

One row per post. Fields, grouped:

- **The post**: `shortCode`, `id`, `url`, `type` (`Image`, `Sidecar` for a carousel, or `Video`), `productType` (`feed`, `carousel_container`, `clips` for a reel), `timestamp` (exact publish time, UTC), `dimensionsWidth`, `dimensionsHeight`, `captionIsEdited`.
- **Engagement**: `likesCount`, `commentsCount`, `countsHidden` (true when the owner hid the like count).
- **Text**: `caption`, `hashtags` and `mentions` (parsed from the caption, in the order written, without the # or @), and `alt`, Instagram's automatic description of the image.
- **Media**: `displayUrl` (main image, largest size served), `images` (every slide's image link, or the single photo), `carouselCount`, `childPosts` (per slide: `type`, `id`, `displayUrl`, `videoUrl`, `width`, `height`, `taggedUsers`), and for videos `videoUrl` and `videoDuration` in seconds. Instagram's media links are signed and expire after a few days, so download what you need soon after the run.
- **Owner and people**: `ownerUsername`, `ownerFullName`, `ownerId`, `ownerIsVerified`, `coauthorProducers` (collab partners), `taggedUsers` (on the post or any slide).
- **Context**: `locationName`, `locationId`, `locationLat`, `locationLng` when the post is geotagged, `isPaidPartnership`, `isPinned` (profile rows).
- **Where it came from**: `inputUrl` (the username or link you gave), `source` (`profile` or `post_url`), `scrapedAt`.

A collab post appears on the grid of every coauthor. When you read a coauthor's profile, `ownerUsername` is the account that posted it and `coauthorProducers` lists the partners. In our test, 5 of Chris Burkard's 10 newest grid posts were collabs posted by partners.

#### Stable fields for automations

These fields were present in every one of the 121 rows we sampled on 5 October 2026:

| Field | What it holds |
| --- | --- |
| `shortCode` | The post's code, the part after /p/ in its link |
| `url` | Link to the post |
| `id` | Instagram's numeric media id |
| `type` | `Image`, `Sidecar` or `Video` |
| `source` | `profile` or `post_url` |
| `inputUrl` | The username or link from your input |
| `caption` | Caption text |
| `likesCount` | Likes |
| `commentsCount` | Comments |
| `timestamp` | Publish time, ISO 8601 in UTC |
| `ownerUsername` | Account that posted it |
| `displayUrl` | Main image link |
| `images` | List of image links |
| `scrapedAt` | When the row was read |

These names will not change. New fields may be added, never renamed or removed.

#### Output examples

A carousel read from a profile (Louis Vuitton), trimmed:

```json
{
  "inputUrl": "louisvuitton",
  "source": "profile",
  "id": "3997817264719891340",
  "shortCode": "Dd7GZ70jYuM",
  "url": "https://www.instagram.com/p/Dd7GZ70jYuM/",
  "type": "Sidecar",
  "productType": "carousel_container",
  "caption": "Time in motion. Part of the pioneering Spin Time Air complication, an ethereal h...",
  "hashtags": ["LVTambour", "LVHighWatchmaking", "LaFabriqueduTemps", "LouisVuitton"],
  "alt": "Photo by Louis Vuitton on October 01, 2026. May be an image of text.",
  "likesCount": 7306,
  "commentsCount": 82,
  "timestamp": "2026-10-01T16:00:01.000Z",
  "ownerUsername": "louisvuitton",
  "ownerFullName": "Louis Vuitton",
  "ownerIsVerified": true,
  "displayUrl": "https://scontent-lga3-2.cdninstagram.com/v/t51.82787-15/827773931_...jpg",
  "dimensionsWidth": 1080,
  "dimensionsHeight": 1350,
  "images": ["https://scontent-lga3-2.cdninstagram.com/v/t51.82787-15/827773931_...jpg", "https://scontent-lga3-3.cdninstagram.com/v/t51.71878-15/828563330_...jpg"],
  "carouselCount": 4,
  "childPosts": [
    { "type": "Image", "id": "3997816862226711997", "width": 1080, "height": 1350, "taggedUsers": ["lafabriquedutemps"] },
    { "type": "Video", "id": "3997816871260560136", "videoUrl": "https://scontent-lga3-2.cdninstagram.com/o1/v/t16/f2/m84/AQNsR9O3...mp4", "width": 1080, "height": 1350 }
  ],
  "taggedUsers": ["lafabriquedutemps"],
  "coauthorProducers": ["lafabriquedutemps"],
  "isPaidPartnership": false,
  "isPinned": false,
  "scrapedAt": "2026-10-05T17:53:58.075Z"
}
```

A geotagged collab carousel on Chris Burkard's grid, trimmed:

```json
{
  "inputUrl": "chrisburkard",
  "source": "profile",
  "shortCode": "Dd1mj_IIOW-",
  "type": "Sidecar",
  "caption": "Greenland.\n\nI always assumed my first time to Greenland would involve ...",
  "likesCount": 9367,
  "commentsCount": 97,
  "timestamp": "2026-09-28T16:21:50.000Z",
  "ownerUsername": "chrismshane",
  "carouselCount": 17,
  "locationName": "Sisimiut",
  "locationId": "253284224",
  "locationLat": 66.9333,
  "locationLng": -53.6833,
  "coauthorProducers": ["brodyleven", "joshreids", "chrisburkard"]
}
```

A single photo (Starbucks), trimmed:

```json
{
  "inputUrl": "starbucks",
  "shortCode": "Dd4DlN6N6b9",
  "url": "https://www.instagram.com/p/Dd4DlN6N6b9/",
  "type": "Image",
  "productType": "feed",
  "caption": "somewhere between grilled cheese and straight espresso",
  "alt": "Photo by Starbucks on September 29, 2026. May be an image of drink and text.",
  "likesCount": 79415,
  "commentsCount": 804,
  "timestamp": "2026-09-29T15:13:57.000Z",
  "ownerUsername": "starbucks",
  "dimensionsWidth": 1440,
  "dimensionsHeight": 1920
}
```

A post from a pasted link (NASA), trimmed:

```json
{
  "inputUrl": "https://www.instagram.com/p/DdHyaYAifb6/",
  "source": "post_url",
  "shortCode": "DdHyaYAifb6",
  "type": "Sidecar",
  "caption": "Cementing their names in history.\n\nThe Artemis III crew is leaving the...",
  "mentions": ["NASAKennedy", "EuropeanSpaceAgency", "Astro_Luca", "Astro_FrankRubio"],
  "likesCount": 120825,
  "commentsCount": 1023,
  "timestamp": "2026-09-10T21:20:24.000Z",
  "ownerUsername": "nasa",
  "carouselCount": 4,
  "coauthorProducers": ["nasakennedy", "nasaartemis"]
}
```

### Pricing

Pay per event: you pay for each post delivered to your dataset, plus a flat $0.005 per run, whatever memory you choose.

| Event | Free plan | Starter (Bronze) | Scale (Silver) | Business (Gold) and above |
| --- | --- | --- | --- | --- |
| Post delivered (`post-scraped`), per 1,000 posts | $1.79 | $1.49 | $1.29 | $0.99 |
| Run start (`run-start`), once per run | $0.005 | $0.005 | $0.005 | $0.005 |

The start fee is our own flat `run-start` event, not Apify's per GB start event, so it stays $0.005 at any memory setting. It is charged once when a run with at least one usable username or link starts. Carousel slides, video links, locations, the filters, the proxy and the run summary are all included in the per post price; a carousel of 17 slides costs the same as a single photo.

**Never charged**: private accounts, usernames that do not exist, restricted profiles, posts Instagram refused to serve, posts filtered out by type or date, posts repeated within a run, invalid input, and the `info` row. A run whose input holds nothing usable stops before the start fee. You can also cap a run's spend with Apify's "Max cost per run" setting; once the cap is reached the actor stops and writes its `OUTPUT` summary.

### FAQ

#### What does this actor collect?

Public Instagram posts: single photos, carousels (several photos or videos in one post) and videos, as they appear on a profile's grid or at a post link. For each post you get likes, comments, caption, hashtags, mentions, publish time, owner, every image link, video link and location. It reads what Instagram shows a logged out visitor, nothing more.

#### How many posts can I get per profile?

Up to 300 per profile per run, newest first. Instagram serves a profile grid 12 posts at a time. In our tests on 5 October 2026 we read 312 of NASA's posts (26 pages) and Instagram still offered more, with no login and no wall. A profile with fewer posts returns what it has.

#### How fresh is the data?

Every run reads Instagram live, so likes and comments are as of `scrapedAt`. Nothing is cached between runs.

#### Do I need an Instagram account, cookies or my own proxy?

No. The actor reads Instagram as a logged out visitor over Apify's datacenter proxy, which is included. You never share a login or a cookie.

#### What happens with private accounts, missing usernames or deleted posts?

They are not charged. Each one is listed in the `OUTPUT` record of the run with a status (`private`, `not_found`, `unavailable`, `no_posts`, `filtered_out`, `blocked`) and a plain note.

#### Do I get video views?

Not in this actor: Instagram does not show a video post's view count on the post itself to logged out visitors. For reel views, use our [Instagram Reels Views Scraper](https://apify.com/themineworks/instagram-reels-views-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral), which reads them from the reels tab.

#### Can I get the comments themselves?

This actor returns the number of comments, not their text.

#### Why do some rows belong to another account than the profile I asked for?

Those are collab posts. Instagram shows a collab on the grid of every coauthor. `ownerUsername` is the account that posted it and `coauthorProducers` lists the partners, so you can keep or filter them.

#### How does it know a post is pinned?

The profile grid does not label pinned posts. Instagram puts up to three pinned posts at the very top, whatever their age, so a top post that is older than a post below it is treated as pinned. A pinned post that is also the newest looks like any other post and is returned as one.

#### Can I search posts by hashtag, keyword or location?

No. Give profiles or post links. Hashtag, keyword and location search on Instagram need a login, which this actor never uses.

#### Can I run it on a schedule?

Yes. In Apify Console open the actor, go to Schedules and add one with your input. Use `newerThan` (for example `7 days` on a weekly schedule) so each run reads only the new posts.

#### What formats can I export?

JSON, CSV, Excel, XML, HTML table and RSS from the run's dataset, or through the Apify API. Rows with `_type` set to `info` are a run note; skip them in your pipeline.

#### Can I use it from Claude, ChatGPT or another AI assistant?

Yes, through Apify's MCP server.

- Connector URL: https://mcp.apify.com/?tools=themineworks/instagram-post-scraper
- Claude: Settings > Connectors > Add custom connector, paste the URL, sign in with Apify.
- ChatGPT: turn on developer mode, add an MCP connector with the URL, sign in with Apify.
- Cursor or VS Code: add it as an HTTP MCP server with that URL.
- Claude Code: `claude mcp add -t http instagram-post-scraper "https://mcp.apify.com/?tools=themineworks/instagram-post-scraper"`

#### Is it legal to scrape Instagram posts?

The actor collects only public data that Instagram shows to anyone without logging in. You are responsible for how you use it: follow Instagram's terms where they apply to you and data protection law such as GDPR and CCPA, especially if the accounts belong to private individuals.

### Integrations

- **Google Sheets, Excel, CSV, JSON**: export the dataset from the run page, or link a Google Sheet with Apify's Google Sheets integration.
- **Make, Zapier, n8n**: use the Apify app to start a run and pick up the posts when it finishes, for example to post a monthly brand report to Slack.
- **Webhooks**: get a call to your own endpoint when a run succeeds or fails.
- **API**: start runs and read results with the Apify API or the `apify-client` package for Python and JavaScript.
- **MCP clients**: Claude, ChatGPT, Cursor and other MCP clients can call the actor through Apify's MCP server.

### More from The Mine Works

**Social media and video**

- [Threads Scraper](https://apify.com/themineworks/threads-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Scraper](https://apify.com/themineworks/reddit-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Threads Search Scraper](https://apify.com/themineworks/threads-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Profile Scraper](https://apify.com/themineworks/instagram-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Instagram Followers & Following](https://apify.com/themineworks/instagram-followers-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Reddit Search Scraper](https://apify.com/themineworks/reddit-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Twitter / X Scraper](https://apify.com/themineworks/twitter-x-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [YouTube Transcript](https://apify.com/themineworks/youtube-transcript-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Xiaohongshu (RED) Scraper](https://apify.com/themineworks/xiaohongshu-explore-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Telegram Channel Scraper](https://apify.com/themineworks/telegram-channel-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Telegram Channel Finder](https://apify.com/themineworks/telegram-channel-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Pinterest Profile Scraper](https://apify.com/themineworks/pinterest-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Leads and business directories**

- [B2B Leads Finder](https://apify.com/themineworks/b2b-leads-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Skip Trace Lookup](https://apify.com/themineworks/skip-trace-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Maps Email Scraper](https://apify.com/themineworks/maps-leads?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [2GIS Places Scraper](https://apify.com/themineworks/2gis-places-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Marketing, SEO and reviews**

- [Facebook Ad Library Scraper](https://apify.com/themineworks/meta-ad-library-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google Ads Transparency Scraper](https://apify.com/themineworks/google-ads-transparency?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Similarweb Scraper](https://apify.com/themineworks/similarweb-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Google News Scraper](https://apify.com/themineworks/google-news?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**LinkedIn**

- [LinkedIn Company Scraper](https://apify.com/themineworks/linkedin-company-details?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Post Scraper](https://apify.com/themineworks/linkedin-post-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Employees Scraper](https://apify.com/themineworks/linkedin-employees?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [LinkedIn Profile Scraper](https://apify.com/themineworks/linkedin-profile-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Real estate**

- [Zillow Rentals Scraper](https://apify.com/themineworks/zillow-rental-listings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zillow Sold Comps Scraper](https://apify.com/themineworks/zillow-recently-sold?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Real Estate MCP](https://apify.com/themineworks/india-real-estate-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Housing.com Scraper](https://apify.com/themineworks/housing-com-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Science, health and government data**

- [Academic Research MCP](https://apify.com/themineworks/academic-research-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [CourtListener Scraper](https://apify.com/themineworks/courtlistener-court-records?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Socrata Open Data Scraper](https://apify.com/themineworks/socrata-open-data?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [OpenAlex Scraper](https://apify.com/themineworks/openalex-scholarly-works?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Jobs and hiring**

- [Foundit Monster India Jobs](https://apify.com/themineworks/foundit-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Hirist Jobs Scraper](https://apify.com/themineworks/hirist-jobs-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [India Jobs MCP](https://apify.com/themineworks/india-jobs-mcp?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naukri Jobs Scraper](https://apify.com/themineworks/naukri-jobs?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Company and business data**

- [Company Domain Finder](https://apify.com/themineworks/company-domain-finder?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GST Taxpayer Lookup](https://apify.com/themineworks/gst-taxpayer-lookup?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Company KYB Resolver](https://apify.com/themineworks/company-identity-resolver?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [SEC EDGAR Filings Scraper](https://apify.com/themineworks/sec-edgar-filings?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**E-commerce and marketplaces**

- [Ozon.ru Scraper](https://apify.com/themineworks/ozon-product-search?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [⭐ Amazon Reviews Scraper](https://apify.com/themineworks/amazon-reviews?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Amazon Product Scraper](https://apify.com/themineworks/amazon-products?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Etsy Listings Scraper](https://apify.com/themineworks/etsy-search-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Food and local services**

- [NoBroker Scraper](https://apify.com/themineworks/nobroker-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Swiggy Restaurant Scraper](https://apify.com/themineworks/swiggy-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Zomato Scraper](https://apify.com/themineworks/zomato-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**Developer and AI tools**

- [Website to Markdown Crawler](https://apify.com/themineworks/rag-crawler?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Skill Finder](https://apify.com/themineworks/github-skill-discovery?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Repo Scraper](https://apify.com/themineworks/github-repo-intelligence?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [GitHub Trending Scraper](https://apify.com/themineworks/github-trending-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

**More tools**

- [G2 Reviews Scraper](https://apify.com/themineworks/g2-reviews-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Naver Blog Scraper](https://apify.com/themineworks/naver-blog-posts-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [WeChat Article Scraper 微信公众号文章](https://apify.com/themineworks/wechat-article-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)
- [Taobao Products Scraper 淘宝 天猫](https://apify.com/themineworks/taobao-products-scraper?fpr=ymnoit\&utm_source=apify-readme\&utm_medium=referral)

### Support

Found a problem or need a field we do not return? Open an issue on the actor's Issues tab and we will answer there. To ask for a new source, email dmineworks@gmail.com.

*Instagram Post Scraper turns public profiles and post links into one row per post with likes, comments, captions and every carousel image, with no login and no charge for anything it does not deliver.*

# Actor input Schema

## `usernames` (type: `array`):

Public accounts to read posts from, newest first, up to 500 per run. Usernames (natgeo), @handles and profile links (https://www.instagram.com/natgeo/) all work. Post links put here are moved to the post list automatically.

## `postUrls` (type: `array`):

Links to single posts, up to 1,000 per run: https://www.instagram.com/p/<code>/ (photo, carousel or video) or /reel/<code>/. Each link returns one full row.

## `maxPostsPerProfile` (type: `integer`):

Newest posts to return for each profile, from 10 to 300. Instagram serves the grid 12 posts at a time; we read 312 posts deep on one profile without a wall.

## `postTypes` (type: `array`):

Which kinds of posts to return from profiles: image, carousel, video. Leave all three (the default) for everything. With a filter the actor reads up to three times more of the grid to find matches.

## `newerThan` (type: `string`):

Optional date window for profiles: a date (2026-09-01) or a period (30 days, 2 weeks, 3 months). Reading stops as soon as a profile passes the window, so older posts cost nothing. Leave empty for no date limit.

## `skipPinned` (type: `boolean`):

Pinned posts sit at the top of a profile whatever their age. On (the default) leaves them out so you get the latest posts in date order.

## `proxyConfiguration` (type: `object`):

Apify datacenter proxy is the default and all this actor needs. Residential groups are removed if selected.

## Actor input object example

```json
{
  "usernames": [
    "natgeo",
    "nasa"
  ],
  "postUrls": [],
  "maxPostsPerProfile": 12,
  "postTypes": [
    "image",
    "carousel",
    "video"
  ],
  "skipPinned": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `posts` (type: `string`):

No description

## `summary` (type: `string`):

No description

# 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 = {
    "usernames": [
        "natgeo",
        "nasa"
    ],
    "postUrls": [],
    "maxPostsPerProfile": 12,
    "postTypes": [
        "image",
        "carousel",
        "video"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/instagram-post-scraper").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 = {
    "usernames": [
        "natgeo",
        "nasa",
    ],
    "postUrls": [],
    "maxPostsPerProfile": 12,
    "postTypes": [
        "image",
        "carousel",
        "video",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/instagram-post-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "usernames": [
    "natgeo",
    "nasa"
  ],
  "postUrls": [],
  "maxPostsPerProfile": 12,
  "postTypes": [
    "image",
    "carousel",
    "video"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call themineworks/instagram-post-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/instagram-post-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/8okBc9WStNe0W8BB0/builds/kUgmDfCGDu1eWQlYY/openapi.json
