↑ ↓ to move ↵ to open
Instagram API · Endpoint

Instagram Profile Posts API

List a public profile's posts, newest first, with caption, likes, comments and post time. Page through with next_cursor or stop at a date.

  • 1 credit per call
  • Failed calls are free
  • Updated
  • instagram.profile-posts.list
Response completed
{  "summary": {    "username": "nasa",    "has_more": true,    "user_id": "528817151"  },  "items": [    {      "data": {        "like_count": 163541,        "comment_count": 1720,        "code": "DeCPVhERA8e",        "id": "3999826868370149150",        "is_video": true,        "like_and_view_counts_disabled": false,        "media_type": 2,        "original_height": 1920,        "original_width": 1080,        "taken_at": 1791036618,        "caption": {          "text": "Room with a view. Check out my new digs as I camp out in Dragon until our departure. With Crew-13’s arrival we have a very full house on th…"        },        "owner": {          "username": "astro_jessica",          "id": "4092263381",          "is_verified": true        },        "coauthor_producers": [          {            "username": "nasa",            "is_verified": true          },          {            "username": "iss",            "is_verified": true          }        ]      }    },    {      "data": {        "like_count": 34280,        "comment_count": 258,        "code": "DeCNJEyOkpq",        "id": "3999817217276004970",        "is_video": true,        "like_and_view_counts_disabled": false,        "media_type": 2,        "original_height": 1920,        "original_width": 1080,        "taken_at": 1791035813,        "caption": {          "text": "From Florida to the front door in under eight hours. 🚀\n\n@nasa’s @spacex Crew-13 lifted off from Cape Canaveral, Florida, at 11:10 a.m. EDT …"        },        "owner": {          "username": "nasajohnson",          "id": "673882723",          "is_verified": true        },        "coauthor_producers": [          {            "username": "nasa",            "is_verified": true          },          {            "username": "nasakennedy",            "is_verified": true          }        ]      }    }  ]}
Try it live, free
Input

What you send

The input object of the request, with every field the endpoint accepts.

FieldTypeRequiredWhat it doesExample
url string yes The profile's username or URL. https://www.instagram.com/nasa
cursor string no Pass next_cursor from the last response, with the same profile, to get the next page.
limit integer no How many posts to return in this call.
max_pages integer no How many pages to read in this call. A smaller number answers faster.
since integer no Only posts from this moment on, as a Unix timestamp. Pinned posts can appear out of date order.
Response

Fields it returns

What each record in the response holds, with the values from the sample above.

FieldTypeWhat it isExample
items[].data.like_count integer Likes, as Instagram shows them. 163,541
items[].data.comment_count integer Comments, as Instagram shows them. 1720
items[].data.taken_at integer When it was posted, as a Unix time in seconds. 1,791,036,618
items[].data.code string The post's short code, the last part of its link. DeCPVhERA8e
items[].data.caption object The post's caption. 1 fields
items[].data object The post. 13 fields
items[].data.coauthor_producers array Accounts credited as co-authors of the post. 2 records
items[].data.id string The post's Instagram ID. 3999826868370149150
items[].data.is_video boolean Whether the post is a video. true
items[].data.like_and_view_counts_disabled boolean Whether the account hides like and view counts. false
items[].data.media_type integer Instagram's media type: 1 a photo, 2 a video, 8 a carousel. 2
items[].data.original_height integer The photo or video's original height, in pixels. 1920
items[].data.original_width integer The photo or video's original width, in pixels. 1080
items[].data.owner object The account that posted it. 3 fields
items array The account's posts. 50 records
summary object Totals and paging details for this answer. 3 fields
summary.has_more boolean Whether more posts are available. true
summary.user_id string The account's Instagram ID. 528817151
summary.username string The account's username. nasa
REST API · MCP server

Call it from your code, or ask your agent

Set UPSCRAPE_API_KEY to your key and copy a working request.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "instagram.profile-posts.list",  "input": {    "url": "https://www.instagram.com/nasa"  }}'
In your AI agent Claude · Cursor · any MCP client
1Add the Upscrape MCP server
https://data.upscrape.com/mcp
2Ask for the data in plain words

With Upscrape, pull NASA's latest Instagram posts and make a table of caption, likes and comments. Which five posts got the most likes?

The agent finds the endpoint, shows you the price, and runs it with your credits.
Instagram

More from the Instagram API

Same data, other platforms

The same data from other platforms

Questions

Instagram Profile Posts API FAQ

The short answers. The docs have the long ones.

Still have a question? Talk to the people who build the endpoints.
How much does the Instagram Profile Posts API cost?

1 credit per successful call, shown before it runs. You buy credits once, and paid credits never expire.

What do I send?

Send url. The input fields below list every option with its type and limits.

Do I need an Instagram login?

No. It reads public Instagram data; nothing runs on your account.

Can my AI agent call it?

Yes, over MCP: the agent finds instagram.profile-posts.list, checks its price and runs it with the same credits as the REST API.

Get started

Your first Instagram call is free.

Up to 100 free credits to start, no card needed.