> **For coding agents and LLMs:** This is one Social Fetch marketing page (markdown export). For API orientation start with [`/llms.txt`](https://www.socialfetch.dev/llms.txt); for auth and crawl rules use [`/agents.txt`](https://www.socialfetch.dev/agents.txt); for every operation use [`/llms-endpoints.txt`](https://www.socialfetch.dev/llms-endpoints.txt).

## This page

- **On-site (HTML):** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-media-media-comments>
- **Markdown (.mdx) URL:** <https://www.socialfetch.dev/platforms/instagram/v2-instagram-media-media-comments.mdx>

---

# Instagram media comments API

Page the comments on a post or Reel in Instagram's ranked order or newest first, each with its author, likes and reply count.

`GET /v2/instagram/media/{media}/comments` takes a shortcode, a post or Reel URL, or a numeric media id. Read `data.lookupStatus` first (`found` or `not_found`), then `data.comments`: each comment has `id`, `text`, `createdAt`, `author` (the shared profile summary with handle, id, picture and verified flag), `likeCount` and `replyCount`.

`sort=top` (the default) is Instagram's own ranked order, the one the app shows first, and also reports `isPinned`, `isByOwner` and `isLikedByOwner`. `sort=newest` lists the latest comments first; where a view doesn't report them, `replyCount` and the owner flags are `null`. If one order is briefly unavailable (`503`), retry or try the other `sort`.

When `data.page.hasMore` is true, pass `data.page.nextCursor` as `cursor` with the same `media` and `sort`. A cursor works only for the post and order that issued it. A page is billed once, only when it is served, so read `meta.creditsCharged`. `replyCount` can exceed the replies you can list, because Instagram hides some; read a thread with `GET /v2/instagram/media/{media}/comments/{commentId}/replies`. `meta.version` is `v2`.

## Request

- **Endpoint:** `GET /v2/instagram/media/{media}/comments`
- **Credits:** 1 credit
Failed requests are free
- **Input:** by shortcode, URL or media id
- **Full reference:** [docs](https://www.socialfetch.dev/docs/api/v2/instagram/media/media/comments/get)
- **Platform page:** [/platforms/instagram](https://www.socialfetch.dev/platforms/instagram)

## FAQ

### How do I get the comments on an Instagram post or Reel via API?

Call `GET /v2/instagram/media/{media}/comments` with your Social Fetch API key (`x-api-key`) and a shortcode, post URL or media id in the path. Read `data.lookupStatus`, then `data.comments`, and keep following `data.page.nextCursor` while `data.page.hasMore` is true. See the API docs for parameters and examples.

### How much does the Instagram comments API cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged — that field is the billing source of truth. Each paginated page is a separate billed request.

### What is the difference between sort=top and sort=newest?

`top` is Instagram's ranked order: the comments the app shows first, with reply counts and the owner's pin and like flags. `newest` is newest first; where a view doesn't report them, reply counts and the owner flags are `null`. `top` is the default.

### Why is the replyCount larger than the replies I can list?

Instagram hides some replies, such as those it filters, so a thread can list fewer replies than its `replyCount` says. The count is Instagram's own.

### What does a 503 mean on this endpoint?

That `sort` is briefly unavailable. Nothing is charged. Retry with backoff, or try the other `sort`. The two orders never stand in for each other, so you always get the order you asked for.

### Can I use a cursor with another post or another sort?

No. The cursor is tied to the post and the `sort` that issued it, so pass back the exact value you received with the same `media` and `sort`. A cursor from another post or order is a `400 bad_request`.

### What does not_found mean?

The post doesn't exist, was deleted, or belongs to a private account, in either `sort`. The response is a normal `200` with an empty `comments` list, billed as a page. A post with no comments, or with comments turned off, is `found` with an empty list.
