Instagram Comment Replies API — Replies to a Comment
Documentation menu
FetchLayer FetchLayer API

Read the replies to a comment

The replies to one comment on an Instagram post or reel, oldest first, in the same shape as comments. Pass the post and the comment’s id, as post-comments returns it. Paged: about 8 replies per page, 1 credit per page fetched.

POST /comment-replies Posts & reels
https://api.fetchlayer.dev/instagram/comment-replies
OpenAPI JSON

Headers

Authorization string required

Bearer token — your FetchLayer API key.

Parameters

post string required

The post or reel the comment is on: a URL in any of the forms post-detail accepts, the short code, or the post’s numeric id.

commentId string required

The comment’s id, as post-comments returns it in comments[].id. A string of digits. A comment that is not on that post, or does not exist, is a 404.

pages integer optional

Pages of replies to return in one request, up to 10. Use -1 for the maximum. A page is about 8 replies, each page is 1 credit, and the response reports how many were fetched as pagesFetched. A page takes about 2 seconds, and a request for several pages can take up to about 20 seconds between pages, so following nextCursor one page at a time is the quickest way to read a long thread. (default: 1)

cursor string optional

Continue from a previous response’s nextCursor. Send it back to comment-replies with the same post and commentId that produced it; a cursor from another route, post or comment, or a malformed one, is a 400.

limit integer optional

Maximum replies returned, up to 300. Use -1 for the maximum. It caps the replies across the pages fetched; it does not fetch further pages. (default: every reply on the pages fetched)

format string optional

json or markdown, lowercase; any other value is a 400. Over MCP, markdown returns the result rendered as text; the REST API accepts it and returns JSON. (default: json)

timeoutMs integer optional

Time limit for the whole request, in milliseconds (1000–120000); a value outside that range is a 400. When it runs out, a paged request returns what it has with nextCursor, billed for the pages it returned; a request with nothing to return yet fails with a 503 you can retry, marked with the response header X-Timeout-Source: caller. Left out, the request runs as long as it needs.

Response Fields

comment-replies

Read the replies to a comment

transport string

The data source: always the platform id, "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 fetched, which is what the request costs: one credit per page. resolve-url reports 0 and is not billed.

shortcode string

The post the comment is on.

commentId string

The comment the replies belong to.

replies object[]

The replies, oldest first. Empty when the comment has none, with a note saying so; that is still one page and 1 credit.

replies[].id string

Instagram’s exact reply id, as a string.

replies[].text string

The reply body, or null for a GIF or photo reply — kind says which and mediaUrl links it.

replies[].kind string

"text", "gif", "image" or "unknown".

replies[].mediaUrl string

The GIF or photo the reply carries, or null.

replies[].createdAt string

ISO 8601 timestamp.

replies[].likeCount number

Likes on the reply.

replies[].replyCount number

Always null on a reply.

replies[].author object

id, username, fullName, profilePicUrl, verified, privateAccount and profileUrl.

replyCount number

How many replies are in this response.

totalCount number

Instagram’s own count of replies to the comment. When Instagram lists fewer replies than it counts, the last page says so with numbers, e.g. "Instagram lists 5 of the 6 replies it counts for this comment."

hasMore boolean

Whether more replies are available. False when nextCursor is null.

nextCursor string | null

Pass it back as cursor, with the same post and commentId, to continue; paging never returns a reply twice across requests. Null at the end, and a finished list that matches the count ends with the note "There are no further replies to read." A response can hold fewer replies than asked; it then carries nextCursor and the note "This list stops early: the rest is not available in this response. Continue with nextCursor."

Request

curl -X POST "https://api.fetchlayer.dev/instagram/comment-replies" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"post":"DcOX3hWFiey","commentId":"18041736590218845"}'

Response

{
  "transport": "instagram",
  "notes": [
    "More replies are available. Continue with nextCursor."
  ],
  "pagesFetched": 1,
  "shortcode": "DcOX3hWFiey",
  "commentId": "18041736590218845",
  "replies": [
    {
      "id": "17892230514162087",
      "text": "Same here, that blue is unreal",
      "kind": "text",
      "mediaUrl": null,
      "createdAt": "2026-09-16T18:02:41.000Z",
      "likeCount": 1,
      "replyCount": null,
      "author": {
        "id": "62240918735",
        "username": "example.nightsky",
        "fullName": null,
        "profilePicUrl": "https://scontent-dus1-1.cdninstagram.com/v/t51.82787-19/...",
        "verified": false,
        "privateAccount": null,
        "profileUrl": "https://www.instagram.com/example.nightsky/"
      }
    }
  ],
  "replyCount": 8,
  "totalCount": 23,
  "hasMore": true,
  "nextCursor": "r1.WyIxODA0MTczNjU5MDIxODg0NSIsIlFWRlNiR..."
}