Instagram API

Instagram User posts API

Paginated grid of a profile’s posts and reels with captions, media URLs and engagement. Paginate with the cursor field.

POST/v1/run/instagram.user_posts
Uptime
99.25%
30d · 19,225 calls
Requests
19,247
30d · weekly, last 12 wks
Response
2.0s
median · 30d

Try it

Make your first request

Open in
Get a free key
Sample response
Free runs return only the first 3 results. Fund a key to get the full response.
{
  "found": true,
  "data": {
    "nextCursor": "QVFEX2Z",
    "posts": [
      {
        "id": "3401000000000000000",
        "url": "https://www.instagram.com/p/C8aBcDeFgHi/",
        "caption": "A new view of the Pillars of Creation.",
        "likes": 1840000,
        "comments": 9200,
        "createdUtc": 1717945200,
        "username": "nasa",
        "verified": true
      }
    ]
  }
}
Response interface
interface InstagramUserPostsResponse {
  data: {
    nextCursor: string | null;
    posts: {
      avatarUrl?: string;
      caption: string;
      comments: number;
      createdUtc: number;
      displayName?: string;
      durationSeconds?: number;
      id: string;
      likes: number;
      media?: {
        height?: number;
        type: string;
        url: string;
        videoUrl?: string;
        width?: number;
      }[];
      url: string;
      userId?: string;
      username: string;
      verified: boolean;
    }[];
  } | null;
  found: boolean;
  reason?: "not_found";
}

Full parameter and response reference - every field, type, and example for this endpoint.

Reference

Request, response, and price

Last verified 2026-09-20 · uptime and latency measured over 30d
POST /v1/run/instagram.user_posts
curl -X POST https://api.getanyapi.com/v1/run/instagram.user_posts \
  -H "Authorization: Bearer $ANYAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"handle":"nasa","cursor":"0"}'
FieldTypeExample value
Request body
handlestring"nasa"Instagram username without the leading @.
cursorstring"0"Pagination cursor from a previous response's nextCursor.
Response
foundbooleantrue
dataobject
data.nextCursorstring"QVFEX2Z"
data.postsarray
data.posts[].idstring"3401000000000000000"
data.posts[].urlstring"https://www.instagram.com/p/C8aBcDeFgHi/"
data.posts[].captionstring"A new view of the Pillars of Creation."
data.posts[].likesnumber1840000
data.posts[].commentsnumber9200
data.posts[].createdUtcnumber1717945200
data.posts[].usernamestring"nasa"
data.posts[].verifiedbooleantrue
Price
Price per requestUSD$0.0008
Price /1k reqUSD$0.80

FAQ

About the Instagram User posts API

The AnyAPI Instagram User posts API returns Instagram user posts data as normalized JSON from one POST call to /v1/run/instagram.user_posts. Paginated grid of a profile’s posts and reels with captions, media URLs and engagement. Paginate with the cursor field. AnyAPI routes each request across 6 sources and falls back automatically when one fails. It costs from $0.80 per 1,000 requests, in US dollars with no subscription and no monthly minimum. Over the last 30 days, 99.3% of Instagram user posts calls through AnyAPI succeeded, with a median response time of 2.0 seconds across 19,225 measured calls.

It costs from $0.80 per 1,000 requests, in US dollars with no subscription and no monthly minimum. You fund one USD wallet, each call draws it down, and a failed request costs $0.

Paginated grid of a profile’s posts and reels with captions, media URLs and engagement. Paginate with the cursor field. The response is normalized JSON with the same envelope every AnyAPI endpoint returns, so parsing a second endpoint is a change of URL and nothing else.

Over the last 30 days, 99.3% of Instagram user posts calls through AnyAPI succeeded, with a median response time of 2.0 seconds across 19,225 measured calls. These are AnyAPI's own measurements of traffic through the gateway, recomputed continuously, not a published service-level target.