Get Instagram posts an account is tagged in
List the posts other people tagged an Instagram account in, with caption, media URLs, engagement counts and who posted each. 50 credits per page.
To list the posts other people tagged an Instagram account in, call GET /v1/instagram/tagged with the account's handle or user_id. Each page returns tagged posts with their caption, media URLs, view, like and comment counts, and the account that posted them. It costs 50 credits a page; the first page in our test held 21 posts. GET /v1/instagram/profile/posts returns only what the account posted itself, so this is how you see what others posted about it.
Cost
50 credits per page. Walking 10 pages costs 500 credits. Asking for the same page again within 6 hours is answered from the shared cache for 2 credits. Failed calls and empty results are free.
How do I find the handle or user ID?
The handle is the username without the @: https://www.instagram.com/mrbeast/ has the handle mrbeast. Send user_id instead for faster responses. GET /v1/instagram/profile/about (10 credits) returns it as data.author.id.
Make the request
curl "https://api.insightsocial.app/v1/instagram/tagged?handle=mrbeast" \
-H "x-api-key: $INSIGHTSOCIAL_API_KEY"What comes back
A real response from 2026-10-14, shortened: one post instead of 21, long URLs cut, the caption shortened, and the poster's account replaced with a placeholder.
{
"success": true,
"endpoint": "/v1/instagram/tagged",
"schema_version": "2",
"data": {
"items": [
{
"post": {
"id": "4007852954603258964",
"url": "https://www.instagram.com/reel/DeewQcXIIRU/",
"kind": "short",
"content": {
"text": "Short clip… #viralvideos",
"media_urls": ["https://scontent-hel3-1.cdninstagram.com/o1/v/t2/f2/m86/….mp4?…"],
"thumbnail_url": "https://scontent-hel3-1.cdninstagram.com/v/t51.71878-15/…",
"duration_seconds": 15.603
},
"author": { "id": null, "username": "example_user", "display_name": null, "verified": false },
"engagement": { "views": 0, "likes": 0, "comments": 0, "shares": null, "saves": null },
"flags": { "pinned": false, "deleted": false, "likes_hidden": null },
"published_at": "2026-10-14T15:56:39.000Z",
"ext": { "media_type": "video", "coauthors": [] }
}
}
],
"total": 990416,
"truncated": null
},
"pagination": { "next_cursor": "v2c.hukrcTcxA8iy…", "has_more": true, "page_size": 21 },
"unavailable": ["items[].post.author.id", "items[].post.author.display_name"],
"credits_used": 50
}| Field | What it holds |
|---|---|
data.items[].post | One tagged post in the shared post shape: caption, media and thumbnail URLs, duration, counts, publish time. |
data.items[].post.kind | short for a reel, image for a photo. |
data.items[].post.author | The account that posted it and tagged yours: username, avatar, verified badge. |
data.items[].post.flags.likes_hidden | true when the poster hid the like count; engagement.likes is then null. |
data.total | The total Instagram reports for the tagged list. 990,416 for mrbeast. |
unavailable | Fields this endpoint cannot fill: the poster's id and display_name are always null. Use the username. |
How do I get more than one page?
Send pagination.next_cursor back as cursor, with the same handle, and stop when pagination.has_more is false. Each page is 50 credits.
import os
import requests
BASE = "https://api.insightsocial.app/v1"
HEADERS = {"x-api-key": os.environ["INSIGHTSOCIAL_API_KEY"]}
params = {"handle": "mrbeast"}
posts = []
for _ in range(5):
body = requests.get(f"{BASE}/instagram/tagged", params=params, headers=HEADERS, timeout=120).json()
posts += body["data"]["items"]
if not body["pagination"]["has_more"]:
break
params["cursor"] = body["pagination"]["next_cursor"]A large account can be tagged in hundreds of thousands of posts, so set a page limit before you start. See Pagination for the full rules.
What are the limits?
- Recent first, not strictly ordered. In our test, all 21 posts on the first page were published within 42 minutes of each other on the day of the call, mostly newest first. For a large account, one page covers a short window.
- Hidden likes. 10 of the 21 posts had
likes_hidden: trueandengagement.likes: null.nullmeans unknown, not zero. - Shares and saves.
engagement.sharesandengagement.savesarenullon this endpoint. - Poster ID and name.
author.idandauthor.display_nameare alwaysnull. Pass the username toGET /v1/instagram/profilefor the full profile. - Mostly low-reach posts. Anyone can tag a large account. In our test, 15 of the 19 reels on the first page had under 20 views, so filter by engagement before you act on the list.
What can I build with it?
- Brand mention monitoring. Collect the posts that tag your brand each day. The brand mention monitoring recipe shows the full loop.
- Creator discovery. The accounts that tag a brand are fans and creators already posting about it.
- Campaign tracking. Check which creators in a campaign tagged the brand, and how their posts did.
Related
GET /v1/instagram/taggedreference: every parameter and field.GET /v1/instagram/profile/posts: the posts the account published itself.- Instagram endpoints: everything the API covers on Instagram.
Get an Instagram account's country and join date
Read the "About this account" details of a public Instagram account (country, month joined) plus follower and post counts. 10 credits per call.
Get an Instagram account's current stories
List the stories a public Instagram account has live right now, with image or video URLs, duration and post time. 50 credits per call.