# Instagram Explore Post (`truefetch/instagram-explore-post`) Actor

Unofficial Instagram Explore scraper for public posts by country, returning 64 fields across topics, creators, captions, engagement, media, locations, comments, and audio, with automatic post-media archival. Not affiliated with Instagram or Meta.

- **URL**: https://apify.com/truefetch/instagram-explore-post.md
- **Developed by:** [TrueFetch](https://apify.com/truefetch) (community)
- **Categories:** Social media, Videos, News
- **Stats:** 28 total users, 10 monthly users, 100.0% runs succeeded, 3 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $6.75 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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 Explore Post turns a country-localized snapshot of public Instagram Explore posts into structured records for trend research, creator discovery, engagement analysis, and downstream data workflows.**

- Choose from **35 country options** and request between **1 and 500** results per run.
- Export **64 declared fields** covering Explore labels, creators, captions, engagement, media, locations, comments, and audio.
- Archive available post covers, images, and videos automatically to Apify storage; there is no download input.
- The [public Store surface](https://apify.com/truefetch/instagram-explore-post) showed **29 total users**, **10 monthly active users**, and a **5.0 rating from one review** on 2026-07-28; its hosted input and README remain an older publication snapshot.

[**Run a one-result test**](https://apify.com/truefetch/instagram-explore-post) · [**View API**](https://apify.com/truefetch/instagram-explore-post/api)

The smallest valid run requests one result. At the FREE tier and default 256 MB memory, its maximum configured event charge is `$0.01750` when that row is produced: one `$0.01` Actor Start plus one Result event at `$0.00750`.

### What does Instagram Explore Post do?

Instagram Explore Post extracts public posts currently surfaced by Instagram Explore for a selected country setting. Each publishable row combines the Explore section and topic with post identity, creator details, caption data, engagement snapshots, normalized post type, location signals, selected comments, audio metadata, and a structured `media_items` array.

The Actor is useful when Explore discovery is the starting point. It is not a profile crawler, follower exporter, hashtag search tool, direct-message automation service, or official Instagram analytics product. It also does not create an official country ranking. [Meta explains that Instagram recommendations personalize over time](https://about.fb.com/news/2024/11/introducing-recommendations-reset-instagram/) based on the content and accounts a user interacts with, so each output should be treated as a run-specific public snapshot.

The current runtime downloads available post covers, images, and videos while completing each result, stores them in the run's Key-Value Store, and replaces the corresponding post-media fields with Apify storage URLs. This is automatic behavior, not a public input. Auxiliary URLs such as profile pictures and audio previews can remain source-provided and may expire.

### How do I run Instagram Explore Post?

1. Open the [Actor input](https://apify.com/truefetch/instagram-explore-post/input-schema).
2. Set `max_results` to `1` for the smallest valid test.
3. Choose `Canada` or another supported country.
4. Start the Actor, then review the default Dataset and run log.

```json
{
  "max_results": 1,
  "country": "Canada"
}
```

`max_results` is a per-run cap on requested Explore posts, not a guaranteed row count. A run can produce fewer rows when the current feed exposes fewer distinct posts or when a candidate cannot be completed. Result billing is tied to rows written to the default Dataset.

### What data does Instagram Explore Post return?

The default Dataset declares 64 fields. Source-dependent values can be `null`, and collection fields can be empty when Instagram does not expose that information for a post.

| Group | Dataset fields |
| --- | --- |
| Primary visual | `cover_url` |
| Processing | `processor`, `processed_at` |
| Identity and Explore | `post_id`, `shortcode`, `post_url`, `explore_section`, `explore_topic`, `post_type`, `instagram_product_type`, `instagram_media_type` |
| Owner | `owner_id`, `owner_username`, `owner_full_name`, `owner_is_verified`, `owner_is_private`, `owner_profile_pic_url` |
| Caption and publication | `caption`, `caption_created_at`, `caption_is_edited`, `accessibility_caption`, `hashtags`, `mentions`, `published_at`, `published_timestamp` |
| Engagement | `like_count`, `comment_count`, `play_count`, `view_count`, `like_and_view_counts_disabled` |
| Media | `media_count`, `image_count`, `video_count`, `is_carousel`, `has_video`, `has_audio`, `media_items` |
| Location | `location_id`, `location_name`, `location_lat`, `location_lng`, `location_address`, `location_city` |
| Accounts and comments | `tagged_users`, `coauthors`, `comments_disabled`, `can_viewer_save`, `can_viewer_reshare`, `is_paid_partnership`, `sponsor_tags`, `top_comments` |
| Audio | `audio_type`, `audio_title`, `audio_artist`, `audio_asset_id`, `audio_canonical_id`, `audio_duration_ms`, `audio_cover_url`, `audio_preview_url`, `audio_owner_username`, `audio_is_original`, `audio_is_reuse_allowed`, `audio_is_trending`, `audio_mashups_count` |

This abbreviated item is illustrative and uses the same one-result Canada scenario shown throughout this guide:

```json
{
  "cover_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/media-cover.jpg",
  "processor": "https://apify.com/truefetch/instagram-explore-post",
  "processed_at": "2026-07-28T10:30:00+00:00",
  "post_id": "3930000000000000000_25025320",
  "shortcode": "DaTSSukB-Lb",
  "post_url": "https://www.instagram.com/reel/DaTSSukB-Lb/",
  "explore_section": "Fashion & Beauty",
  "explore_topic": "Street Fashion",
  "post_type": "reel",
  "owner_username": "instagram",
  "caption": "time to create",
  "like_count": 333091,
  "comment_count": 18435,
  "play_count": 61839889,
  "media_count": 1,
  "has_video": true,
  "media_items": [
    {
      "position": 1,
      "media_id": "3930000000000000000",
      "media_type": "video",
      "media_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/media-video.mp4",
      "cover_url": "https://api.apify.com/v2/key-value-stores/STORE_ID/records/media-cover.jpg",
      "width": 720,
      "height": 1280,
      "duration_seconds": 22.033,
      "has_audio": true,
      "accessibility_caption": null
    }
  ]
}
```

### What inputs can I configure?

| Input | Type | Required | Accepted values | Effect |
| --- | --- | --- | --- | --- |
| `max_results` | integer | Yes | `1` to `500` | Sets the maximum requested post count for the run. |
| `country` | string | Yes | One of 35 schema options | Selects the country localization used for Explore discovery. |

The schema order is `max_results`, then `country`. Both fields are required and include matching prefill and example values in the input form. Media archival is automatic and cannot be enabled or disabled through the current public input.

### What platforms and markets does Instagram Explore Post cover?

This Actor covers public Instagram Explore posts. It does not combine other social networks into the same run. The country list contains 35 options:

- Americas: United States, Canada, Brazil, Mexico, Argentina, Chile, and Colombia.
- Europe: United Kingdom, Germany, France, Italy, Spain, Netherlands, Sweden, Norway, Denmark, Finland, Poland, and Portugal.
- Asia-Pacific: Australia, Japan, South Korea, Singapore, Hong Kong, Taiwan, India, Indonesia, Thailand, Philippines, Malaysia, and Vietnam.
- Middle East and Africa: United Arab Emirates, Saudi Arabia, Turkey, and South Africa.

Country localization can influence the request context, but it does not certify that every returned post originates in that country or represents a national chart. Language, topic availability, post visibility, and engagement fields remain source-dependent.

### Why use Instagram Explore Post?

| Capability | Benefit for data work |
| --- | --- |
| Explore section and topic labels | Segment a snapshot using labels exposed with the source post rather than caption keywords alone. |
| One normalized post model | Compare images, videos, reels, IGTV items, and carousels through consistent fields. |
| Creator, caption, engagement, location, comment, and audio groups | Reduce the number of separate exports needed for a research dataset. |
| Automatic post-media archival | Receive stored post covers, images, and videos without maintaining a separate download setting. |
| Dataset and API output | Move the same rows into spreadsheets, scripts, dashboards, or agent workflows. |

The trade-off is that Explore is dynamic. A scheduled series of small, comparable snapshots is usually more defensible than treating one large run as a permanent description of what is popular.

### Who is Instagram Explore Post for?

Instagram Explore Post is primarily for developers and data teams building repeatable social-content research workflows. Content strategists can compare formats and topics; social-listening teams can monitor public captions and engagement snapshots; analysts can construct time-series datasets; and AI teams can ground a workflow in fresh Dataset rows instead of relying only on model memory.

A useful scenario is a weekly Canada snapshot with `max_results: 1` for validation before increasing the cap. The team can compare `explore_section`, `explore_topic`, `post_type`, and engagement fields while keeping the first run's result and storage exposure bounded.

This Actor is not a good fit for users who need private content, direct messages, follower relationships, guaranteed national rankings, or authenticated analytics for an account they manage. Those use cases require different data sources and permissions.

### How can I use Instagram Explore Post through the API or MCP?

The verified Actor ID is `ecd1FhF9Ipe7t98Ms`; use the name-based API form `truefetch~instagram-explore-post` in REST paths.

```bash
curl "https://api.apify.com/v2/acts/truefetch~instagram-explore-post/run-sync-get-dataset-items?token=YOUR_API_TOKEN" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"max_results":1,"country":"Canada"}'
```

Apify's current hosted MCP server uses Streamable HTTP. This minimal configuration exposes the specific Actor tool and uses OAuth when the client first connects:

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=truefetch/instagram-explore-post"
    }
  }
}
```

Ask the MCP client to run `truefetch/instagram-explore-post` with the same one-result input shown above. Review Apify's [MCP server documentation](https://docs.apify.com/integrations/mcp) for OAuth, bearer-token, and client-specific setup, or open the Actor's [generated API page](https://apify.com/truefetch/instagram-explore-post/api) for SDK and OpenAPI examples.

### How much does Instagram Explore Post cost?

The current local configuration contains one automatic start event and one data event. `Result` maps to a row written to the default Dataset. Automatic media archival has no separate declared event in the current `pricingInfos` configuration.

| Event | Billing unit | FREE | BRONZE | SILVER | GOLD | PLATINUM | DIAMOND |
| --- | --- | ---: | ---: | ---: | ---: | ---: | ---: |
| Actor Start | Run start; count depends on memory, minimum one | $0.01000 | $0.01000 | $0.01000 | $0.01000 | $0.01000 | $0.01000 |
| Result | One default Dataset row | $0.00750 | $0.00675 | $0.00600 | $0.00563 | $0.00563 | $0.00563 |
For the one-result test at default 256 MB memory, the FREE-tier configured event total is `$0.01 + (1 × $0.00750) = $0.01750`. Prices can change; check the [live pricing tab](https://apify.com/truefetch/instagram-explore-post/pricing) before a larger run.

### How does Instagram Explore Post compare with alternatives?

| Option | Best fit | Main trade-off |
| --- | --- | --- |
| Instagram Explore Post | Explore-first discovery with topic, creator, engagement, post, and automatically archived media fields | Output depends on the public Explore snapshot available during the run. |
| Instagram Post Scraper | Known post URLs that need focused post-level extraction | It does not answer the broader Explore discovery question by itself. |
| Instagram Profile | Research that begins with a known public account | Account-first collection differs from country-localized Explore discovery. |
| Manual Explore review | Small qualitative checks where visual interpretation matters immediately | It does not create a repeatable structured Dataset without additional work. |

If your use case depends on authorized account insights or private data, use an appropriate official or permissioned source instead. Choose this Actor when public Explore discovery and normalized export are the core requirements.

### What are the limits and troubleshooting steps?

| Symptom or limit | Explanation | Next step |
| --- | --- | --- |
| Fewer rows than `max_results` | The value is a cap; the current source may expose fewer complete, distinct posts. | Retry later with the smallest input and compare the run log. |
| A metric is `null` | Not every post exposes every engagement, location, comment, or audio value. | Treat missing values as unknown, not zero. |
| Country snapshots look similar | Localization is not an official country chart or origin filter. | Compare multiple runs before making a country-level inference. |
| An auxiliary URL later expires | Post media is archived automatically, but profile pictures and audio previews can remain source-provided. | Treat auxiliary URLs as temporary and retain only data you are authorized to use. |
| A run produces no rows | Public Explore or post details may be temporarily unavailable. | Reproduce with the one-result Canada input and attach the run ID to an issue. |

Do not include your Apify token in issue text or screenshots. A run ID, input with secrets removed, timestamp, and affected post shortcode are enough for a reproducible report.

### Frequently asked questions

#### Is `max_results` guaranteed?

No. It is the maximum requested result count for one run. The actual Dataset can contain fewer rows.

#### Can I request one result?

Yes. The validated range is 1–500, so the smallest safe test uses `max_results: 1`.

#### Does the Actor need my Instagram username or password?

No public input requests Instagram credentials. The Actor is limited to public Explore content available to its source path.

#### Can I disable automatic media archival?

No. The public input contains only `max_results` and `country`. The runtime archives available post covers, images, and videos for each completed row, and the current metadata declares no separate media event.

#### Why are lists sometimes empty?

Fields such as hashtags, mentions, tagged users, coauthors, comments, sponsors, and media-derived values depend on what the post exposes. An empty collection is different from a failed run.

#### Can I schedule recurring snapshots?

Yes. Apify Actors can run on schedules. Keep the same country and small cap if you want comparable snapshots, and store `processed_at` with each row.

#### What triggers billing?

Actor Start is automatic. Result corresponds to a default Dataset row. The current pricing configuration defines no separate media event.

### Related TrueFetch Actors

- [Instagram Post Scraper](https://apify.com/truefetch/instagram-post-scraper) — choose it when you already have specific Instagram post URLs.
- [Instagram Profile](https://apify.com/truefetch/instagram-profile) — choose it when account-level public profile data is the starting point.
- [Instagram Video Transcript](https://apify.com/truefetch/instagram-video-transcript) — choose it when speech or caption text from a known Instagram video is the required output.

### Support and last updated

- [Actor Store page](https://apify.com/truefetch/instagram-explore-post)
- [API documentation](https://apify.com/truefetch/instagram-explore-post/api)
- [Actor issues](https://apify.com/truefetch/instagram-explore-post/issues)
- [TrueFetch community](https://t.me/TrueFetch)
- [Direct support](https://t.me/AiAgentApi)

Last verified against the current local Actor on **2026-07-28**. The public Store can continue to show an older input, output, README, or pricing snapshot until this local revision is published.

[**Start with one Explore result**](https://apify.com/truefetch/instagram-explore-post) · [**Open the current API surface**](https://apify.com/truefetch/instagram-explore-post/api)

# Actor input Schema

## `max_results` (type: `integer`):

Maximum number of public Explore posts to extract from Instagram's current Explore feed per run.

## `country` (type: `string`):

Use a matching country-specific residential proxy and language header for the Instagram Explore request.

## Actor input object example

```json
{
  "max_results": 2,
  "country": "Canada"
}
```

# Actor output Schema

## `results` (type: `string`):

Browse the overview table with all Instagram post, reel, media, engagement, owner, location, audio, Explore label, and processing fields.

# 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 = {
    "max_results": 2,
    "country": "Canada"
};

// Run the Actor and wait for it to finish
const run = await client.actor("truefetch/instagram-explore-post").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 = {
    "max_results": 2,
    "country": "Canada",
}

# Run the Actor and wait for it to finish
run = client.actor("truefetch/instagram-explore-post").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 '{
  "max_results": 2,
  "country": "Canada"
}' |
apify call truefetch/instagram-explore-post --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/ecd1FhF9Ipe7t98Ms/builds/6zE8IRZW7JajaxvBU/openapi.json
