nvNeuralVerge
Startup & Funding Data

Indie Hackers Post Comments API and MCP — threaded comments with upvotes

Send a post slug or its Indie Hackers link and a max_items limit. You get the comments on that post as a list, each with its text, author, upvotes, date and its place in the thread: depth and the id of the parent comment.

You send
a post slug or URL, and max_items
You get back
The comments on one Indie Hackers post, threaded: text, author, upvotes, date, depth and parent id.
Coverage
Indie Hackers records with a public page.
Price
1 point per returned record — $1 per 1,000
Billed per record actually returned, capped by max_items. A request that returns nothing costs nothing.
Comparison

Ways to get this data

Three approaches teams use today, and where each one runs into trouble.

ApproachWhat it takesCostTrade-off
Indie Hackers directlyOpen the page on Indie Hackers and scroll through the listFree, and slowFine for one record, useless across a list, and the layout differs on every platform
Building a scraperWrite it, host it, and repair it when Indie Hackers changes its pagesEngineering timeA maintenance commitment for something that isn't your product
NeuralVergeOne request, the same shape as every other source in the catalog$1 per 1,000, misses not billedReturns what Indie Hackers publishes at request time. Other platforms are separate sources with the same request format
Response

What you get back

Every field in the example response below.

FieldTypeDescription
total_itemsnumberHow many records are in this response.
first_item.idstringComment id.
first_item.namestringDisplay name of the commenter.
first_item.urlstringLink to the comment on the post.
first_item.poststringSlug of the post the comment belongs to.
first_item.textstringComment text.
first_item.author_namestringCommenter display name.
first_item.author_usernamestringCommenter username.
first_item.author_urlstringLink to the commenter's Indie Hackers profile.
first_item.upvotesnumberUpvotes on the comment.
first_item.created_atstringComment date, YYYY-MM-DD.
first_item.created_at_textstringRelative time as shown on the page, such as "28 minutes ago".
first_item.depthnumberNesting level in the thread. 1 is a top-level comment.
first_item.parent_idstring or nullId of the comment being replied to. Null for top-level comments.
itemsarrayEvery returned record, in the same shape as first_item.
total_foundnumber or nullTotal matches the platform reports. Null when it does not report one.
page_countnumberHow many result pages were read to build the response.
blockedbooleanTrue if the platform refused the request; false when data came back.
proxy_traffic_bytesnumberData transferred for the request, in bytes. Informational.
Response

Example response

A real response, as returned.

{
  "session_id": "11111111-1111-1111-1111-111111111111",
  "kind": "indiehackers_posts_comments",
  "post": "3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a",
  "max_items": 2,
  "start_page": 1,
  "partial": false,
  "human": "# Indie Hackers — post comments\n\n- **Post:** 3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a\n- **Results:** 2 of 143 found\n- **Proxy traffic:** 255.4 KB",
  "machine": {
    "total_items": 2,
    "first_item": {
      "id": "-P3VlwdnpNoCEy-Ntvpf",
      "name": "GregoryScottHenson",
      "url": "https://www.indiehackers.com/post/3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a?commentId=-P3VlwdnpNoCEy-Ntvpf",
      "post": "3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a",
      "text": "Three products at $0 usually means the buyer was picked after the build. Narrowing SocialPost.ai to founders who sell on LinkedIn with no marketing hire is what made distribution tractable for us, bec",
      "author_name": "GregoryScottHenson",
      "author_username": "GregoryScottHenson",
      "author_url": "https://www.indiehackers.com/GregoryScottHenson",
      "upvotes": 1,
      "created_at": "2026-10-09",
      "created_at_text": "28 minutes ago",
      "depth": 1,
      "parent_id": null
    },
    "items": [
      {
        "id": "-P3VlwdnpNoCEy-Ntvpf",
        "name": "GregoryScottHenson",
        "url": "https://www.indiehackers.com/post/3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a?commentId=-P3VlwdnpNoCEy-Ntvpf",
        "post": "3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a",
        "text": "Three products at $0 usually means the buyer was picked after the build. Narrowing SocialPost.ai to founders who sell on LinkedIn with no marketing hire is what made distribution tractable for us, bec",
        "author_name": "GregoryScottHenson",
        "author_username": "GregoryScottHenson",
        "author_url": "https://www.indiehackers.com/GregoryScottHenson",
        "upvotes": 1,
        "created_at": "2026-10-09",
        "created_at_text": "28 minutes ago",
        "depth": 1,
        "parent_id": null
      },
      {
        "id": "-P3VeS9zPPhBlod_6zev",
        "name": "ebs24",
        "url": "https://www.indiehackers.com/post/3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a?commentId=-P3VeS9zPPhBlod_6zev",
        "post": "3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a",
        "text": "Had the same realization this week. Two months of building, and today I noticed I'd never checked whether anyone would actually pay. What I'm trying now: before any new code, I do my user's job by han",
        "author_name": "ebs24",
        "author_username": "ebs24",
        "author_url": "https://www.indiehackers.com/ebs24",
        "upvotes": 1,
        "created_at": "2026-10-09",
        "created_at_text": "an hour ago",
        "depth": 1,
        "parent_id": null
      }
    ],
    "total_found": 143,
    "page_count": 1,
    "blocked": false,
    "proxy_traffic_bytes": 261501
  },
  "total_points": 2
}
Integration

How to run it

The same lookup works from the app, the API, or as a tool an agent can call mid-task.

Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged. max_items caps how many records are returned and billed.

curl -X POST https://api.neuralverge.ai/functions/v1/run-indiehackers-posts-comments \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"post":"3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a","max_items":2}'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Reading feedback on a launch

Pull the comments on a product or milestone post and see what other founders said.

Sentiment and objection review

Collect comment text across posts about a topic to see which questions and objections come up.

Following a thread

Use depth and parent_id to rebuild who replied to whom.

Archiving a discussion

Save the comments of a post next to its text before it is edited or buried.

Coverage & limits

Coverage, freshness and limits

What this source covers, how fresh it is, and where it stops.

Coverage

Indie Hackers records with a public page.

Freshness

Read at request time, so the answer reflects the platform as it stands when you ask.

Handling

This source returns information Indie Hackers shows publicly. Every response carries the session id you can trace.

What it will not do
  • —Comments carry author names, usernames and profile links of individual members. Use them for the discussion, not to profile people.
  • —created_at is a date only; created_at_text is the relative time shown at request time, so it changes between runs.
  • —Comments are returned 50 per page. Use start_page and max_items (up to 250) to read a long thread.
FAQ

Questions, answered

The slug from the post address, such as 3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a, or the full Indie Hackers link.

Related

Related sources

Try indie hackers post comments on your own data

One request format across every source in the catalog.

Get started