Get one post or reel in full
One Instagram post or reel by URL or short code, with the comments Instagram publishes alongside it. This is where the counts and the posting date live: a listing does not carry them. Returns the caption, createdAt, likeCount, commentCount, playCount for a reel, countsHidden, dimensions, alt text, every rendition, a carousel expanded frame by frame, the author and any co-authors, accounts tagged in the image, the place it was tagged at, Instagram’s own topic labels, hashtags, mentions and hasAudio. countsHidden true means the account turned like and view counts off, so those counts are absent rather than zero. The comments that come back are the same first page post-comments returns — about 13 of them — and the note says so. caption is the author’s own written post body and altText is Instagram’s auto-generated image description; neither is a transcript, and Instagram publishes none to a signed-out reader. Billing: 1 credit.
/post-detail Posts & reels https://api.fetchlayer.dev/instagram/post-detail Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
post string required A post or reel URL, or the short code from that URL (the part after /p/ or /reel/).
format string optional json or markdown. Markdown returns a rendered summary instead of the structured record. (default: json)
timeoutMs integer optional Time limit for each individual page read, in milliseconds (max 60000). It bounds one page, not the whole request.
Response Fields
post-detail
Get one post or reel in full
transport string The upstream source. Always "instagram".
notes string[] Caveats you can act on — a ceiling Instagram imposes, a counter it withholds, a list that stopped early. Several real limits are reported only here, so read them. An empty result always comes with a note explaining it, never as an unexplained empty array.
pagesFetched number Pages of results read, which is what the request costs: one credit per page. resolve-url reports 0 and is not billed.
post object The post or reel, in the shape below.
post.id string Instagram’s numeric media id.
post.shortcode string The code in the post URL. post-detail and post-comments both accept it.
post.url string Canonical link to the post or reel.
post.kind string image, video or carousel.
post.productType string What Instagram calls the surface — "feed" for a grid post, "clips" for a reel — or null.
post.caption string The author’s own written post body, or null. This is a caption, not a transcript: Instagram publishes no transcript of spoken audio to a signed-out reader.
post.createdAt string ISO 8601 timestamp, or null. Null on a posts listing — Instagram does not publish a date on a grid.
post.likeCount number Likes, or null where Instagram does not publish them (on a posts listing, or when countsHidden is true).
post.commentCount number Comments, or null on a posts listing.
post.playCount number Plays on a reel. user-reels is the only listing that carries it; a feed image has none.
post.countsHidden boolean True when the account has turned like and view counts off. The counts are then absent rather than zero.
post.width number Pixel width, or null on a listing.
post.height number Pixel height, or null on a listing.
post.altText string Instagram’s own auto-generated image description ("Photo by NASA on August 19, 2026. May be an image of text."), or null. Machine-written alt text, not a caption and not a transcript.
post.thumbnailUrl string Preview frame, or null.
post.assets object[] Ordered and de-duplicated renditions, each with kind, url, width, height and downloadUrl.
post.assets[].downloadUrl string Pass it to GET /media to stream the bytes. Instagram’s own links are signed and expire; this one keeps working.
post.carousel object[] One entry per frame of a carousel, each with its own renditions. Empty for a single image or video.
post.author object id, username, fullName, profilePicUrl, verified, privateAccount and profileUrl. Fields Instagram does not publish on a listing are null.
post.coauthors object[] Accounts credited as co-authors of a collab post.
post.taggedUsers object[] Accounts tagged in the image.
post.location object The place the post was tagged at, or null.
post.hashtags string[] Without the #.
post.mentions string[] Usernames without the @.
post.topics string[] Instagram’s own subject labels for the post ("jwst", "star birth"), where it publishes them.
post.hasAudio boolean Whether the video carries audio, or null.
post.fieldsFrom string "listing" or "detail" — which shape produced this record, so a null count is never mistaken for a zero.
comments object[] The comments Instagram publishes alongside the post — the first page only, about 13 of them. See post-comments.
Request
curl -X POST "https://api.fetchlayer.dev/instagram/post-detail" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"post":"https://www.instagram.com/p/DcOX3hWFiey/"}'Response
{
"transport": "instagram",
"notes": [
"These are the 13 comments of the 4,334 the source reports that are public for this post. The source does not publish the rest to a signed-out reader, so there is no further page to read."
],
"pagesFetched": 1,
"post": {
"id": "3967213292204992434",
"shortcode": "DcOX3hWFiey",
"url": "https://www.instagram.com/p/DcOX3hWFiey/",
"kind": "image",
"productType": "feed",
"caption": "With your powers combined…\n\nThis colorful picture of the cosmos is the product of teamwork between our @NASAHubble, @NASAWebb, and @NASAChandraXray telescopes. …",
"createdAt": "2026-08-19T14:11:47.000Z",
"likeCount": 573281,
"commentCount": 4334,
"playCount": null,
"countsHidden": false,
"width": 1280,
"height": 1129,
"altText": "Photo by NASA on August 19, 2026. May be an image of text.",
"thumbnailUrl": "https://scontent-dus1-1.cdninstagram.com/v/t51.82787-15/...",
"assets": [
{
"kind": "image",
"url": "https://scontent-dus1-1.cdninstagram.com/v/t51.82787-15/...",
"width": 1280,
"height": 1129,
"downloadUrl": "https://api.fetchlayer.dev/instagram/media?url=..."
}
],
"carousel": [],
"author": {
"id": "528817151",
"username": "nasa",
"fullName": "NASA",
"verified": true,
"privateAccount": false,
"profileUrl": "https://www.instagram.com/nasa/"
},
"coauthors": [],
"taggedUsers": [],
"location": null,
"hashtags": [
"nasa",
"universe",
"nebula"
],
"mentions": [
"nasahubble",
"nasawebb",
"nasachandraxray"
],
"topics": [
"carina nebula",
"jwst",
"star birth",
"cosmic clouds",
"astronomy photography",
"interstellar dust"
],
"hasAudio": null,
"fieldsFrom": "detail"
},
"comments": [
{
"id": "18389100721207166",
"text": "I see some one holding ball",
"createdAt": "2026-09-16T17:16:25.000Z",
"likeCount": 0,
"replyCount": null,
"author": {
"id": "56682311975",
"username": "abhinaya.2024",
"fullName": null,
"verified": false,
"privateAccount": null,
"profileUrl": "https://www.instagram.com/abhinaya.2024/"
}
}
]
}