Instagram
GET /v1/instagram/comments

Instagram Post Comments API

Get the comments on any Instagram post or Reel — text, author, likes, and timestamp when Instagram exposes them.

~45 credits (0.9/result) per request
TL;DR
Get the comments on any Instagram post or Reel — text, author, likes, and timestamp when Instagram exposes them. The Instagram Post Comments API (Instagram) is a single authenticated GET request to /v1/instagram/comments that responds with clean JSON and costs ~45 credits (0.9/result). Pass cache=true for a free 24h cache hit; default is always fresh. Start with 100 free credits — no credit card.

What is the Instagram Post Comments API?

Send a post or Reel URL. A session pages api/v1/media/{pk}/comments and returns nextCursor; logged-out Polaroid only embeds ~2 preview rows. hasMore is true only when nextCursor is present — never a promise without a cursor. totalAvailable is the post's comment count (same figure as engagement.comments on /instagram/details). When fewer than limit rows arrive with no cursor, truncatedReason names why (logged_out_preview | session_page_short | extended_short | extended_disabled). likeCount, publishedAt, replyCount, and authorAvatarUrl are filled on the session/extended path; Polaroid preview rows are often text + author only (those keys stay null). Every 200 ships source / stages / timings. Hard 110s deadline: timeout is 502 UPSTREAM_UNAVAILABLE at 0 credits — never a billed 200 past Cloudflare. Billing scales with results returned (~0.9/comment). Pass cache=true to serve from the 24h shared cache (0 credits on hit); default is always fresh.

What you get

  • Comment or review text, author name, and handle
  • Like counts and timestamps when available
  • Cursor pagination via nextCursor + hasMore
  • Use the matching Comment Replies endpoint when you need nested replies

Try it

Open in Playground

Fill in the parameters below and copy a ready-to-run request, or open the live Playground to run it against your account (no API key paste).

Parameters

Sign in to run live
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_..."

Edit the parameters and the code updates instantly. Switch languages and hit copy.

Example response

{
  "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 is returned in response headers: X-Captapi-Credits (credits charged), X-Captapi-Cache (hit or miss), and X-Captapi-Source. Failed requests (4xx/5xx) are never charged. See the full list of error codes in the error reference.

Response structure

A successful call returns success and a data object with the following fields:

Top-level fields

  • platformPlatform identifier for this response (matches the endpoint's platform).
  • urlCanonical URL of the item.
  • totalReturnedComments in this response.

Comments

Each item in comments contains:

  • idId of this comments item.
  • urlCanonical URL of the item.
  • textText content.
  • authorAuthor name or handle.
  • authorAvatarUrlProfile picture URL of the person who wrote the comment.
  • authorIsVerifiedWhether the author is verified.
  • publishedAtPublish date (ISO 8601) when the platform exposes an absolute timestamp.

Parameters

NameTypeRequiredDescription
urlstringYesInstagram 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.
limitintegerNoMax items to return (default 50, max 500). Billed per result.
cursorstringNoPagination cursor from the previous nextCursor ({mediaPk}:{minId}). Omit on the first page. hasMore is true only when nextCursor is present.
cachebooleanNoSet true to serve from the 24h response cache (0 credits on hit). Default false — always fetch fresh.

Authentication: send your key as Authorization: Bearer capt_live_.... A typical call costs ~45 credits (0.9/result) — billed per result, so the exact amount scales with how many items you request. Pass cache=true for a free 24h cache hit; default is always fresh (metrics refresh within ~1 hour).

Using an AI agent? This endpoint is the MCP tool instagram_comments via @captapi/mcp. Set it up →

How it works

  1. 1. Sign up — get 100 free credits, no card required.
  2. 2. Create a key from your dashboard.
  3. 3. Send one request to /v1/instagram/comments and parse the JSON response.

Use cases

Sentiment Analysis

Understand how audiences react to content.

Community Insights

Surface FAQs, requests, and recurring themes.

Moderation

Detect spam, abuse, or policy violations at scale.

Market Research

Mine genuine opinions and product feedback.

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?+

Logged-out Instagram only embeds ~2 preview comments on the media payload. totalAvailable is the thread size; truncatedReason=logged_out_preview means we could not page further. A working session returns nextCursor and hasMore=true. hasMore is never true without a cursor.

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.

More Instagram APIs

Ready to use the Instagram Post Comments API?

Sign up, grab your key, and make your first call in 60 seconds.

Instagram Post Comments API | Captapi — Captapi