# Instagram Profile Fetcher (Single Handle)

> Instagram Profile Fetcher (Single Handle) is a paid API for AI agents from instagram-data.withzero.ai, paid per call via MPP, $0.0011/call, status healthy (last checked 2026-09-15, last successful call 2026-08-27).

Fetches account metadata plus the first ~12 posts with pagination info for a single Instagram handle.

## Facts

- Endpoint: GET https://instagram-data.withzero.ai/profile
- Price: $0.0011/call
- Payment: MPP
- Status: healthy
- Last checked: 2026-09-15
- Last successful call: 2026-08-27
- Success rate: 79% of calls made through Zero
- Rating: 4.8 / 5 from 2 reviews
- Activations on Zero: 91
- Provider: instagram-data.withzero.ai
- Website: https://instagram-data.withzero.ai
- Canonical page: https://www.zero.xyz/c/instagram-data-withzero-ai-instagram-profile-fetcher-single-handle-71a562ec
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_MBtbLJOx7r3kLX9WRLtq6

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-data-withzero-ai-instagram-profile-fetcher-single-handle-71a562ec
```

Example prompt: Pull the account metadata and latest posts for the Instagram handle 'natgeo' — I want follower count, verified status, and up to 12 recent posts with captions, likes, and view counts.

## When to prefer this

Use this endpoint when you need a quick, cheap single-handle Instagram profile snapshot including account metadata and recent posts. Prefer this over the batch endpoint when you only need one account, and over the async full-history endpoint when ~12 recent posts suffice. At $0.0011 per call it is cost-effective for lightweight social data enrichment or monitoring tasks.

## Known failure modes

- Handle not found or typo returns empty or error response
- Private account returns limited or no post data
- Rate limiting or upstream Web Unlocker failure returns 5xx
- since_ts filter too recent results in empty posts array
- max_posts out of range (0 or >12) causes validation error

## How this service works

Fetch one handle: account metadata + the first ~12 posts + pageInfo. Query: handle (required), since_ts (unix seconds, keeps timestamp > since_ts), max_posts (1–12, default 12 — sync only returns ~12), only_reels, exclude_reels. Flat $0.0011 per call (≈1.2× the ~$0.0009 Web Unlocker per-request cost).

## Output

Returns a JSON object with the handle, account metadata (follower count, post count, verified status, privacy flag, last post date), an array of up to 12 recent posts (id, shortcode, URL, type, isVideo, caption, timestamp, likes, comments, views, thumbnailUrl), and pageInfo (hasNextPage, endCursor) for pagination.

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "apiVersion",
  "handle",
  "account",
  "posts",
  "pageInfo"
 ],
 "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"
  },
  "account": {
   "type": "object",
   "required": [
    "isPrivate",
    "followerCount",
    "postCount",
    "isVerified",
    "lastPostAt"
   ],
   "properties": {
    "isPrivate": {
     "type": "boolean"
    },
    "postCount": {
     "type": "number"
    },
    "isVerified": {
     "type": "boolean"
    },
    "lastPostAt": {
     "type": "string",
     "nullable": true
    },
    "followerCount": {
     "type": "number"
    }
   },
   "additionalProperties": false
  },
  "pageInfo": {
   "type": "object",
   "required": [
    "hasNextPage",
    "endCursor"
   ],
   "properties": {
    "endCursor": {
     "type": "string",
     "nullable": true
    },
    "hasNextPage": {
     "type": "boolean"
    }
   },
   "additionalProperties": false
  },
  "apiVersion": {
   "enum": [
    1
   ],
   "type": "number"
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/instagram-data-withzero-ai-instagram-profile-fetcher-single-handle-71a562ec/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from instagram-data.withzero.ai](https://www.zero.xyz/host/instagram-data.withzero.ai/llms.txt)
