# BrightData Instagram Full Post History Fetcher

> BrightData Instagram Full Post History Fetcher is a paid API for AI agents from instagram.withzero.ai, paid per call via MPP, $0.36/post, status unknown (last checked 2026-09-15).

Fetches a complete post history (up to 200 posts) for an Instagram handle using BrightData's async Web Scraper dataset pipeline (trigger → poll → download), billed per post delivered.

## Facts

- Endpoint: POST https://instagram.withzero.ai/full-profile
- Price: $0.36/post
- Payment: MPP
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Provider: instagram.withzero.ai
- Website: https://instagram.withzero.ai
- Canonical page: https://www.zero.xyz/c/instagram-withzero-ai-brightdata-instagram-full-post-history-fetcher-2c7ab264
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_ywFmcP50Dt20GEApAYy2y

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-withzero-ai-brightdata-instagram-full-post-history-fetcher-2c7ab264 -d '<json body>'
```

Example prompt: Pull the full Instagram post history for @natgeo — up to 200 posts, exclude reels, and only include posts since January 1 2024.

## When to prefer this

Use this endpoint when you need a comprehensive archive of an Instagram account's posts (up to 200), especially for historical research, competitive analysis, or content auditing. Prefer this over the cheaper /latest-posts endpoint when you need depth rather than recency, and over the single-handle endpoint when you need more than the first ~12 posts. The metered pricing (pay only for posts delivered) makes it safe to use even when post count is uncertain.

## Known failure modes

- Handle not found or account is private — returns empty posts array with resultCount 0 and no charge
- BrightData dataset ID not configured — returns configuration error
- max_posts out of range (< 1 or > 200) — validation error
- Async pipeline timeout — poll may expire before dataset is ready
- Rate limiting or BrightData quota exceeded — upstream error propagated
- Invalid since_ts value — returns validation error
- Both only_reels and exclude_reels set simultaneously — undefined behavior or validation error

## How this service works

Fetch a handle's FULL post history via the BrightData Instagram Posts dataset (async Web Scraper: trigger → poll → download). Metered: buyer authorizes up to $0.36 (200 posts × $0.0018) and is billed $0.0018 per post actually delivered (0 posts → free). Body: handle (required), max_posts (1–200, default 100), since_ts, only_reels, exclude_reels. Requires BRIGHTDATA_IG_POSTS_DATASET_ID to be configured.

## Output

An array of up to 200 post objects, each containing post ID, shortcode, URL, type (photo/video/carousel/reel), isVideo flag, caption, Unix timestamp, takenAt string, like count, comment count, view count, and thumbnail URL. Also includes the handle, result count, snapshot ID, and API version. Billed at $0.0018 per post actually delivered.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "handle"
 ],
 "properties": {
  "handle": {
   "type": "string",
   "description": "Instagram handle (with or without @) to fetch full history for."
  },
  "since_ts": {
   "type": "integer",
   "description": "Unix seconds watermark — keep only posts with timestamp > since_ts."
  },
  "max_posts": {
   "type": "integer",
   "maximum": 200,
   "minimum": 1,
   "description": "Max posts to fetch (default 100, cap 200)."
  },
  "only_reels": {
   "type": "boolean",
   "description": "Keep only reels."
  },
  "exclude_reels": {
   "type": "boolean",
   "description": "Drop reels."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "apiVersion",
  "source",
  "handle",
  "resultCount",
  "posts"
 ],
 "properties": {
  "posts": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "id",
     "shortcode",
     "url",
     "type",
     "isVideo",
     "caption",
     "timestamp",
     "takenAt",
     "likes",
     "comments",
     "views",
     "thumbnailUrl"
    ],
    "properties": {
     "id": {
      "type": "string"
     },
     "url": {
      "type": "string"
     },
     "type": {
      "enum": [
       "photo",
       "video",
       "carousel",
       "reel"
      ],
      "type": "string"
     },
     "likes": {
      "type": "number",
      "nullable": true
     },
     "views": {
      "type": "number",
      "nullable": true
     },
     "caption": {
      "type": "string"
     },
     "isVideo": {
      "type": "boolean"
     },
     "takenAt": {
      "type": "string"
     },
     "comments": {
      "type": "number",
      "nullable": true
     },
     "shortcode": {
      "type": "string"
     },
     "timestamp": {
      "type": "number"
     },
     "thumbnailUrl": {
      "type": "string",
      "nullable": true
     }
    },
    "additionalProperties": false
   }
  },
  "handle": {
   "type": "string"
  },
  "source": {
   "enum": [
    "async"
   ],
   "type": "string"
  },
  "apiVersion": {
   "enum": [
    1
   ],
   "type": "number"
  },
  "snapshotId": {
   "type": "string"
  },
  "resultCount": {
   "type": "number"
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/instagram-withzero-ai-brightdata-instagram-full-post-history-fetcher-2c7ab264/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from instagram.withzero.ai](https://www.zero.xyz/host/instagram.withzero.ai/llms.txt)
