Hacker News Scraper — Submissions, Jobs, Users & Comments avatar

Hacker News Scraper — Submissions, Jobs, Users & Comments

Pricing

from $0.50 / 1,000 items

Go to Apify Store
Hacker News Scraper — Submissions, Jobs, Users & Comments

Hacker News Scraper — Submissions, Jobs, Users & Comments

Scrape Hacker News top/new/best/ask/show/job/user submissions. Returns title, author, score, comments, URL, and full text. No login required. Pay-per-result.

Pricing

from $0.50 / 1,000 items

Rating

0.0

(0)

Developer

Alessandro Santamaria

Alessandro Santamaria

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Categories

Share

Hacker News Scraper

Extract stories, jobs, comments, and user activity from Hacker News using the official HN Firebase API. No login required. Pay-per-result.

Use with AI Agents (MCP)

https://mcp.apify.com?tools=santamaria-automations/ycombinator-scraper

Example prompts:

"Get the top 50 Hacker News stories right now."

"Get all job postings from user whoishiring with comments."

"Get the comments from HN thread 47601859."

What You Can Scrape

1. Story Feeds

Scrape any HN feed — the same tabs you see on the website.

storyTypeHN PageWhat It Returns
top/newsFront page stories (ranked by score)
new/newestMost recent submissions
best/bestHighest-scored stories of all time
ask/askAsk HN discussions
show/showShow HN project launches
job/jobsYC startup job listings
{ "storyType": "top", "maxResults": 30 }

2. Thread Comments

Extract top-level comments from any HN thread by its ID. Works for any story, Ask HN discussion, or monthly "Who is Hiring?" megathread.

{ "storyIds": [47601859], "includeComments": true, "maxCommentsPerStory": 100 }

Find the thread ID in the URL: news.ycombinator.com/item?id=47601859

You can pass multiple thread IDs to scrape several threads at once.

3. User Activity

Scrape all submissions and comments from any HN user. Covers both /submitted and /threads pages.

{ "usernames": ["whoishiring"], "maxResults": 50 }

Tip: To get "Who is Hiring?" job postings, scrape the whoishiring user's submissions — these are the monthly hiring megathreads. Then use their thread IDs with includeComments to get the individual job posts.

Input

FieldTypeDescriptionDefault
storyTypestringFeed to scrape: top, new, best, ask, show, jobtop
storyIdsinteger[]Specific thread IDs to scrape
usernamesstring[]HN usernames — scrape all their submissions & comments
includeCommentsbooleanAlso extract comments for each storyfalse
commentDepthintegerReply depth: 1 = top-level, 2 = + replies, 3 = + replies to replies. Max 5.1
maxResultsintegerMaximum stories/items to return100
maxCommentsPerStoryintegerMaximum comments (all depths combined) per story100
proxyConfigurationobjectApify proxy settingsAuto

Priority: usernames > storyIds > storyType. If multiple are set, the first takes precedence.

Output

Flat table with stories and comments in the same dataset. Filter by type to separate them.

FieldTypeDescription
idintegerHN item ID
typestringstory or comment
titlestringStory title, or first line of comment (company/role for job posts)
authorstringHN username
urlstringExternal link (stories only)
textstringFull text/HTML content
scoreintegerPoints (stories only)
num_commentsintegerComment count (stories only)
thread_idintegerParent story ID (comments only)
thread_titlestringParent story title (comments only)
hn_urlstringDirect link to item on HN
posted_atstringISO timestamp
scraped_atstringISO timestamp

Examples

Today's front page

{ "storyType": "top", "maxResults": 30 }

YC startup jobs

{ "storyType": "job", "maxResults": 50 }

"Who is Hiring?" job postings

{ "storyIds": [47601859], "includeComments": true, "maxCommentsPerStory": 500 }

Thread ID 47601859 = April 2026. Find the latest at whoishiring's submissions.

Ask HN discussions with answers

{ "storyType": "ask", "maxResults": 10, "includeComments": true, "maxCommentsPerStory": 20 }

All activity from a user

{ "usernames": ["pg"], "maxResults": 100 }

Multiple threads at once

{ "storyIds": [47601859, 47219668], "includeComments": true, "maxCommentsPerStory": 100 }

Pricing

EventPriceDescription
Actor start$0.001One-time fee per run
Item result$0.50 / 1,000Per story or comment returned

Examples:

  • 30 front page stories → $0.016
  • 500 "Who is Hiring" job posts → $0.251
  • 10 stories + 200 comments → $0.106

No monthly fees. No minimum spend.

FAQ

Do I need an API key? No. Uses the public HN Firebase API — no authentication required.

What's the difference between /jobs and "Who is Hiring"? storyType: "job" returns YC-backed startup listings from the /jobs page. "Who is Hiring?" threads are open community job posts from any company (400–1,000 per month). Use usernames: ["whoishiring"] to find the threads, then storyIds + includeComments to get the posts.

How fast is it? ~10 items/second. 50 stories + 50 comments each = ~800 items in 80 seconds.

Can I get nested/threaded comments? Yes. Set commentDepth: 2 for direct replies, 3 for replies to replies, up to 5 levels deep. All comments are in a flat table with parent_id linking them — reconstruct the tree if needed.


Report issues · Reddit Scraper · Telegram Scraper