Substack Leaderboard: Top Publications by Category avatar

Substack Leaderboard: Top Publications by Category

Pricing

from $1.50 / 1,000 ranked publication returneds

Go to Apify Store
Substack Leaderboard: Top Publications by Category

Substack Leaderboard: Top Publications by Category

Substack leaderboard scraper: the top paid newsletters in any Substack category, ranked, with author, subscriber tier, subscriber floor, prices and URL. One row per publication.

Pricing

from $1.50 / 1,000 ranked publication returneds

Rating

0.0

(0)

Developer

Adriana Voss

Adriana Voss

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Get the top paid Substack publications in any category, ranked, with author, subscriber tier, prices and URL. Pick a category (Technology, Finance, Food & Drink, Health & Wellness and 28 more) and get Substack's own bestseller leaderboard for it as one row per publication. Built for sponsorship and partnership prospecting, newsletter market research and creator outreach lists. Public publication fields only: no author bios, no emails.

Related actors: to profile one publication in depth (posting cadence, paid-post ratio, recent posts) use Substack Publication Lookup. This actor answers a different question: which publications lead a category.

How to use

  1. In the Apify Console. Open the actor page and click Start — the categories field is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found.
  2. Via the API. Call it directly with a POST request — no Console needed once you have an API token:
    curl "https://api.apify.com/v2/acts/accountable_eel~substack-leaderboard-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
    -X POST \
    -H "Content-Type: application/json" \
    -d '{"categories":["Technology"]}'
  3. On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.

Input

{
"categories": [
"Technology"
]
}

One per line. A category name (Technology, Finance, Food & Drink), its slug (food) or its numeric id (4). Each category returns its paid-subscriber bestseller leaderboard, ranked. Accepted formats: Technology, Finance, food, 4.

Each line is one category, given as its name, its slug or its numeric id. maxPerCategory (default 20, up to 200) sets how many publications you get, and pay for, per category. Substack serves 25 per page, so 25, 50, 75 and so on cost the least.

Output

One row per ranked publication, for example:

queryfoundstatuscategorycategoryIdpublicationCountpublicationsrankpublicationNametaglinepublicationUrlsubdomaincustomDomainpublicationIdauthorNameauthorHandlepaidSubscriberTierpaidSubscribersAtLeasttotalSubscribersLabeltotalSubscribersAtLeastmonthlyPriceannualPricepriceCurrencylanguagefirstPostDatehasPodcastsourceUrlscrapedAt
TechnologytrueOK<all publications (full list)><author / byline><paid subscribers (at least)><total subscribers (label)><total subscribers (at least)>1970-01-01T00:00:00.000Z

rank is the position in the order Substack serves the category leaderboard (1 = top). Subscriber figures are Substack's own rounded bands, not exact counts: paidSubscribersAtLeast is 100, 1000 or 10000 and totalSubscribersAtLeast is the floor behind a label such as 321K+. Fields Substack does not publish for a publication are null, never 0.

A category that does not exist, or has no public leaderboard, comes back as one row with "found": false that lists the categories you can use. It is never charged.

Pricing

  • Ranked publication returned: $3 per 1,000 publications

Plus a $0.0015 start fee per run. Each event above is billed independently, only when it actually returns data — misses (found:false) are never charged.

Billing is per ranked publication returned: $3 per 1,000 publications on the free plan, less on paid Apify plans. A category with no result is free.

Example runs

Paste any of these into the Input tab and press Start. All three return rows with no key, no token and no account of your own beyond an Apify login.

Top 20 technology newsletters. The default shape.

{
"categories": ["Technology"]
}

Top 50 finance and top 50 business publications side by side.

{
"categories": ["Finance", "Business"],
"maxPerCategory": 50
}

The food leaderboard by slug, with the top 10 only.

{
"categories": ["food"],
"maxPerCategory": 10
}

Use it from Clay, n8n, Make, or an AI agent

This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.

curl "https://api.apify.com/v2/acts/accountable_eel~substack-leaderboard-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-X POST \
-H "Content-Type: application/json" \
-d '{"categories":["Technology"]}'

n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~substack-leaderboard-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"categories":["Technology"]} (swap in an expression from an earlier node for a real value).

Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~substack-leaderboard-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"categories":["{{category}}"]}, mapping the row's category into the categories array.

MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "substack leaderboard scraper" — the agent will find and run this actor.