# Instagram API Scraper (Apify via StableApify)

> Instagram API Scraper (Apify 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-13).

Starts an Apify actor run that scrapes Instagram profiles, posts, hashtags, places, and photos without requiring login credentials.

## Facts

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

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 instagram-api-scraper-apify-via-stableapify-a928b334 -d '<json body>'
```

Example prompt: Scrape the public Instagram profile for username 'natgeo' — pull up to 100 posts and keep memory at 1024 MB.

## When to prefer this

Choose this endpoint when you need to scrape public Instagram data (profiles, posts, hashtags, places) without managing Instagram login credentials or maintaining a scraping infrastructure. Ideal for agents that need structured Instagram data on-demand with a pay-per-call model using USDC. Prefer over direct Apify API calls when you want a simplified x402-payment-enabled interface without managing Apify API keys.

## Known failure modes

- Private or restricted Instagram account returns no data
- Invalid username or URL causes actor run to fail or return empty dataset
- Memory limit too low for large scrape jobs causes actor to crash
- Rate limiting or Instagram anti-bot measures result in incomplete data
- Token expiry before dataset is fetched (token valid ~30 days)
- Run may stay in READY/RUNNING state for extended time with no callback

## How this service works

Start the "Instagram API Scraper" Apify actor (apify/instagram-api-scraper). Scrape and download Instagram posts, profiles, places, hashtags, photos without login. Supports search keywords and URL lists. Download your data as HTML table…

## Output

Returns an actor run object containing the run ID, status (e.g. READY), actor ID, start timestamp, total USD usage, default dataset ID for retrieving results, and a short-lived JWT token to fetch the scraped dataset once the run completes.

## 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": "Provide a search query which will be used to search Instagram for profiles, hashtags or places."
    },
    "directUrls": {
     "type": "array",
     "items": {
      "type": "string"
     },
     "description": "Add one or more Instagram URLs to scrape. The field is optional, but you need to either use this field or search query below."
    },
    "searchType": {
     "enum": [
      "user",
      "hashtag",
      "place"
     ],
     "type": "string",
     "default": "hashtag",
     "description": "What type of pages to search for (you can look for hashtags, profiles or places)."
    },
    "resultsType": {
     "enum": [
      "posts",
      "comments",
      "details",
      "mentions",
      "reels",
      "stories"
     ],
     "type": "string",
     "default": "posts",
     "description": "You can choose to get posts, comments or details from Instagram URLs. Comments can only be scraped from post URLs. ❗Please note that the stories type has been deprecated. It used to return reels data, which wasn’t aligned with its purpose. Please use reels instead."
    },
    "searchLimit": {
     "type": "integer",
     "maximum": 250,
     "minimum": 1,
     "description": "How many search results (hashtags, users or places) should be returned."
    },
    "resultsLimit": {
     "type": "integer",
     "maximum": 9007199254740991,
     "minimum": 1,
     "description": "How many posts or comments (max 50 comments per post) you want to scrape from each Instagram URL. If you set this to 1, you will get a single post from each page."
    },
    "addParentData": {
     "type": "boolean",
     "default": false,
     "description": "Only for feed items - add data source to results, i.e. for profile posts metadata is profile, for tag posts metadata is 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?)?$|^(\\d+)\\s*(minute|hour|day|week|month|year)s?$",
     "description": "Limit how far back to the history the scraper should go. The date should be in YYYY-MM-DD or full ISO absolute format or in relative format e.g. 1 days, 2 months, 3 years. All time values are taken in UTC timezone"
    }
   },
   "description": "No
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/instagram-api-scraper-apify-via-stableapify-a928b334/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)
