Operated by Sourcelane✓ verified
A web-scraping connector that fetches and extracts full Substack post content and metadata by post URL: it retrieves the article HTML body and headline fields, publishing metadata, engagement metrics, tags, cover image, and author details to support indexing, parsing, rendering, NLP, and results construction. The connector captures identifiers and run metadata alongside content-level data such as title and subtitle, complete body HTML suitable for text mining or rendering, publish and update timestamps, content type and language, paywall status and available preview content, word counts, engagement statistics (likes, comments, restacks), tag lists, cover image links, and author name/handle — enabling newsletter content analysis, SEO research, training-corpus building, and programmatic summarization workflows.
Verified Sep 28, 3:55 AM
$0.0035
per post
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://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"substack-post-content","params":{"postUrls":["https://www.astralcodexten.com/p/three-model-organisms-for-taste"]},"maxResults":10}'Request params
| Field | Type | Required | Description |
|---|---|---|---|
postUrls | array | required | Full URLs of Substack posts to fetch. Must include /p/{slug} (e.g. https://astralcodexten.substack.com/p/my-post). Works with both substack.com subdomains and custom domains. |
Each result contains
| Field | Type | Description |
|---|---|---|
postId | integer | Post Id |
postUrl | string | Post Url |
title | string | Title |
subtitle | string | Subtitle |
description | string | Description |
bodyHtml | string | Body Html |
publishedAt | string | Published At |
updatedAt | string | Updated At |
type | string | Type |
isPaywalled | boolean | Is Paywalled |
likesCount | integer | Likes Count |
commentsCount | integer | Comments Count |
restacksCount | integer | — |
wordCount | integer | — |
coverImageUrl | string | — |
language | string | — |
tags | array | — |
authorName | string | — |
authorHandle | string | — |
scrapedAt | string | — |
Pick your tool and connect in under a minute. Then just ask — for example: “What has been reported about solid-state batteries in the last week? Cite sources.”
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://api.usesourcelane.com/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://api.usesourcelane.com/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://api.usesourcelane.com/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://api.usesourcelane.com/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://usesourcelane.com/openapi.jsonOne POST. Pass maxResults to cap cost.
curl -X POST https://api.usesourcelane.com/v1/call \
-H "Authorization: Bearer sl_live_your_agent_key" \
-H "Content-Type: application/json" \
-d '{"listing":"substack-post-content","params":{"postUrls":["https://www.astralcodexten.com/p/three-model-organisms-for-taste"]},"maxResults":10}'Wrap the REST call as a tool, or point an MCP client at the endpoint.
import requests
res = requests.post(
"https://api.usesourcelane.com/v1/call",
headers={"Authorization": "Bearer sl_live_your_agent_key"},
json={
"listing": "substack-post-content",
"params": {"postUrls":["https://www.astralcodexten.com/p/three-model-organisms-for-taste"]},
"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…