Operated by Sourcelane✓ verified
Search-focused scraper for Hacker News that performs keyword- and attribute-based queries across stories, comments, Show HN, Ask HN, polls, jobs and front-page items. It supports filtering by author, date range, minimum points and minimum comment counts, and offers relevance or date sorting. Technically, the connector queries HN search, handles pagination with a resumable cursor, and returns structured records containing identifiers and content type, titles and target URLs, author metadata, engagement metrics (points and comment counts), full post or comment text, parent-thread linkage for comments (parent story identifiers, titles and URLs) for thread reconstruction, created timestamps (ISO and Unix), HN permalinks, and tag lists. Outputs are suitable for building searchable corpora or analytic results focused on full text and engagement signals.
Verified Sep 28, 12:10 AM
$0.001
per item
Up to 100 per call. Only pay for results returned; failed calls are refunded.
| Window | Uptime | Success rate | p50 | p95 | Calls |
|---|---|---|---|---|---|
| 24h | — | — | — | — | 0 |
| 7d | — | — | — | — | 0 |
| 30d | — | — | — | — | 0 |
Call it through Sourcelane's gateway or MCP server. We run the connector, apply your agent's spend guardrails, and bill only the results returned.
Call it via Sourcelane
curl -X POST https://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"hn-search-scraper","params":{"query":"openai","maxItems":5},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
query | string | optional | Keyword(s) to search across titles, URLs, story text, and comment text. Leave empty to fetch the most recent items in the chosen tag. |
tag | string | optional | Restrict results to a single item type. 'Front Page Stories' = stories that have appeared on the HN front page. |
author | string | optional | Optional. HN username to restrict results to (case-sensitive). Leave empty to search all authors. |
sortBy | string | optional | Relevance favors highly-upvoted matches; Date returns the most recent items first. |
dateAfter | string | optional | Optional. Only return items created on or after this UTC date. |
dateBefore | string | optional | Optional. Only return items created on or before this UTC date. |
minPoints | integer | optional | Only return stories with at least this many points. Ignored for comments. |
minComments | integer | optional | Only return stories with at least this many comments. Ignored for comments. |
maxItems | integer | optional | Maximum results to return. 0 = no cap. Algolia caps relevance results at ~1000; date sort can return more. Capped at 100 per call. |
pageId | string | optional | Optional. Paste the NEXT_PAGE_ID from a previous run's Key-value store to resume from where you left off. |
Each result contains
| Field | Type | Description |
|---|---|---|
objectID | string | Object ID |
type | string | Type |
title | string | Title |
url | string | Url |
author | string | Author |
points | integer | Points |
numComments | integer | Num Comments |
storyText | null | Story Text |
commentText | null | Comment Text |
storyId | integer | Story Id |
storyTitle | null | Story Title |
storyUrl | null | Story Url |
parentId | null | — |
createdAt | string | — |
createdAtUnix | integer | — |
hnUrl | string | — |
tags | array | — |
Pick your tool and connect in under a minute. Then just ask — for example: “For these 50 domains, find contact emails and what e-commerce platform they run on.”
Connect Claude
Web, desktop and mobile. Paste one URL.
Adds the Sourcelane MCP server with your key as a header.
claude mcp add --transport http sourcelane https://cool-puffin-608.convex.site/mcp \
--header "Authorization: Bearer sl_live_your_agent_key"Alternative to the connector URL: add to claude_desktop_config.json, then restart Claude.
{
"mcpServers": {
"sourcelane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://cool-puffin-608.convex.site/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer sl_live_your_agent_key"
}
}
}
}Add to ~/.cursor/mcp.json (or Windsurf's mcp_config.json).
{
"mcpServers": {
"sourcelane": {
"url": "https://cool-puffin-608.convex.site/mcp",
"headers": {
"Authorization": "Bearer sl_live_your_agent_key"
}
}
}
}Save as .vscode/mcp.json. VS Code prompts for your key once.
{
"servers": {
"sourcelane": {
"type": "http",
"url": "https://cool-puffin-608.convex.site/mcp",
"headers": {
"Authorization": "Bearer ${input:sourcelane-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "sourcelane-key",
"description": "Sourcelane agent key",
"password": true
}
]
}Create a GPT → Actions → Import from URL, then Authentication: API Key, Bearer.
https://sourcelane-amber.vercel.app/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://cool-puffin-608.convex.site/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"hn-search-scraper","params":{"query":"openai","maxItems":5},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://cool-puffin-608.convex.site/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "hn-search-scraper",
"params": {"query":"openai","maxItems":5},
"maxResults": 10,
},
timeout=300,
)
body = res.json()
print(body["receipt"]["chargedMicros"], "micro-USD for", body["receipt"]["results"], "results")
print(body["data"])—
0 reviews
Leave a review
Loading reviews…