Hacker News Scraper - Stories, Ask/Show HN, Comments
Pricing
$1.00 / 1,000 item returneds
Hacker News Scraper - Stories, Ask/Show HN, Comments
Hacker News hands its search off to Algolia. The box at the bottom of the page posts to hn.algolia.com, keyless and public, and that is what this reads. Stories, Show HN, Ask HN, comments or the live front page, with points, author, comment count and both links. $1.00 per 1,000.
Pricing
$1.00 / 1,000 item returneds
Rating
5.0
(1)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Hacker News Scraper
Hacker News hands its search off to Algolia. The box at the foot of every HN page posts straight to hn.algolia.com, and HN's own API is a Firebase read of items by id plus a few curated id lists with no search endpoint anywhere in it. So hn.algolia.com/api/v1 is where HN search actually lives. It is keyless and public, and it is what this actor reads, handing back flat JSON. Stories, Show HN, Ask HN, comments, or the current front page. No API key, nothing to sign up for.
What you get back
One row per item:
{"ok": true,"objectId": "44159823","type": "story","title": "Show HN: I rewrote my build system in Zig","url": "https://example.com/post","author": "someuser","points": 412,"numComments": 188,"createdAt": "2026-06-01T12:34:56.000Z","text": "","hnUrl": "https://news.ycombinator.com/item?id=44159823"}
type is one of story, show_hn, ask_hn, poll or comment. On a comment row, title and url are the parent story's, and text holds the comment body with the HTML stripped out. On a link story text is empty; on an Ask HN post it's the post body.
points and numComments are often null on comments — Algolia just doesn't carry them there. url is null for text posts that have no outbound link.
Input
{"query": "rust async","tags": "story","sortBy": "date","minPoints": 50,"maxItems": 200}
| Field | Default | Notes |
|---|---|---|
query | empty | Keywords. Leave it empty and you get the newest items for the chosen type. The Console prefills openai so the form runs out of the box; the API sends nothing unless you do. |
tags | story | story, show_hn, ask_hn, comment or front_page. |
sortBy | relevance | relevance or date (newest first). |
minPoints | — | Score floor. Applied as a numeric filter before you're billed for the row. |
maxItems | 50 | 1 to 1,000 per run. |
proxyConfiguration | off | The API is public and has no anti-bot. Leave it off unless you're running enough volume to hit an IP rate limit. |
Limits
- 1,000 items is the ceiling for a single run. Split a bigger job across queries or date ranges.
front_pageignores your query. It returns the roughly 30 items sitting on the HN front page right now, and nothing else.minPointsreally only bites on stories. Comments mostly don't carry a score.- Results are deduplicated on
objectIdwithin a run, so overlapping pages won't double-charge you. - If a run finds nothing, or the API errors out, you get one row with
ok: falseand anerrorCode(NO_RESULTS,RATE_LIMITED,NETWORK) instead of an empty dataset. That row is not billed.
Billing
$1.00 per 1,000 items, which is $0.001 each, with no run-start fee. Diagnostic rows cost nothing, so a query that matches nothing costs nothing at all.
You pay per row, so maxItems is your budget dial. The default of 50 is deliberately small.
Delivery
Everything lands in the run's dataset: JSON, CSV, Excel, XML, through the API or the Console. If you'd rather it went into Notion, set notionConnector and notionParentId and each item is written as a page when the run finishes. Authorize the connector once under Settings → API & Integrations → MCP connectors. Leave both empty to skip it; the dataset is written either way.
A few things it's good for
Mention tracking, first. Put your product name in query, set tags to comment, sort by date, and run it every few hours. HN threads move fast and you'd rather not hear about yours from a customer.
show_hn sorted by date gives you every new launch. If you want the monthly "Who is hiring" listings, note that those are comments rather than the post itself, so query hiring with tags set to comment. And front_page on a schedule is a daily digest that needs no query at all.