Subscriber numbers, contacts, full-text posts and rankings across 6m+ Substack, LinkedIn and Ghost newsletters. Search the database, monitor mentions in real time and feed your AI agents, all powered by the same data behind Reletter.
Search the full text of newsletter issues for any keyword, with a rolling threshold for near-realtime alerts on brands, people or topics.
Help users find newsletters to pitch their product, book or service to. Filter by topic, audience size, language and platform.
Build target lists for ad campaigns and PR outreach. Export contacts and rankings to power outbound workflows.
Augment your customer or prospect database with newsletter metadata, subscriber counts and verified contact emails.
Pull subscriber numbers, engagement, language, country and chart rankings across Substack and LinkedIn.
Feed newsletter metadata, contacts and full issue text into your own AI agent or RAG pipeline. Markdown docs at /llms.txt make integration trivial.
Three ways to wire the Reletter API into your AI workflow: a typed Python client and CLI, a remote MCP server, and Markdown docs for any LLM.
The official reletter Python client. Sync and async, typed, with auto-pagination. Includes a reletter CLI for shell scripts and AI coding agents.
pip install reletter
Remote Model Context Protocol server. Connect Claude, ChatGPT, Cursor, or any MCP client to https://mcp.reletter.com and authenticate with your Reletter API key.
All endpoints are JSON over HTTPS, served from https://api.reletter.com. Authenticate with your API key on every request:
curl -H "x-reletter-api-key: YOUR_API_KEY" \ https://api.reletter.com/api/accounts/quota/
/api/search/publications/Search the Reletter index for newsletters by topic, title or author. Supports filters for language, subscriber count, engagement, country, platform and more.
querystringSearch query.modestringOne of: topics, titles, authors. Default: topics.pageintegerPage number, default 1.per_pageintegerResults per page (max 100).filtersstringComma-separated filters, e.g. "active:is:true,engagement:gte:50,subscribers:gte:5000".{
"page": 1,
"per_page": 25,
"count": 124,
"more": true,
"spelling_suggestion": null,
"exact_matches": [],
"publications": [
{
"id": "doomberg",
"platform": "substack",
"url": "https://newsletter.doomberg.com",
"name": "Doomberg",
"description": "A lateral-thinking approach to energy, finance, and geopolitics.",
"founded": "2021-04-21T18:58:46Z",
"subscribers": 373000,
"engagement": 92,
"language": "en",
"issue_frequency": "twiceweekly",
"publishing_model": "freemium",
"num_issues": 496,
"active": true,
"sponsored": false
}
]
}/api/search/issues/Full-text search across the body and titles of every issue Reletter has indexed. Highlights matching terms when highlight=true.
querystringSearch query.highlightbooleanInclude highlighted snippets in the response.thresholdintegerOnly include issues newer than this many seconds ago.pageintegerPage number, default 1.per_pageintegerDefault 25, max 100.{
"page": 1,
"per_page": 25,
"count": 12,
"more": false,
"spelling_suggestion": null,
"issues": [
{
"id": "pdh-the-coal-paradox",
"title": "The Coal Paradox",
"contributors": [
"Doomberg"
],
"published": "2026-04-22T13:01:00Z",
"num_likes": 412,
"num_comments": 28,
"url": "https://newsletter.doomberg.com/p/the-coal-paradox",
"image_url": "https://substackcdn.com/image/...",
"type": "newsletter",
"substack_slug": "the-coal-paradox",
"substack_podcast_url": null,
"text": "... full body text ...",
"highlight": {
"title": null,
"text": [
"... rising <em>coal</em> demand ..."
]
},
"publication": {
"id": "doomberg",
"platform": "substack",
"name": "Doomberg"
}
}
]
}/api/search/autocomplete/Autocomplete suggestions for the start of a query. Suitable for type-ahead UIs.
querystringQuery prefix.modestringOne of: topics, titles, authors, issues.{
"suggestions": [],
"publications": [
{
"id": "doomberg",
"name": "Doomberg",
"platform": "substack"
},
{
"id": "noahpinion",
"name": "Noahpinion",
"platform": "substack"
}
]
}/api/publications/<publication_id>/Full metadata for a single publication: subscribers, engagement, social, contributors, rankings, latest issues.
publication_idstringReletter slug, e.g. "doomberg".{
"publication": {
"id": "doomberg",
"platform": "substack",
"url": "https://newsletter.doomberg.com",
"name": "Doomberg",
"short_name": "Doomberg",
"description": "A lateral-thinking approach to energy, finance, and geopolitics.",
"artwork_url": "https://substackcdn.com/image/...",
"founded": "2021-04-21T18:58:46Z",
"subscribers": 373000,
"added": "2023-02-08T12:45:40Z",
"active": true,
"language": "en",
"engagement": 92,
"sponsored": false,
"estimated_ad_cost": {
"min_cpm": 1000,
"max_cpm": 3000,
"min_cost": 373000,
"max_cost": 1119000
},
"est_monthly_visits": 63308,
"issue_frequency": "twiceweekly",
"num_issues": 496,
"publishing_model": "freemium",
"contributors": [
{
"id": "doomberg",
"name": "Doomberg",
"platform": "substack"
}
],
"social": [
{
"channel": "twitter",
"identifier": "DoombergT",
"followers": 162000
}
],
"rankings": [
{
"platform": "substack",
"category": "finance",
"position": 4
}
],
"badges": [
"top-100"
]
}
}/api/issues/?publication_id=<id>Recent issues for a given publication, in chronological order (newest first).
publication_idstringReletter publication ID.{
"issues": [
{
"id": "pdh-the-coal-paradox",
"title": "The Coal Paradox",
"contributors": [
"Doomberg"
],
"published": "2026-04-22T13:01:00Z",
"num_likes": 412,
"num_comments": 28,
"url": "https://newsletter.doomberg.com/p/the-coal-paradox",
"image_url": "https://substackcdn.com/image/...",
"type": "newsletter",
"substack_slug": "the-coal-paradox",
"substack_podcast_url": null,
"text": "... full body text ..."
}
]
}/api/issues/<issue_id>/Full data for a single issue, including the body text and the publication it belongs to.
issue_idstringReletter issue ID.{
"issue": {
"id": "pdh-the-coal-paradox",
"title": "The Coal Paradox",
"contributors": [
"Doomberg"
],
"published": "2026-04-22T13:01:00Z",
"num_likes": 412,
"num_comments": 28,
"url": "https://newsletter.doomberg.com/p/the-coal-paradox",
"image_url": "https://substackcdn.com/image/...",
"type": "newsletter",
"substack_slug": "the-coal-paradox",
"substack_podcast_url": null,
"text": "... full body text ...",
"publication": {
"id": "doomberg",
"platform": "substack",
"name": "Doomberg",
"subscribers": 373000
}
}
}/api/contacts/?publication_id=<id>Email contacts, social accounts, and contributor profiles for a publication.
publication_idstringReletter publication ID.{
"fetchable": false,
"contacts": {
"email": [
{
"full_name": "Doomberg Editorial",
"email": "[email protected]",
"category": "general",
"verification_status": "valid"
}
],
"social": [
{
"channel": "twitter",
"identifier": "DoombergT",
"url": "https://twitter.com/DoombergT",
"added": "2023-02-08T12:45:40Z"
}
],
"contributors": [
{
"id": "doomberg",
"platform": "substack",
"name": "Doomberg",
"bio": "A lateral-thinking team writing on energy and markets.",
"social": [],
"owner": true
}
]
}
}/api/charts/Index of available chart platforms and their categories. Use the returned slugs with /api/charts/<platform>/<category>/.
{
"reletter": [
{
"id": "top-50",
"name": "Reletter Top 50",
"variants": null
}
],
"linkedin": [
{
"id": "top-50",
"name": "LinkedIn Top 50",
"variants": null
}
],
"substack": [
{
"id": "top-50",
"name": "Substack Top 50",
"variants": null
},
{
"id": "finance",
"name": "Finance",
"variants": [
"paid",
"free"
]
}
]
}/api/charts/<platform>/<category>/Rankings on a given platform / category. Each entry is a full publication dict.
variantstringOptional: paid, free, rising, etc. (where supported).{
"name": "Finance",
"platform": "substack",
"variant": null,
"publications": [
{
"id": "doomberg",
"platform": "substack",
"name": "Doomberg",
"subscribers": 373000,
"engagement": 92
}
]
}/api/accounts/quota/Returns your current API usage and quota for the calendar month. This endpoint does not count against your quota.
{
"usage": 1284,
"quota": 5000
}