# Instagram Public Data Scraper

> Instagram Public Data Scraper is a paid API for AI agents from api.scrapeforagents.tech, paid per call via x402, $0.025/call, status unknown (last checked 2026-10-02).

Scrapes public Instagram posts, reels, and profile details by search term or direct URL, returning structured JSON with captions, hashtags, engagement, and media links.

## Facts

- Endpoint: POST https://api.scrapeforagents.tech/v1/instagram?utm_source=zero.xyz
- Price: $0.025/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-02
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/instagram-public-data-scraper-5e5f6a02
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_NMFgANii9NSvsQTRGu1R_

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-public-data-scraper-5e5f6a02 -d '<json body>'
```

Example prompt: Pull the last 12 posts from Nike's public Instagram profile including captions, hashtags, engagement counts, and media links — I want full post details.

## When to prefer this

Choose this endpoint when you need structured, pay-per-call extraction of public Instagram content without managing your own scraping infrastructure. It is especially suitable for one-off brand audits, influencer research, or hashtag monitoring where you want clean JSON output including captions, engagement, and media links. Prefer it over generic web scrapers when you need Instagram-specific fields like hashtags, short codes, and product type already parsed.

## Known failure modes

- Private or restricted Instagram accounts return empty results
- Instagram rate limiting may cause incomplete result sets
- Search terms return approximate discovery feed results, not exhaustive matches
- Posts without visible timestamps cannot be filtered by onlyPostsNewerThan
- Empty or failed runs are not charged but return count:0
- Invalid or deleted URLs return no items for that target

## How this service works

Pay-per-call structured web data. Failed or empty runs are not charged.

## Output

Returns a JSON object with a count of matched items and an array of records, each containing post ID, URL, type (post/reel), caption text, hashtags array, short code, record type, and product type. When includePostDetails is true, also includes timestamps, engagement counts (likes, comments), image dimensions, and direct media URLs.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "properties": {
  "search": {
   "type": "string",
   "description": "Comma-separated terms for public popular-search posts. Leave blank when using URLs. Search is an approximate public discovery feed."
  },
  "maxItems": {
   "type": "integer",
   "default": 0,
   "minimum": 0,
   "description": "Stop after this many records across all targets. Zero means no additional cap."
  },
  "directUrls": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "Public profile, post, or reel URLs. URLs take priority over search terms."
  },
  "resultsType": {
   "enum": [
    "posts",
    "reels",
    "details"
   ],
   "type": "string",
   "default": "posts",
   "description": "Choose posts, reels, or public profile details."
  },
  "resultsLimit": {
   "type": "integer",
   "default": 12,
   "minimum": 1,
   "description": "Maximum posts or reels per URL or search term. Public pages currently expose up to 12 feed items per target."
  },
  "includePostDetails": {
   "type": "boolean",
   "default": true,
   "description": "Visit each post to add available timestamps, engagement counts, dimensions, and media links. This uses more requests."
  },
  "onlyPostsNewerThan": {
   "type": "string",
   "description": "Optional ISO date or relative age such as 7 days or 2 months. Requires a visible post timestamp."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "count": 1,
  "items": [
   {
    "id": null,
    "url": null,
    "type": null,
    "caption": null,
    "hashtags": null,
    "shortCode": null,
    "recordType": null,
    "productType": null
   }
  ],
  "product": "instagram"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/instagram-public-data-scraper-5e5f6a02/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.scrapeforagents.tech](https://www.zero.xyz/host/api.scrapeforagents.tech/llms.txt)
