Indie Hackers User API and MCP — member bio, products and activity
Send a username such as uptownhr, or the member's profile link. You get the profile as one record: name, bio, avatar, the products attached to the profile with their revenue, and recent activity.
- You send
- a username or Indie Hackers profile URL
- You get back
- One Indie Hackers member profile: name, bio, products with revenue and the latest activity.
- Coverage
- Indie Hackers records with a public page.
- Price
- 5 pts — $5 per 1,000
- Charged only when the record resolves. A request that finds nothing is not billed.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Indie Hackers directly | Open the page on Indie Hackers and read it | Free, and slow | Fine for one record, useless across a list, and the layout differs on every platform |
| Building a scraper | Write it, host it, and repair it when Indie Hackers changes its pages | Engineering time | A maintenance commitment for something that isn't your product |
| NeuralVerge | One request, the same shape as every other source in the catalog | $5 per 1,000, misses not billed | Returns what Indie Hackers publishes at request time. Other platforms are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
user.id | string | Username, used as the profile id. |
user.alias | string | Username. |
user.name | string | Display name. |
user.url | string | Link to the profile. |
user.description | string | Bio text. |
user.image | string | Avatar link. |
user.products_count | number | Number of products on the profile. |
user.products | array | The member's products with revenue. Empty in the sample. |
user.activity_count | number | Number of recent activity items. |
user.recent_activity | array | Recent activity items. Empty in the sample. |
user.history_url | null | Link to the member's history page. Null in the sample. |
blocked | boolean | True if the platform refused the request; false when data came back. |
pages_opened | number | How many pages were read for this record. |
proxy_traffic_bytes | number | Data transferred for the request, in bytes. Informational. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "indiehackers_users",
"user": "uptownhr",
"user_id": "uptownhr",
"human": "# Indie Hackers — user\n\n- **Id:** uptownhr\n- **Pages opened:** 1\n- **Proxy traffic:** 25.2 KB\n- **Name:** James Lee\n- **Bio:** Currently, a software engineer at Bambee working on HR Tech. I'm also building a CLI app called Spacedtime.\n- **Products:** 0\n- **Recent activity:** 0",
"machine": {
"user": {
"id": "uptownhr",
"alias": "uptownhr",
"name": "James Lee",
"url": "https://www.indiehackers.com/uptownhr",
"description": "Currently, a software engineer at Bambee working on HR Tech. I'm also building a CLI app called Spacedtime.",
"image": "https://storage.googleapis.com/indie-hackers.appspot.com/avatars/300x300_vtnR4We3JqfCnLJHGqexnFmqvMf2.webp",
"products_count": 0,
"products": [],
"activity_count": 0,
"recent_activity": [],
"history_url": null
},
"blocked": false,
"pages_opened": 1,
"proxy_traffic_bytes": 25833
},
"total_points": 5
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
One record per request. Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged.
curl -X POST https://api.neuralverge.ai/functions/v1/run-indiehackers-users \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"user":"uptownhr"}'What teams use it for
Where this field shows up in an actual workflow.
Look up a founder listed on a product page and read their bio and other products.
See what a member has built and how active they are.
Resolve a username from a post into the profile it belongs to.
Add a bio and product list to usernames you already hold.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Indie Hackers records with a public page.
Read at request time, so the answer reflects the platform as it stands when you ask.
This source returns information Indie Hackers shows publicly. Every response carries the session id you can trace.
- —This source returns a personal profile of an individual member. Use it for context on a public post or product, not to build dossiers on people.
- —products and recent_activity can be empty, as in the sample; fields depend on what the member has published.
- —Bios are free text written by the member and are returned as written.
Questions, answered
The username, for example uptownhr, or the link to the member's Indie Hackers profile.
Related sources
Try indie hackers user on your own data
One request format across every source in the catalog.