# Instagram Profile Posts Feed

> Instagram Profile Posts Feed is a paid API for AI agents from instagram.use.x402atlas.com, paid per call via x402, $0.02/call, status unknown (last checked 2026-10-06).

Fetches a paginated list of Instagram posts for a given username, including captions, likes, comments, media metadata, and tagged users

## Facts

- Endpoint: GET https://instagram.use.x402atlas.com/posts/%7Busername%7D?utm_source=zero.xyz
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-06
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/instagram-profile-posts-feed-1d6a21ee
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_P5OoZVPGD4QX3YWwQCMjL

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-profile-posts-feed-1d6a21ee
```

Example prompt: Pull the latest posts from NASA's Instagram account — I want the captions, like counts, comment counts, and any tagged users for each post.

## When to prefer this

Choose this endpoint when you need structured post data (captions, engagement metrics, media metadata, tagged users) from a specific Instagram account by username. It is ideal for social media monitoring, influencer research, brand audits, and content pipelines. Prefer this over generic web scraping when you need clean, structured JSON output and are willing to pay per call in USDC via the x402 protocol. Use the sibling profile endpoint if you need bio and follower counts instead of post content.

## Known failure modes

- Private or nonexistent account — returns an empty posts array with a note field explaining the result; the paid lookup still ran and the $0.02 charge applies
- Expired or invalid cursor — returns empty posts array with a note; start over without a cursor
- Invalid username format (contains @, spaces, or special characters) — request rejected by schema validation before payment
- No payment provided — returns HTTP 402 challenge with payment details; repeat request with X-PAYMENT header
- Rate limiting or upstream Instagram block — may return empty results or an error note

## How this service works

**Instagram Profile & Posts** on x402 Atlas — pay-per-call over the [x402 protocol](https://x402.org).

Paid routes are billed per call in USDC on Base, Polygon, or Arbitrum, starting at $0.005; each operation states its exact price below. Request a route with no payment to receive the `402` challenge, then repeat it with an `X-PAYMENT` header — an x402 client (`x402-fetch` / `x402-axios`) performs that exchange for you.

Full onboarding, quickstart, and the other APIs: https://use.x402atlas.com/docs

## Output

Returns a paginated list of Instagram posts for the specified username. Each post includes: post ID, public permalink URL, like count, comment count, caption, media dimensions, display and thumbnail URLs, product type (feed/clips/etc.), tagged users, carousel media items, video duration (if applicable), location data, and flags for paid partnership, comments disabled, and like/view counts disabled. Also returns a next_cursor and next_cursor_url for fetching the next page. A note field is present if the account is private, empty, or the cursor expired.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method",
    "pathParams"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "pathParams": {
     "type": "object",
     "required": [
      "username"
     ],
     "properties": {
      "username": {
       "type": "string",
       "pattern": "^[A-Za-z0-9._]+$",
       "maxLength": 30,
       "description": "Instagram handle as it appears in the profile URL, e.g. `nasa` for instagram.com/nasa. Case-insensitive, no leading @."
      }
     }
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "cursor": {
       "type": "string",
       "maxLength": 1024,
       "description": "Opaque pagination token returned as `next_cursor` by a previous call. Omit or leave empty to get the first page."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "username",
      "posts",
      "next_cursor",
      "next_cursor_url"
     ],
     "properties": {
      "note": {
       "type": "string",
       "description": "Present only when the page came back empty (unknown, private or empty account, or an expired cursor). The paid lookup still ran."
      },
      "posts": {
       "type": "array",
       "items": {
        "type": "object",
        "required": [
         "is_video",
         "has_audio",
         "dimensions",
         "likes",
         "comments",
         "comments_disabled",
         "like_and_view_counts_disabled",
         "is_paid_partnership",
         "tagged_users",
         "carousel"
        ],
        "properties": {
         "id": {
          "type": "string"
         },
         "url": {
          "type": "string",
          "description": "Public post permalink, derived from the shortcode"
         },
         "likes": {
          "type": "integer"
         },
         "owner": {
          "type": "object",
          "properties": {
           "id": {
            "type": "string"
           },
           "username": {
            "type": "string"
           }
          }
         },
         "title": {
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "posts": [
   {
    "id": "3502108108334577896",
    "url": "https://www.instagram.com/p/DBaVQ2Rx3Ho/",
    "likes": 812345,
    "owner": {
     "id": "528817151",
     "username": "nasa"
    },
    "caption": "A new view of the Sun's corona, captured during totality.",
    "carousel": [],
    "comments": 4102,
    "is_video": false,
    "location": {
     "id": "212999109",
     "name": "Kennedy Space Center",
     "slug": "kennedy-space-center"
    },
    "has_audio": false,
    "shortcode": "DBaVQ2Rx3Ho",
    "dimensions": {
     "width": 1080,
     "height": 1350
    },
    "display_url": "https://scontent.cdninstagram.com/v/t51.29350-15/nasa_post_1.jpg",
    "product_type": "feed",
    "tagged_users": [
     "nasahubble"
    ],
    "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.29350-15/nasa_post_1_thumb.jpg",
    "comments_disabled": false,
    "is_paid_partnership": false,
    "accessibility_caption": "Photo by NASA of the Sun's corona against a black sky.",
    "like_and_view_counts_disabled": false
   },
   {
    "id": "3498765432109876543",
    "url": "https://www.instagram.com/p/DBOxK1LvQ8m/",
    "likes": 1204553,
    "owner": {
     "id": "528817151",
     "username": "nasa"
    },
    "title": "Artemis II crew training",
    "caption": "Artemis II crew training, in 60 seconds.",
    "carousel": [],
    "comments": 8891,
    "is_video": true,
    "has_audio": true,
    "shortcode": "DBOxK1LvQ8m",
    "dimensions": {
     "width": 1080,
     "height": 1920
    },
    "display_url": "https://scontent.cdninstagram.com/v/t51.29350-15/nasa_post_2.jpg",
    "product_type": "clips",
    "tagged_users": [],
    "thumbnail_url": "https://scontent.cdninstagram.com/v/t51.29350-15/nasa_post_2_thumb.jpg",
    "video_duration": 58.6,
    "comments_disabled": false,
    "is_paid_partnership": false,
    "accessibility_caption": "Video by NASA of astronauts in training suits.",
    "like_and_view_counts_disabled": false
   }
  ],
  "username": "nasa",
  "next_cursor": "QVFEeWJzNWJXVUZ6M0xkVWhoOWc3RHhwLW5rTk1pT2h5",
  "next_cursor_url": "https://instagram.use.x402atlas.com/posts/nasa?cursor=QVFEeWJzNWJXVUZ6M0xkVWhoOWc3RHhwLW5rTk1pT2h5"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/instagram-profile-posts-feed-1d6a21ee/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from instagram.use.x402atlas.com](https://www.zero.xyz/host/instagram.use.x402atlas.com/llms.txt)
