Instagram API endpoint
Returns top-level comments for a public Instagram post or Reel. `reply_count` is included when the logged-out source exposes it; reply bodies are not available on this anonymous surface. Pass `paging_info.max_id` back as `max_id` for the next comment page.
/instagram/post/commentsReturns one page of public top-level comments for an Instagram post or Reel.
The reply_count field is included when the logged-out source provides it; the
anonymous public surface does not return reply bodies. Pass
paging_info.max_id back as max_id with the same url to fetch the next
comment page.
Query parameters:
url: required. Public Instagram post or Reel URL.max_id: optional. Opaque comment-page cursor from the previous response.| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| url | string | Yes | Public Instagram post or Reel URL | https://www.instagram.com/google/p/DecN711mjpI/ | |
| max_id | string | No | Opaque cursor from the previous response's paging_info.max_id | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/instagram/post/comments?url=https%3A%2F%2Fwww.instagram.com%2Fgoogle%2Fp%2FDecN711mjpI%2F" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"shortcode": "DecN711mjpI",
"comments": [
{
"id": "18411760690092566",
"text": "A public comment",
"created_at": 1792603556,
"comment_like_count": 7,
"reply_count": 3,
"user": {
"id": "17841401778116675",
"username": "public_user",
"profile_pic_url": "https://cdn.example.com/avatar.jpg"
}
}
],
"paging_info": {
"max_id": "OPAQUE_CURSOR",
"more_available": true
}
}
}Request schema
No body schema
Response schema
#/definitions/instagram.commentsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | instagram.InstagramCommentsResponse | No | ||||
| data.comments | array | No | ||||
| data.comments[].comment_like_count | integer | No | ||||
| data.comments[].created_at | integer | No | ||||
| data.comments[].id | string | No | ||||
| data.comments[].parent_comment_id | string | No | ||||
| data.comments[].reply_count | integer | No | ||||
| data.comments[].text | string | No | ||||
| data.comments[].user | instagram.InstagramCommentUser | No | ||||
| data.comments[].user.id | string | No | ||||
| data.comments[].user.profile_pic_url | string | No | ||||
| data.comments[].user.username | string | No | ||||
| data.paging_info | instagram.PagingInfo | No | ||||
| data.paging_info.max_id | string | No | Cursor to pass unchanged as `max_id` to fetch the next page of reels. | |||
| data.paging_info.more_available | boolean | No | Whether more reels are available after this page. | |||
| data.shortcode | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Missing or invalid parameters | #/definitions/app.Response |
| 404 | Post or Reel not found | #/definitions/app.Response |
| 429 | Rate limit exceeded | #/definitions/app.Response |
| 500 | Internal server error | #/definitions/app.Response |
| 503 | Anonymous upstream access denied or unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/instagram/post/comments?url=https%3A%2F%2Fwww.instagram.com%2Fgoogle%2Fp%2FDecN711mjpI%2F" \
-H "x-api-key: $CRAWLORA_API_KEY"