All endpoints
Search Substack Publications

Search Substack Publications API

Search Substack publications by name or keyword. Returns name, URL, tagline, author, subscriber badge, paid-subscriber band, prices, bestseller tier and language for each publication.

Price: $0.003 per request
Free tier: 50 requests/month
Endpoint
GET /v1/substack/publications

Parameters

query *
Search keyword (max 500 characters)
page
Page number, 1-4 (default: 1). 20 publications per page
language
Two-letter language code, e.g. es, to rank publications in that language first

Response fields

publications
Array of matching publications
publication_id
Publication ID
name
Publication name
subdomain
Substack subdomain (<subdomain>.substack.com)
url
Publication home URL (the custom domain when it has one)
custom_domain
Custom domain, empty when none
description
Publication tagline
logo_url
Logo URL
cover_image_url
Cover image URL, empty when none
author
Primary author's handle
author_name
Primary author's display name
author_id
Primary author's user ID
author_url
Link to the primary author's profile
subscriber_count
Free subscriber count as Substack displays it (rounded, e.g. 1200000); null when the publication hides it
subscriber_count_label
The displayed subscriber badge, e.g. 1.2M+, or a band such as Thousands of subscribers
ranking_detail
Substack's ranking note: the paid-subscriber band for established publications or a launch note such as Launched a year ago for new ones; empty when not shown
paid_subscriber_band
Paid subscriber band, e.g. Tens of thousands of paid subscribers; empty when Substack shows none
paid_subscriber_floor
Lower bound of the paid band (100, 1000, 10000), 0 when none
bestseller_tier
Bestseller badge tier: 0, 100, 1000 or 10000 paid subscribers
is_bestseller
Whether the publication carries a bestseller badge
paid_enabled
Whether paid subscriptions are enabled
plans
Subscription prices (interval, amount, currency)
has_podcast
Whether the publication has a podcast
podcast
The publication's podcast (title, description, art_url, host, is_free, is_subscriber_only), null when none
sections
The publication's sections (section_id, name, slug, is_podcast)
author_pic_url
Primary author's profile picture URL
logo_url_wide
Wide logo URL, empty when none
founding_plan_name
Name of the founding tier, empty when none
has_recommendations
Whether the publication recommends other publications
has_chat
Whether subscriber chat is enabled
language
Language code
type
newsletter or podcast
twitter_handle
The publication's X handle, empty when none
created_at
Date the publication was created (UTC)
first_post_date
Date of the first post (UTC)
source
"Substack"
domain
"substack.com"
query
The search keyword
page
Current page number
has_next_page
Whether another page exists
count
Number of publications returned

Example Request

curl "https://apidirect.io/v1/substack/publications?query=crypto&page=1"   -H "X-API-Key: YOUR_API_KEY"

Example Response

{
  "count": 20,
  "has_next_page": true,
  "page": 1,
  "publications": [
    {
      "author": "cryptoyall",
      "author_id": "89093778",
      "author_name": "Josh Rhodes - Crypto Y'all",
      "author_pic_url": "https://substackcdn.com/image/fetch/$s_!e6dX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8ff3e27c-70ae-4556-9000-a84bf76e3dd3_2973x2377.jpeg",
      "author_url": "https://substack.com/@cryptoyall",
      "bestseller_tier": 0,
      "cover_image_url": "",
      "created_at": "2025-11-06 02:36:02",
      "custom_domain": "",
      "description": "Tired of feeling lost in the crypto world? We’ll teach you how the market really works—so you can spot opportunities, av…",
      "domain": "substack.com",
      "first_post_date": "2026-06-09 15:38:18",
      "founding_plan_name": "Founding Member",
      "has_chat": true,
      "has_podcast": true,
      "has_recommendations": false,
      "is_bestseller": false,
      "language": "en",
      "logo_url": "https://substackcdn.com/image/fetch/$s_!e6dX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.…",
      "logo_url_wide": "https://substackcdn.com/image/fetch/$s_!3X7s!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F097d2cae-589f-466e-942c-e42391021862_480x254.png",
      "name": "Josh Rhodes - Crypto Y'all",
      "paid_enabled": true,
      "paid_subscriber_band": "",
      "paid_subscriber_floor": 0,
      "plans": [
        {
          "amount": 40.0,
          "currency": "USD",
          "interval": "month"
        },
        {
          "amount": 439.0,
          "currency": "USD",
          "interval": "year"
        }
      ],
      "podcast": null,
      "publication_id": "6822164",
      "ranking_detail": "Launched 4 months ago",
      "sections": [],
      "source": "Substack",
      "subdomain": "cryptoyall",
      "subscriber_count": null,
      "subscriber_count_label": "128",
      "twitter_handle": "",
      "type": "newsletter",
      "url": "https://cryptoyall.substack.com"
    }
  ],
  "query": "crypto"
}

Frequently asked questions

How many results can I get?

Substack serves up to 4 pages of 20 publications per query, about 75 matches.

What does language do?

It ranks publications written in that language first; it does not exclude the others.

How does pricing work?

You only pay for successful requests. The Search Substack Publications API costs $0.003 per request. There are no monthly fees or commitments. You get 50 free requests per endpoint every month.

Do I need a credit card to start?

No. You can sign up and use the free tier (50 requests/endpoint/month) without adding a payment method. You only need to add a card when you want to exceed the free tier.

Are there rate limits?

Yes, there's a concurrency limit of 10 simultaneous requests per endpoint per user. If you need more, just get in touch.

Start using the Search Substack Publications API

Get your API key and start making requests in minutes. 50 requests/month free every month.

Get API Key