To get Instagram profile, post and reels data programmatically, use Scavio's Instagram API. POST /api/v1/instagram/profile returns follower, following and post counts, bio and link; /user/reels returns a page of reels, each with view_count, like_count and comment_count; and /user/posts returns the feed, where every reel also carries share_count and save_count. A profile or a page of reels typically costs 1 credit and a page of posts 2, about $0.002 a credit on the Growth plan billed yearly.
Meta's Instagram API is built for your own professional account: insights such as reach, shares and saves cover your app user's media, and other accounts are reachable only if they are business or creator accounts, through your own professional account and a Meta app. To read any public profile and its reels, call a third-party API. Every response below was captured on October 27, 2026, with long URLs trimmed.
Step 1: Get the profile
curl -s https://api.scavio.dev/api/v1/instagram/profile \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "mkbhd"}'{
"data": {
"pk": "28943446",
"username": "mkbhd",
"full_name": "Marques Brownlee",
"follower_count": 5302311,
"following_count": 582,
"media_count": 2119,
"is_private": false,
"is_verified": true,
"biography": "I promise I won't overdo the filters.",
"external_url": "https://mkbhd.com/",
"category": ""
},
"response_time": 3903,
"credits_used": 1
}pk is the numeric user id every other endpoint also accepts. Check is_private before you pay for post calls. Two fields are less reliable: category was empty for 6 of the 10 creators we pulled, and media_count came back as 0 for 3 of them, so count posts from Step 3 if you need the number.
Step 2: Pull a page of reels
curl -s https://api.scavio.dev/api/v1/instagram/user/reels \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "mkbhd"}'This returned 12 reels from October 21 back to May 25, 2026. One row, as captured (thumbnail and video URLs omitted):
{
"id": "4012807457708925661_28943446",
"pk": "4012807457708925661",
"code": "DewWx88x2Ld",
"media_type": 2,
"is_video": true,
"like_count": 251909,
"comment_count": 1347,
"view_count": 5667115,
"taken_at": 1792584041,
"caption_text": "ASMR iPhone Duo Unboxing. Full review is up on YouTube now",
"owner": {
"pk": "28943446",
"username": "mkbhd",
"full_name": "Marques Brownlee",
"is_verified": true
}
}code is the shortcode in the reel's URL, taken_at is a Unix timestamp, and each row also has thumbnail_url and video_url. Across this page the median reel had 2,629,741 views against 5,302,311 followers: 49.6%. Run the same two calls over 10 creators and that share ranged from 2.9% to 49.6%, which is why reach belongs next to the follower count; the best Instagram profile scraper APIs has the chart.
Step 3: Read the feed for shares and saves
curl -s https://api.scavio.dev/api/v1/instagram/user/posts \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "mkbhd"}'The posts endpoint returns the feed in data.data.items: 12 items here, 8 reels (product_type "clips"), 2 photos and 2 carousels. Reels in the feed carry more counters than the reels endpoint. Selected fields from one item:
{
"code": "DdFHJkpyy58",
"product_type": "clips",
"taken_at": 1788985593,
"like_count": 1141620,
"comment_count": 13691,
"play_count": 31175846,
"ig_play_count": 31175846,
"share_count": 535913,
"save_count": 60956,
"video_duration": 19.9
}caption.text, user, image_versions, video_versions and tagged_users are in the same object. Watch the two play counters on collaboration posts: on one MKBHD collaboration reel, play_count was 33,147,682 and ig_play_count 16,585,851, and the reels endpoint's view_count matched ig_play_count. Pick one and store it consistently. A page of posts costs 2 credits.
Step 4: Get one reel or post by shortcode
curl -s https://api.scavio.dev/api/v1/instagram/post \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"shortcode": "DewWx88x2Ld"}'The post endpoint takes a shortcode, a post URL or a media id and returns the item in data.items[0]: play_count 5,667,152, like_count 251,910, comment_count 1,348, video_duration 46.4 seconds, the caption, the author and the audio details, in 1.8 seconds for 2 credits. Use it when you start from links rather than accounts. For the conversation under a reel, post comments returns comment text, author and like count a page at a time.
Step 5: Page back through older reels and posts
Reels responses include next_max_id; send it back as cursor:
curl -s https://api.scavio.dev/api/v1/instagram/user/reels \
-H "Authorization: Bearer $SCAVIO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"username": "mkbhd", "cursor": "<next_max_id from the previous page>"}'The second page returned 12 more reels, May 25 back to January 30, 2026, with no overlap with the first, for 1 credit. Posts work the same way with data.pagination_token as the cursor. Stop when the cursor comes back empty.
All 20 Instagram endpoints
| Endpoint | What it returns | Credits (typical) |
|---|---|---|
/api/v1/instagram/profile | Counts, bio, link, verified and private flags, user id | 1 |
/api/v1/instagram/user/reels | Reels with view, like and comment counts | 1 (2 on a new username) |
/api/v1/instagram/user/posts | Feed posts; reels with plays, shares and saves | 2 per page |
/api/v1/instagram/user/tagged | Posts the account is tagged in | 1 (2 on a new username) |
/api/v1/instagram/user/stories | Active stories with media URLs | 2 |
/api/v1/instagram/user/highlights | Story highlights with title and cover | 2 |
/api/v1/instagram/highlight/stories | Every story in one highlight | 2 |
/api/v1/instagram/user/followers | Follower list | 2 per page |
/api/v1/instagram/user/followings | Accounts the user follows | 2 per page |
/api/v1/instagram/user/similar | Similar accounts | 2 |
/api/v1/instagram/post | One post or reel by shortcode, URL or media id | 2 |
/api/v1/instagram/post/comments | Comments with author and like count | 2 per page |
/api/v1/instagram/post/comments/replies | Replies to one comment | 2 |
/api/v1/instagram/post/likers | Up to about 1,000 likers and the total like count | 2 |
/api/v1/instagram/search/users | Accounts matching a keyword | 2 (8 with a cursor) |
/api/v1/instagram/search/hashtags | Hashtags with media counts | 2 (8 with a cursor) |
/api/v1/instagram/search/reels | Reels matching a keyword | 2 per page |
/api/v1/instagram/search/music | Audio tracks by song or artist | 2 |
/api/v1/instagram/music/posts | Reels that use a track | 1 per page |
/api/v1/instagram/search/locations | Places with id, address and coordinates | 2 |
Each call costs what it took to answer, shown in credits_used on every response and never more than 10: in our test 9 of 11 profile calls billed 1 credit and 2 billed 9.
Getting started
- Sign up at dashboard.scavio.dev/sign-up: 50 free credits, no card required.
- Copy your API key from the dashboard.
- Send a POST to
/api/v1/instagram/profilewith a username and your key in theAuthorizationheader.
Try the Instagram API free in the playground first, or call it from Claude and other agents through the MCP server.
Reference: Instagram API overview · profile · user reels · user posts · post · reels search
Frequently asked questions
Can I get Instagram reel views through an API?
Yes. Scavio's /api/v1/instagram/user/reels returns a page of a public account's reels, each with view_count, like_count and comment_count, for 1 credit. Meta's own API returns views for reels on your own professional account, and for other professional accounts through business discovery.
How do I get share and save counts for Instagram reels?
For any public account, page the feed with /api/v1/instagram/user/posts. Each reel in it carries share_count and save_count next to play_count and like_count. For your own professional account, Meta's media insights endpoint returns shares and saved.
Do I need an Instagram account or a Meta app to get this data?
Not for public data through a third-party API. Meta's Instagram API needs a Meta app, an Instagram professional account and an access token, and reads other accounts only if they are business or creator accounts. A third-party API needs only its own API key.
How much does Instagram data cost with Scavio?
A profile or a page of reels typically costs 1 credit and a page of posts or a single post 2. Each call costs what it took to answer, shown in credits_used and never more than 10. At the Growth plan billed yearly a credit is about $0.002, and new accounts get 50 free credits with no card.
Can I get data from private Instagram accounts?
No. Only public data is returned. A private account resolves to its profile header with is_private set to true, and its posts and reels are not available.