
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
3 monthly users

Scrape Hacker News stories, comments, front-page lists and user profiles. Full-archive search with points, comments, date and author filters, complete comment trees, live rankings. No login needed.
Export Hacker News stories, comments, front-page rankings and user profiles to JSON, CSV or Excel. Search the full HN archive with points, comments, date and author filters, pull whole comment threads with depth and parent links, or snapshot the live front page. No login, no browser, a few seconds per run, and $0.15 per 1,000 results.
depth, parentId and the story it belongs to, ready for sentiment analysis or LLM pipelines.| Field | What it does |
|---|---|
searchQueries | Full-text search over all stories and comments |
storyLists | top, new, best, ask, show, job |
startUrls | Item, user, list or hn.algolia.com search URLs (bare item ids work too) |
usernames | HN usernames: profile plus recent submissions |
maxResults | Max stories or comments per input (0 = all available) |
contentTypes | story, comment, ask_hn, show_hn, job, poll, front_page |
sortBy | relevance or date (newest first) |
author, minPoints, maxPoints, minComments, maxComments, dateFrom, dateTo | Filters |
includeComments, maxCommentsPerItem, maxCommentDepth | Comment trees (item URLs always include theirs, capped by maxCommentsPerItem) |
userContent | none, stories, comments or all for usernames |
{
"searchQueries": ["sqlite", "postgres"],
"storyLists": ["top"],
"startUrls": ["https://news.ycombinator.com/item?id=8863"],
"maxResults": 50,
"contentTypes": ["story"],
"sortBy": "date",
"minPoints": 100,
"dateFrom": "30 days",
"includeComments": true,
"maxCommentsPerItem": 100
}
Each row has a recordType: item (a story, job, poll or comment matched by your input), comment (a reply from a comment tree) or user.
| Field | Description |
|---|---|
id, type, title, url, domain | The post and where it links |
author, points, numComments | Author and engagement |
createdAt, createdAtUnix | Creation time (UTC) |
text, textHtml | Post or comment text, plain and original HTML |
storyId, storyTitle, storyUrl, parentId, depth | Thread structure |
rank, tags, hnUrl, source, scrapedAt | Position, HN tags, HN link, which input produced it |
username, karma, about, submittedCount | User rows |
Example (sample values):
[
{
"recordType": "item",
"id": 41234567,
"type": "story",
"title": "Show HN: A tiny SQLite-backed job queue",
"url": "https://example.com/blog/tiny-queue",
"domain": "example.com",
"author": "sample_dev",
"points": 312,
"numComments": 87,
"createdAt": "2025-08-14T15:02:11Z",
"createdAtUnix": 1755183731,
"text": null,
"textHtml": null,
"storyId": 41234567,
"storyTitle": "Show HN: A tiny SQLite-backed job queue",
"storyUrl": "https://example.com/blog/tiny-queue",
"parentId": null,
"depth": null,
"rank": 1,
"tags": ["story", "show_hn"],
"hnUrl": "https://news.ycombinator.com/item?id=41234567",
"source": "search:sqlite",
"scrapedAt": "2026-10-14T18:50:24Z"
},
{
"recordType": "comment",
"id": 41234890,
"type": "comment",
"author": "another_hacker",
"createdAt": "2025-08-14T15:40:02Z",
"text": "We run something similar in production. WAL mode made a big difference.",
"storyId": 41234567,
"storyTitle": "Show HN: A tiny SQLite-backed job queue",
"parentId": 41234567,
"depth": 1,
"hnUrl": "https://news.ycombinator.com/item?id=41234890",
"source": "search:sqlite"
}
]
You pay $0.15 per 1,000 results ($0.00015 per row): every story, comment and user profile row counts as one result. 1,000 results ≈ $0.15 in result fees, plus well under a cent of platform usage for compute and data traffic (billed separately; a 10,000-result run used about $0.006 in our tests). Set a maximum charge on the run and the actor stops cleanly when it is reached.
Is it legal to scrape Hacker News? The actor only reads public data through Hacker News' official public APIs. Check the terms that apply to your use and handle personal data responsibly.
Do I need a login or my own proxy? No. No account and no proxy are needed. The run connects directly to the public Hacker News APIs and switches to datacenter proxies on its own if it gets rate-limited.
How many results can I get? Front-page lists hold up to 500 stories each. Relevance search returns up to 1,000 results per query; with Sort by date you can page through the whole archive (tens of thousands of results).
Why are some fields empty?
Hacker News leaves them empty: link posts have no text, Ask HN posts have no url, comments have no points (HN hides them), and deleted comments are skipped.
Can I schedule it or use the API?
Yes. Schedule runs to monitor keywords (sort by date with a dateFrom like 1 day), and start runs or download datasets through the API.
points is empty for comments.front_page in Content types only matches stories that are on the front page right now; use the top list for the live ranking.Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch queries
Keywords to search across all Hacker News stories and comments (full-text search). Each query returns up to Max results.
storyListsarrayOptionalFront-page lists
Live Hacker News rankings: top (front page), new, best, ask, show and job. Up to 500 stories per list.
startUrlsarrayOptionalHacker News URLs
Item URLs (news.ycombinator.com/item?id=...) to get a story or comment with its comment tree, user URLs (user?id=...), list pages (/news, /newest, /ask, /show, /jobs, /best) or hn.algolia.com search URLs. Bare item ids work too.
usernamesarrayOptionalUsernames
Hacker News usernames. Each returns the profile (karma, about, account age) plus recent submissions as chosen under User submissions.
maxResultsintegerOptionaldefault 20Max results per input
Maximum stories or comments per search query, list or user (comments under stories are counted separately). 0 = all available. Relevance search stops at 1,000 per query; sort by date for more.
Narrow search results, lists and user submissions. Item URLs you paste directly are not filtered.
contentTypesarrayOptionalContent types
Only return these kinds of posts. Leave empty for everything. 'Currently on front page' only matches stories on the front page right now.
sortByenumOptionaldefault "relevance"Sort search results by
Relevance ranks by match quality and popularity. Date returns the newest first and can go beyond 1,000 results.
authorstringOptionalAuthor
Only posts by this Hacker News username.
minPointsintegerOptionalMinimum points
Only stories with at least this many upvotes.
maxPointsintegerOptionalMaximum points
Only stories with at most this many upvotes.
minCommentsintegerOptionalMinimum comments
Only stories with at least this many comments.
maxCommentsintegerOptionalMaximum comments
Only stories with at most this many comments.
dateFromstringOptionalDate from
Only posts created on or after this date (YYYY-MM-DD) or within a period like '7 days'.
dateTostringOptionalDate to
Only posts created on or before this date (YYYY-MM-DD).
includeCommentsbooleanOptionaldefault falseInclude comments
Add the comment tree of every story from searches, lists and usernames as extra rows (recordType 'comment', with depth and parent). Item URLs always return their comment tree, capped by the max comments per item.
maxCommentsPerItemintegerOptionaldefault 50Max comments per story
Cap on comments per story or item. 0 = the whole thread.
maxCommentDepthintegerOptionaldefault 0Max comment depth
1 = direct replies only, 2 = replies to replies, ... 0 = any depth.
userContentenumOptionaldefault "stories"User submissions
What to return for each username besides the profile (newest first, up to Max results).
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":false}Proxy configuration
Not needed: the Hacker News APIs are public and answer directly (fastest). If they rate-limit the run, it switches to datacenter proxies automatically. Turn a proxy on only to force all traffic through it.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| recordType | string | null | item, comment (thread reply) or user |
| id | integer | string | Hacker News id (username for users) |
| type | string | null | story, comment, job, poll or user |
| title | string | null | Story title |
| url | string | null | Linked URL |
| domain | string | null | Domain of the linked URL |
| author | string | null | Author username |
| points | integer | null | Upvotes |
| numComments | integer | null | Number of comments |
| createdAt | string | null | Created at (ISO 8601, UTC) |
| createdAtUnix | integer | null | Created at (unix seconds) |
| text | string | null | Plain text of the post or comment |
| textHtml | string | null | Original HTML of the post or comment |
| storyId | integer | null | Story the item belongs to |
| storyTitle | string | null | Title of that story |
| storyUrl | string | null | URL of that story |
| parentId | integer | null | Parent item id |
| depth | integer | null | Comment depth (1 = direct reply) |
| rank | integer | null | Position in the list or search |
| tags | array | story, comment, ask_hn, show_hn, front_page ... |
| hnUrl | string | null | Hacker News page |
| source | string | null | Input that produced the row |
| karma | integer | null | User karma |
| about | string | null | User about text |
| submittedCount | integer | null | Number of user submissions |
| scrapedAt | string | null | When the row was saved |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One Hacker News story, comment or user profile saved to the dataset. | $0.00015 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('querystone/hacker-news-scraper').call({
"searchQueries": [
"artificial intelligence"
],
"storyLists": [
"top"
],
"maxResults": 20,
"proxyConfiguration": {
"useScrapelyProxy": false
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run querystone/hacker-news-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=querystone/hacker-news-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Search Hacker News stories by keyword.
Popular stories sorted by date.
The live list of new stories.
A story and its comment tree from an item link.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.