All questionsInstagram

How do I get comments on an Instagram post that is not mine?

Call the Openhandle comments endpoint with the post ID. Each request returns one page of comments with the author, text, time, and like count, plus a cursor for the next page. The post can belong to anyone, as long as the account is public.

If you start from a post URL, pass the URL to the fetch endpoint first. It returns the post with its id. Then page through the comments with that ID.

Checked September 2026 · request and response run against the API · no affiliate links

GET /v1/instagram/posts/{id}/comments
curl "https://api.openhandle.dev/v1/instagram/posts/910100000001/comments" \
  -H "Authorization: Bearer $OPENHANDLE_API_KEY"
TypeScript SDK
import { OpenHandle } from '@openhandle/sdk';

const openhandle = new OpenHandle({ apiKey: process.env.OPENHANDLE_API_KEY! });
let page = await openhandle.instagram.post('910100000001').comments.list();

while (page) {
    for (const comment of page.data) console.log(comment.author.handle, comment.text);
    page = await page.next();
}
200 OK
{
  "platform": "instagram",
  "resource": "comment",
  "capturedAt": "2026-09-18T09:20:41Z",
  "source": "live",
  "data": [
    {
      "id": "910200000001",
      "postId": "910100000001",
      "text": "This fictional kit is excellent.",
      "createdAt": "2026-08-09T16:30:00Z",
      "author": { "id": "910000000020", "handle": "copperfield_notes_test" },
      "metrics": { "likes": 12, "replies": 0 }
    },
    {
      "id": "910200000002",
      "postId": "910100000001",
      "text": "Does the synthetic compass point north?",
      "createdAt": "2026-08-09T17:30:00Z",
      "author": { "id": "910000000020", "handle": "copperfield_notes_test" },
      "metrics": { "likes": 11, "replies": 0 }
    }
  ],
  "meta": { "cursors": { "next": "b3BhcXVlLWN1cnNvcg" } }
}

Trimmed to two comments and the fields this question needs. The example post is a Test fixture with 24 comments over several pages, so you can test pagination on a free Test key.

Why the official Instagram API does not do this

The Instagram Graph API reads comments only on media owned by an account that authorized your app. A post on a brand you monitor, a creator you vet, or a competitor is out of reach. There is no permission you can request for it.

Start from a URL

Comments endpoints take the canonical post ID, not a URL. Pass the URL to POST /v1/urls/fetch and it returns the post, including id. In the TypeScript SDK that is openhandle.fetch(url). Store the ID. Shortcodes and URLs change shape, IDs do not.

Paging and replies

  • One page per request. Pass meta.cursors.next back as cursor. When it is null, you have every comment. Cursors are opaque and bound to this post and freshness. Do not build them by hand.
  • Replies are separate. A comment with metrics.replies above zero has a thread. Read it with GET /v1/instagram/posts/{id}/comments/{commentId}/replies.
  • Hidden numbers stay hidden. When Instagram does not show a like count, metrics.likes is null. We never write a zero for a number the platform hid.

When this does not work

These answers are definitive. Store them, do not retry them.

SituationStatusCode
The post is deleted or never existed404POST_NOT_FOUND
The account went private403PROFILE_PRIVATE
The cursor came from another request400CURSOR_MISMATCH
The identifier is malformed400INVALID_IDENTIFIER
404 Not Found
{
  "error": {
    "code": "POST_NOT_FOUND",
    "message": "This post was not found.",
    "requestId": "req_01j8…",
    "retryable": false
  }
}

An account can flip private while you page. Handle PROFILE_PRIVATE on any page, not only the first. Every new workspace starts with 100 free live requests, no card needed.

Read next

More Instagram questions

Send your agent ahead.

Paste the prompt into your agent and it sets everything up. Or come yourself, it takes five minutes.

For agents