InsightSocial API
Instagram

Instagram Post Comments API reference

Your first 10 calls are free, no card needed. Pricing and FAQ

Get a free API key
Example request
curl "https://api.insightsocial.app/v1/instagram/post/comments?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FDXidPIVDU6M%2F" \
  -H "x-api-key: $INSIGHTSOCIAL_API_KEY"

Step-by-step: Get the accounts that liked an Instagram post

GET
/v1/instagram/post/comments

Returns a post's comments, each with its text, author, like count, reply count, and time, ranked by popularity by default or newest first.

Use it to read the comment section of one post, paging deeper with the cursor it returns; pass sort=recent for newest first.

Metered: 50–150 credits. We reserve the ceiling when the call starts and charge what it actually used when it finishes.

Paginates by cursor: see Pagination.

x-api-key<token>

Your key from the dashboard. It starts with isk_.

In: header

Query Parameters

url*string

URL of the Instagram post (a /p/, /reel/, /reels/, or /tv/ link).

sort?string

Ordering: top (default) ranks by Instagram's popularity order (most-liked first); recent returns newest-first. Use recent when you are paging through a whole thread: Instagram ranks only the most-liked head, so a top walk starts repeating comments once you page past it.

Value in

  • "top"
  • "recent"
cursor?string

Pagination cursor. Use the next_cursor from the previous response to fetch the next page.

safe_url?boolean

When true, returns URL-safe profile picture links suitable for embedding.

scan_pages?integer

Optional, 1 to 3, default 1. With 2 or 3, the call reads that many pages, drops comments repeated across pages, and returns them all sorted by likes (sort=top) or newest first (sort=recent). Use it when the first page of a top-sorted thread is low-like comments.

Range1 <= value <= 3
dry_run?"1"

Set to 1 to get the price of this call without making it: data.dry_run carries credits_min and credits_max. Nothing is charged.

Value in

  • "1"
since?string

Only rows published on or after this date: YYYY-MM-DD (midnight UTC) or an ISO 8601 timestamp. Rows older than it are left off the page, and the page that reaches one ends the walk: next_cursor is not returned and pagination.stopped_at is since. Sending it sets the newest-first sort shown in this endpoint's sort parameter (any other sort value is a free 400). The page still costs what a page costs, so you pay for the pages you walk and no more. A row with no date is kept.

until?string

Only rows published on or before this date: YYYY-MM-DD (that whole UTC day is included) or an ISO 8601 timestamp. Newer rows are left off each page and the walk does not stop, so older pages follow. A row with no date is kept.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://api.insightsocial.app/v1/instagram/post/comments?url=string"
{  "success": true,  "platform": "string",  "endpoint": "string",  "schema_version": "2",  "pagination": {    "next_cursor": "string",    "has_more": true,    "page_size": 0,    "stopped_at": "since"  },  "unavailable": [    "string"  ],  "credits_used": 0,  "credits_remaining": 0,  "request_id": "string",  "cached": true,  "idempotent_replay": true,  "charge_reason": "string",  "free_call": true,  "data": {    "items": [      {        "comment": {          "id": "string",          "url": "http://example.com",          "parent_id": "string",          "post_id": "string",          "text": "string",          "author": {            "id": "string",            "username": "string",            "display_name": "string",            "avatar_url": "http://example.com",            "verified": true          },          "engagement": {            "likes": 0,            "replies": 0          },          "flags": {            "pinned": true,            "deleted": true          },          "published_at": "2019-08-24T14:15:22Z",          "language": "string",          "replies": [            {}          ],          "ext": {            "property1": null,            "property2": null          }        }      }    ],    "total": 0,    "truncated": true,    "ext": {      "property1": null,      "property2": null    }  }}