Skip to main content

Fetch a post

Fetch one Instagram post or reel by shortcode, with a fully structured payload and all engagement metrics we can find — including play/view counts for reels.

GET /v1/instagram/post/{post_id}

Path parameter

ParameterDescription
post_idThe post shortcode (e.g. DcghxSFtjRB) or a full post URL (/p/…, /reel/…, /tv/…).

Example

curl "$LISTENX_BASE/v1/instagram/post/DcghxSFtjRB" \
-H "X-API-Key: $LISTENX_KEY"

Response

{
"id": "3972323393553183809",
"shortcode": "DcghxSFtjRB",
"url": "https://www.instagram.com/p/DcghxSFtjRB/",
"type": "reel",
"product_type": "clips",
"is_video": true,
"taken_at": "2025-06-12T15:25:12+00:00",
"caption": "…",
"hashtags": ["lebenmitkindern", "familytime", "mamaglück"],
"mentions": [],
"accessibility_caption": "Video by … May be an image of baby, sling and text.",
"author": {
"id": "15904929129",
"username": "jasmin_momlife",
"full_name": "Jasmin | Mama Alltag & Family Bloggerin",
"is_verified": false,
"is_private": false,
"profile_pic_url": "https://…",
"follower_count": 48210
},
"coauthors": [],
"location": { "id": "…", "name": "…", "lat": null, "lng": null },
"music": {
"title": "Original audio",
"artist": "jasmin_momlife",
"is_original_audio": true
},
"engagement": {
"like_count": 4045,
"comment_count": 238,
"play_count": 185300,
"ig_play_count": 185300,
"view_count": 185300,
"views": 185300,
"reshare_count": 512,
"share_count": 512,
"save_count": 1290,
"fb_like_count": 12,
"top_likers": ["someuser"],
"like_and_view_counts_disabled": false,
"comments_disabled": false
},
"media": {
"image": { "url": "https://…", "width": 1219, "height": 2160 },
"video": { "url": "https://…", "width": 720, "height": 1280 },
"video_duration": 16.0,
"width": 1440,
"height": 2560,
"carousel_count": null,
"carousel": []
},
"tagged_users": [],
"billing": {
"endpoint": "instagram.post",
"units": 1,
"unit_price": "0.020000",
"amount": "0.020000",
"balance_after": "97.320000",
"request_id": "…"
}
}

Engagement metrics

Every metric Instagram exposes is surfaced. The most relevant:

FieldDescription
like_countLikes.
comment_countComments.
play_count / ig_play_countReel/video plays.
view_count / viewsView count (normalised views = best available).
reshare_count / share_countShares / reshares.
save_countSaves (when available).
fb_like_count, fb_play_countCross-posted Facebook counts (when available).
like_and_view_counts_disabledWhether the creator hid counts.
Why some fields are null

Instagram does not return every metric for every post (e.g. an image post has no play_count; some creators disable counts). Fields that Instagram omits are returned as null rather than dropped, so your schema stays stable.

Media

  • Images / reels: media.image (cover) and media.video give the highest- resolution URL, width, and height.
  • Carousels: media.carousel is an array of child items, each with its own image/video and type.

Billing

Billed per request (units = 1), regardless of media type. See Billing.

Errors

HTTPcodeMeaning
400invalid_post_idNot a valid shortcode/URL.
404post_not_foundPrivate, deleted, or nonexistent.
429upstream_rate_limitedRetry with backoff.