How to get Instagram post comments
GET request to /v1/instagram/comments with your input. You get clean JSON back in seconds for ~45 credits (0.9/result) per call — no OAuth, scraping or platform SDKs. Session-paged Instagram comments — a logged-out 2-row preview of a larger thread is 503 SESSION_UNAVAILABLE at 0 credits.How to get Instagram post comments (step by step)
- 1
Get a free API key
Create a free Captapi account (100 credits, no card) and generate an API key from the dashboard.
- 2
Call the Instagram Post Comments API
Send an authenticated GET request to /v1/instagram/comments with your input. No OAuth, no scraping setup.
- 3
Read the JSON response
Parse the clean JSON response. Pass cache=true for a free 24h cache hit; default is always fresh.
Code example
curl "https://api.captapi.com/v1/instagram/comments?url=https%3A%2F%2Fwww.instagram.com%2Fp%2FDZFqdAxlkUG%2F" \
-H "Authorization: Bearer capt_live_..."
# or: -H "x-api-key: capt_live_..."What the response looks like
{
"success": true,
"data": {
"platform": "instagram",
"url": "https://www.instagram.com/p/DZFqdAxlkUG/",
"totalReturned": 2,
"comments": [
{
"id": "17928720258124446",
"url": "https://www.instagram.com/p/DZFqdAxlkUG/c/17928720258124446",
"text": "❤️❤️❤️❤️",
"author": "giulianagrichetta",
"authorAvatarUrl": "https://scontent-atl3-1.cdninstagram.com/v/t51.82787-19/728156182_18607734223047509_7404583005739996663_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=100&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&_nc_ohc=cGoAOlkd3_cQ7kNvwH3cesI&_nc_oc=AdoV430X7wZK1hp5x9HI0Hg267Kf8LmyXB11Ej7I4nXePNxGKZduI8DcOoBp0IN0ER4&_nc_zt=24&_nc_ht=scontent-atl3-1.cdninstagram.com&_nc_gid=P5Abwq2UvTMDXokKzG45Jg&_nc_ss=72a8c&oh=00_AQBT4Z-zQV-Z89Kd0BKVNmhs_-iOYakXFRvy-kMFVfLWsA&oe=6A4DA794",
"authorIsVerified": false,
"publishedAt": "2026-07-01T07:49:55.000Z"
},
{
"id": "18083281052356825",
"url": "https://www.instagram.com/p/DZFqdAxlkUG/c/18083281052356825",
"text": "Hoppers moment",
"author": "redkidane",
"authorAvatarUrl": "https://scontent-atl3-3.cdninstagram.com/v/t51.82787-19/686139918_18580722691039268_2096250779414967342_n.jpg?stp=dst-jpg_s150x150_tt6&_nc_cat=111&ccb=7-5&_nc_sid=f7ccc5&efg=eyJ2ZW5jb2RlX3RhZyI6InByb2ZpbGVfcGljLnd3dy4xMDgwLkMzIn0%3D&_nc_ohc=5ruLx7cECMUQ7kNvwEw883n&_nc_oc=Adp-jPSBc0mkti93nI0FR-bBBq_hLclzrrRqC70JO7HsI47RMZeVJF159wD-BivgyvM&_nc_zt=24&_nc_ht=scontent-atl3-3.cdninstagram.com&_nc_gid=P5Abwq2UvTMDXokKzG45Jg&_nc_ss=72a8c&oh=00_AQD-UwNDAfkrNje1f_2dMoh9ax8alu8E-J44od76mYrB5g&oe=6A4DA11B",
"authorIsVerified": false,
"publishedAt": "2026-06-24T23:45:01.000Z"
}
]
}
}Billing metadata (credits charged, cache hit/miss) is returned in the X-Captapi-Credits and X-Captapi-Cache response headers.
Request parameters
| Name | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | Instagram post or reel URL, e.g. https://instagram.com/reel/ID/. The URL platform must match this endpoint's platform. Do not pass cross-platform URLs, e.g. YouTube to TikTok, Instagram to Facebook, LinkedIn to X/Twitter, or Pinterest to Rumble. |
| limit | integer | No | Max items to return (default 50, max 500). Billed per result. |
| cursor | string | No | Pagination cursor from the previous nextCursor ({mediaPk}:{minId}). Omit on the first page. hasMore is true when nextCursor is set, or when more exist and cannot be paged (nextCursor null + truncatedReason). |
| cache | boolean | No | Set true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh. |
Frequently asked questions
What does the Instagram Post Comments API do?
The Instagram Post Comments API lets you pull comments with author, text, likes, and replies from a public Instagram post using one GET request to /v1/instagram/comments. It returns clean JSON — no OAuth or infrastructure setup required.
How many credits does the Instagram Post Comments API cost?
At the default limit this endpoint costs 45 credits (0.9 per result). Billing scales with how many results you request. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Failed or empty results are never charged.
Do I need a Instagram API key or OAuth?
No. A single Captapi key works across every platform Captapi supports — YouTube, TikTok, Instagram, Facebook, Twitter/X, Reddit, Threads, Bluesky, Pinterest, LinkedIn, Rumble, Spotify, Kwai, and more. We handle proxies, rate limits, retries, and authentication for you.
I asked for 50 comments and got 2. Is the endpoint broken?
That used to be a billed Polaroid preview. When totalAvailable is larger than the ~2 logged-out rows, the call is now 503 SESSION_UNAVAILABLE at 0 credits — Instagram rejected (or we have no) session. A live session returns up to limit with nextCursor. A post that really has 2 comments is still a 200.
Why is hasMore true next to nextCursor null?
More comments exist and this path cannot page them. truncatedReason names why (logged_out_preview | single_page_only | …). Same catalogue rule as tiktok/trending-feed and truth-social/user-posts. hasMore false next to totalAvailable 3473 was the lie.
Why was I charged twice for the same 2 comments?
You shouldn't be anymore. The preview of a larger thread is 503 at 0 credits. cached is always keyed — default cache=false still means a live call, but a session miss no longer bills.
Why are likeCount / publishedAt / replyCount null?
Polaroid preview rows are often text + author only. Those keys stay null rather than invented zeros. Session and extended rows fill them when Instagram sends comment_like_count / created_at / child_comment_count.
Why did a comments call take over two minutes and still bill me?
That was a hang past Cloudflare's ~125s read timeout that still logged 200. The route is now hard-capped at 110s — timeout is 502 UPSTREAM_UNAVAILABLE at 0 credits.
Is the Instagram Post Comments API suitable for production use?
Yes. It is a stable REST endpoint with predictable JSON and automatic retries. Pass cache=true to serve from the 24h cache (0 credits on hit); default is always fresh. Selected profile endpoints also accept cacheMaxAge=1d|3d|7d|14d|30d. Use it for analytics, monitoring, and content automation.
Ready to get Instagram post comments?
Start free with 100 credits — no credit card required.
Get your free API key