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

Instagram explore scraper API for localized public posts, videos, and carousels. Return 62 fields with topics, engagement, creators, locations, audio, pinned state, and archived media—from $0.0060/result plus start.

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

## Pricing

from $4.50 / 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/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 Explore Post

**Instagram Explore Post is an instagram explore scraper that turns localized public posts, videos, and carousels into 62-field records with topic context and archived media.** It is built for developers and data teams whose discovery workflow starts from Explore rather than a known profile or hashtag.

- Choose from **35 content locales** and request any positive number of successfully published results.
- Export **62 declared fields** covering Explore labels, creators, captions, engagement, media, locations, relationships, and audio.
- Archive available post covers, images, and videos automatically to Apify storage; there is no download input.
- Pay-per-event pricing separates one Actor Start from each successfully stored default Dataset Result.

[**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.01600` when that row is produced: one `$0.01` Actor Start plus one Result event at `$0.00600`.

### What does Instagram Explore Post do?

Instagram Explore Post extracts public posts currently surfaced by Instagram Explore for a selected content locale. Each publishable row combines the Explore section and topic with post identity, creator details, caption data, engagement snapshots, normalized post type, location signals, pin/branded state, 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.

Available post covers, images, and videos are archived while each result is completed, and the corresponding post-media fields use 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 `Japan` or another supported content locale.
4. Start the Actor, then review the default Dataset and run log.

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

`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 62 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 |
| --- | --- |
| Request and Explore | `platform`, `requested_country`, `requested_accept_language`, `explore_section`, `explore_topic` |
| Identity | `post_id`, `shortcode`, `post_url`, `post_type`, `product_type`, `media_type` |
| Owner | `owner_id`, `owner_username`, `owner_name`, `owner_url`, `owner_verified`, `owner_avatar` |
| Caption and publication | `caption`, `caption_translation`, `caption_created_at`, `caption_edited`, `alt_text`, `hashtags`, `mentions`, `published_at` |
| Engagement | `like_count`, `comment_count`, `view_count`, `counts_hidden` |
| Media | `width`, `height`, `cover_url`, `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` |
| Relationships | `tagged_users`, `coauthors`, `is_pinned`, `is_branded` |
| Audio | `audio_type`, `audio_title`, `artist_name`, `audio_id`, `canonical_id`, `audio_ms`, `artwork_url`, `sound_owner`, `audio_reusable`, `audio_trending`, `mashup_count` |
| Processing | `processor`, `processed_at` |

This abbreviated item is illustrative and uses the same Japan scenario shown throughout this guide; a real row follows the full 62-field contract.

```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,
  "view_count": 61839889,
  "media_count": 1,
  "has_video": true,
  "media_items": [
    {
      "position": 1,
      "mediaId": "3930000000000000000",
      "media_type": "video",
      "mediaUrl": "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,
      "durationSeconds": 22.033,
      "has_audio": true,
      "alt_text": null
    }
  ]
}
```

### What inputs can I configure?

| Input | Type | Required | Accepted values | Effect |
| --- | --- | --- | --- | --- |
| `max_results` | integer | Yes | Minimum `1` | Sets the maximum successfully published row count for the run. |
| `country` | string | Yes | One of 35 schema options | Selects the country-style `Accept-Language` locale; it is not IP geolocation or an origin filter. |

Both fields are required. Media archival is automatic and cannot be enabled or disabled through the 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 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":2,"country":"Japan"}'
```

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 `{"max_results":2,"country":"Japan"}`. 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?

Pricing 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 billed event.

| 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.00600 | $0.00540 | $0.00480 | $0.00450 | $0.00450 | $0.00450 |
For the one-result test at default 256 MB memory, the FREE-tier configured event total is `$0.01 + (1 × $0.00600) = $0.01600`. 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

These answers cover the main input, media, scheduling, and billing decisions.

#### Can an Instagram Explore posts API return archived media?

Yes. This Instagram Explore posts API archives available images and videos for each completed row and returns their Actor storage URLs inside `media_items`.

#### Is there a free Instagram Explore posts API?

Apify accounts can apply available platform credits, but this Actor is pay per event: one Actor Start plus each stored Result.

#### 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 minimum is 1, so the smallest safe test uses `max_results: 1`; larger values remain caps rather than guaranteed row counts.

#### 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`. Available post covers, images, and videos are archived for each completed row, with no separate media event.

#### Why are lists sometimes empty?

Fields such as hashtags, mentions, tagged users, coauthors, location, audio, 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. Media archival has no separate billed event.

### Related TrueFetch Actors

These three TrueFetch Actors cover the closest profile, account-post, and video-text workflows.

- [Instagram Post Scraper](https://apify.com/truefetch/instagram-post-scraper) — choose it when you already have specific Instagram post URLs.
- [Instagram Profile API](https://apify.com/truefetch/instagram-profile-api) — 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

Use the Store and API links for product access, Issues for reproducible bugs, and the TrueFetch community for usage questions.

- [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)

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

**Last Updated:** August 12, 2026

# Actor input Schema

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

Maximum successfully published Explore rows. Source availability or media failures can return fewer rows.

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

Selects the country-style content locale sent in Instagram's Accept-Language header. It may influence Explore ranking but does not guarantee IP geolocation or country-only posts.

## Actor input object example

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

# Actor output Schema

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

Browse all 62 fields in the default Dataset overview, including Explore labels, request provenance, music metadata, and Actor storage URLs.

# 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": "Japan"
};

// 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": "Japan",
}

# 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(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 '{
  "max_results": 2,
  "country": "Japan"
}' |
apify call truefetch/instagram-explore-post --silent --output-dataset

```

## MCP server setup

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

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/ecd1FhF9Ipe7t98Ms/builds/bnX3rNRmr8BrdIcVR/openapi.json
