# Apify Instagram Scraper (via StableApify)

> Apify Instagram Scraper (via StableApify) is a paid API for AI agents from stableapify.dev, paid per call via x402, $0.01/call, status unknown (last checked 2026-09-15).

Starts an Apify Instagram Scraper actor run to extract posts, profiles, hashtags, places, photos, and comments from Instagram by username, URL, or search query.

## Facts

- Endpoint: POST https://stableapify.dev/api/actors/apify/instagram-scraper/call
- Price: $0.01/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/apify-instagram-scraper-via-stableapify-51cbc9bd
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_iAK65FYDOwqw7On06uE4y

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability apify-instagram-scraper-via-stableapify-51cbc9bd -d '<json body>'
```

Example prompt: Scrape the public Instagram profile and recent posts for the username 'natgeo', up to 200 items, with 1024 MB of memory — I want to analyze their posting patterns.

## When to prefer this

Choose this endpoint when you need to programmatically extract public Instagram data at scale — profiles, posts, hashtags, or places — and want a pay-per-call model without managing Apify credentials. Especially useful for agents needing structured Instagram data for analytics, brand monitoring, or influencer research, where scraping via the Apify ecosystem's proven Instagram actor is preferred over fragile DIY solutions.

## Known failure modes

- Invalid or private Instagram username returns empty dataset
- Rate limiting by Instagram causes partial results or actor failure
- Exceeding memory limit causes actor run to fail
- Expired or invalid JWT token prevents dataset retrieval
- Actor run starts successfully but Instagram blocks requests mid-run
- Malformed input (missing username/URL) causes actor to reject the run

## How this service works

Start the "Instagram Scraper" Apify actor (apify/instagram-scraper). Scrape and download Instagram posts, profiles, places, hashtags, photos, and comments. Get data from Instagram using one or more Instagram URLs or search queri…

## Output

Returns a JSON object containing the actor run ID, run status (e.g. READY), actor ID, start timestamp, default dataset ID for fetching results, estimated usage cost in USD, and a JWT token used to retrieve the scraped dataset from the sibling fetch endpoint.

## Example request

```json
{
 "input": {
  "username": "sarptecimer",
  "includeEmail": false
 },
 "options": {
  "memory": 1024,
  "maxItems": 100
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "resultsType",
    "searchType",
    "addParentData"
   ],
   "properties": {
    "search": {
     "type": "string",
     "description": "Search for Instagram hashtags, profiles, or places. Use `#` for hashtags, e.g. `#travel`."
    },
    "directUrls": {
     "type": "array",
     "items": {
      "type": "string"
     },
     "description": "Add one or more Instagram URLs to scrape. URL format must match your content type: /p/ for posts and comments /reel/ for reels /username/ for profile details Leave blank if using the search query instead."
    },
    "searchType": {
     "enum": [
      "hashtag",
      "profile",
      "place",
      "user"
     ],
     "type": "string",
     "default": "hashtag",
     "description": "Hashtag search returns posts tagged with that term. Profile search returns matching accounts. Place search returns matching locations."
    },
    "resultsType": {
     "enum": [
      "posts",
      "details",
      "comments",
      "reels",
      "mentions",
      "stories"
     ],
     "type": "string",
     "default": "posts",
     "description": "**Posts** returns a feed of content. **Profile, hashtag, or place details** returns metadata about the page: follower count, bio, post count, and profile picture. Comments only work with post URLs, e.g. `instagram.com/p/ABC123xyz/` not `instagram.com/username/`."
    },
    "searchLimit": {
     "type": "integer",
     "maximum": 250,
     "minimum": 1,
     "description": "Set how many profiles, places, or hashtags to find. To limit posts per result, use Results limit per URL. Higher values increase compute usage and cost."
    },
    "resultsLimit": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 1,
     "description": "Set how many posts or comments to scrape per Instagram URL. Higher values increase compute usage and cost. Maximum 50 comments per post. Instagram may return fewer than 15 comments on some posts. Use `1` to retrieve a single post per page."
    },
    "addParentData": {
     "type": "boolean",
     "default": false,
     "description": "This applies only to feed items. Adds a dataSource field to each result: profile posts are labeled `profile`, and tag posts are labeled `hashtag`."
    },
    "onlyPostsNewerThan": {
     "type": "string",
     "pattern": "^(\\d{4})-(0[1-9]|1[0-2])-(0[1-9]|[12]\\d|3[01])(T[0-2]\\d:[0-5]\\d(:[0-5]\\d)?(\\.\\d+)?Z?)?$|^(
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/apify-instagram-scraper-via-stableapify-51cbc9bd/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stableapify.dev](https://www.zero.xyz/host/stableapify.dev/llms.txt)
