nvNeuralVerge
Startup & Funding Data

Indie Hackers Posts Search API and MCP — top and newest posts with upvotes

Choose a feed: top posts for a week, a month or all time, or the newest posts. For a week or month you can pass a date inside that period. Set max_items to say how many you want. You get back each post's title, link, author, upvotes, comment count and rank.

You send
a sort (top or newest), a period and date for top posts, and max_items
You get back
Indie Hackers posts from the top-of-week, top-of-month, all-time or newest feed, with author, upvotes and comment counts.
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 directlyType the query into Indie Hackers and read the resultsFree, 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.idstringShort post id.
first_item.namestringPost title.
first_item.urlstringLink to the post.
first_item.aliasstringPost slug. Pass it to Indie Hackers post or post comments.
first_item.titlestringPost title.
first_item.summarynullShort summary. Null in the sample.
first_item.author.usernamestringAuthor username.
first_item.author.namestringAuthor display name.
first_item.author.urlstringLink to the author's profile.
first_item.upvotesnumberUpvotes on the post.
first_item.comment_countnumberNumber of comments.
first_item.ranknumberPosition in the feed, starting at 1.
first_item.product_slugnullSlug of the linked product. Null in the sample.
first_item.imagenullPost image. Null in the sample.
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_search",
  "max_items": 2,
  "start_page": 1,
  "partial": false,
  "human": "# Indie Hackers — posts search\n\n- **Query:** all\n- **Results:** 2\n- **Proxy traffic:** 68.9 KB",
  "machine": {
    "total_items": 2,
    "first_item": {
      "id": "6509e1a76a",
      "name": "3 products. $0 revenue. I think I finally understand the problem.",
      "url": "https://www.indiehackers.com/post/3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a",
      "alias": "3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a",
      "title": "3 products. $0 revenue. I think I finally understand the problem.",
      "summary": null,
      "author": {
        "username": "bhavyshekhaliya",
        "name": "bhavyshekhaliya",
        "url": "https://www.indiehackers.com/bhavyshekhaliya"
      },
      "upvotes": 49,
      "comment_count": 149,
      "rank": 1,
      "product_slug": null,
      "image": null
    },
    "items": [
      {
        "id": "6509e1a76a",
        "name": "3 products. $0 revenue. I think I finally understand the problem.",
        "url": "https://www.indiehackers.com/post/3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a",
        "alias": "3-products-0-revenue-i-think-i-finally-understand-the-problem-6509e1a76a",
        "title": "3 products. $0 revenue. I think I finally understand the problem.",
        "summary": null,
        "author": {
          "username": "bhavyshekhaliya",
          "name": "bhavyshekhaliya",
          "url": "https://www.indiehackers.com/bhavyshekhaliya"
        },
        "upvotes": 49,
        "comment_count": 149,
        "rank": 1,
        "product_slug": null,
        "image": null
      },
      {
        "id": "7cc69370fe",
        "name": "I moved my SaaS \"upstream\" because agency margin is lost before the project even starts",
        "url": "https://www.indiehackers.com/post/i-moved-my-saas-upstream-because-agency-margin-is-lost-before-the-project-even-starts-7cc69370fe",
        "alias": "i-moved-my-saas-upstream-because-agency-margin-is-lost-before-the-project-even-starts-7cc69370fe",
        "title": "I moved my SaaS \"upstream\" because agency margin is lost before the project even starts",
        "summary": null,
        "author": {
          "username": "alokbhalke",
          "name": "alokbhalke",
          "url": "https://www.indiehackers.com/alokbhalke"
        },
        "upvotes": 37,
        "comment_count": 122,
        "rank": 2,
        "product_slug": null,
        "image": null
      }
    ],
    "total_found": null,
    "page_count": 1,
    "blocked": false,
    "proxy_traffic_bytes": 70522
  },
  "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-search \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"max_items":2}'
Use cases

What teams use it for

Where this field shows up in an actual workflow.

Weekly trend scans

Pull the top posts of a week to see what founders are discussing.

Tracking the newest posts

Run the newest feed on a schedule to catch fresh launches and questions.

Finding posts to read in full

Take the alias of a promising post and pass it to the post and comments sources.

Engagement benchmarks

Compare upvotes and comment_count across periods.

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
  • —max_items is limited to 20 per request for this feed.
  • —total_found is null in the sample, so the platform does not report a total here.
  • —Results include author names and profile links of individual members. Use them as post attribution only.
FAQ

Questions, answered

Top posts for a week, month or all time (sort top with a period), or the newest posts (sort newest).

Related

Related sources

Try indie hackers post search on your own data

One request format across every source in the catalog.

Get started