API Substack

Substack Публикации API

Получает публикации любого издания Substack по его URL или одну публикацию по URL (…/p/slug), чтобы получить только эту статью. Возвращает заголовок, подзаголовок, дату публикации, статус платного доступа, число слов, вовлечённость (реакции, комментарии, restack), профиль автора, данные об издании, полный текст статьи в виде текста, HTML и Markdown и, по желанию, ветки комментариев.

0,439604 USD/1 тыс. результатов, оплата за запрос, без подписки.

Clearheaded
clearheaded.blog
ClearheadedSubscribe
HomeArchiveAbout

Why roadmaps are guesses

Sep · Priya Nakamura

The three-question standup

A shorter standup that actually surfaces risk

PaidSep · Priya Nakamura

Ask me anything: hiring your first PM

Reader questions from last week's thread

Sep · Priya Nakamura

Clearheaded

Type your email…Subscribe

Recommendations

Что вернул APIitems[0]
{
"postId": "148302911",
"title": "Why roadmaps are guesses",
"url": "https://www.clearheaded.blog/p/why-roadmaps-are-guesses",
"slug": "why-roadmaps-are-guesses",
"postType": "newsletter",
"createdUtc": 1758585600,
"wordcount": 2140,
"authorName": "Priya Nakamura",
+5 ещё
}
Доступность
47,06%
30d · Вызовов: 34
Запросы
34
30 дн. · по неделям, последние недель: 12
Ответ
3,7s
медиана · 30d

Цены

Цена API Substack Публикации

Вы платите
4,40 USD
0,439604 USD/1 тыс. результатов, только за то, чем пользуетесь. Без ежемесячного тарифа.
Один запрос стоит не больше 0,0444 USD (101 results).
Стартового баланса 0,10 USD хватает минимум на 2 запросов.

Попробовать

Получите Substack Публикации одним запросом

Открыть в
Пример ответа
Бесплатные запуски возвращают только первые результаты: 3. Пополните ключ, чтобы получить полный ответ.
{
  "found": true,
  "data": {
    "items": [
      {
        "postId": "148302911",
        "title": "Why roadmaps are guesses",
        "url": "https://www.clearheaded.blog/p/why-roadmaps-are-guesses",
        "slug": "why-roadmaps-are-guesses",
        "postType": "newsletter",
        "createdUtc": 1758585600,
        "wordcount": 2140,
        "authorName": "Priya Nakamura",
        "authorHandle": "priyanakamura",
        "contentStatus": "full",
        "text": "Every roadmap I have shipped was a guess with a deadline attached.",
        "publication": {
          "id": "pub_5521",
          "name": "Clearheaded",
          "url": "https://www.clearheaded.blog",
          "subdomain": "clearheaded",
          "customDomain": "www.clearheaded.blog",
          "description": "Notes on building things without lying to yourself.",
          "image": "https://substackcdn.com/image/fetch/clearheaded/logo.png",
          "language": "en",
          "paymentsEnabled": true,
          "subscriberCount": 38400
        },
        "comments": [
          {
            "commentId": "c_88213",
            "text": "This matches every planning meeting I have sat through for a decade.",
            "createdUtc": 1758600000,
            "authorName": "Devon Okafor",
            "authorHandle": "devonokafor",
            "authorUrl": "https://substack.com/@devonokafor",
            "authorImage": "https://substackcdn.com/image/fetch/clearheaded/devon-avatar.png",
            "reactionCount": 44,
            "restackCount": 2,
            "isPinned": true,
            "isAuthor": false,
            "replies": [
              {
                "commentId": "c_88240",
                "text": "Glad it landed. Curious how your team names the guess out loud.",
                "createdUtc": 1758603600,
                "authorName": "Priya Nakamura",
                "authorHandle": "priyanakamura",
                "authorUrl": "https://www.clearheaded.blog/people/priya-nakamura",
                "authorImage": "https://substackcdn.com/image/fetch/clearheaded/priya-avatar.png",
                "reactionCount": 12,
                "restackCount": 0,
                "isPinned": false,
                "isAuthor": true
              }
            ]
          }
        ]
      },
      {
        "postId": "148190442",
        "title": "The three-question standup",
        "url": "https://www.clearheaded.blog/p/the-three-question-standup",
        "slug": "the-three-question-standup",
        "subtitle": "",
        "description": "A shorter standup that actually surfaces risk",
        "postType": "newsletter",
        "createdUtc": 1757980800,
        "isPaid": true,
        "language": "en",
        "wordcount": 1420,
        "reactionCount": 501,
        "commentCount": 29,
        "replyCount": 6,
        "restackCount": 18,
        "authorName": "Priya Nakamura",
        "authorHandle": "priyanakamura",
        "authorUrl": "https://www.clearheaded.blog/people/priya-nakamura",
        "contentStatus": "preview_only",
        "text": "Most standups answer the same three questions badly. Here is a version that takes six minutes and actually works...",
        "publication": {
          "id": "pub_5521",
          "name": "Clearheaded",
          "url": "https://www.clearheaded.blog",
          "subdomain": "clearheaded"
        },
        "comments": []
      },
      {
        "postId": "148075310",
        "title": "Ask me anything: hiring your first PM",
        "url": "https://www.clearheaded.blog/p/ask-me-anything-hiring-your-first-pm",
        "slug": "ask-me-anything-hiring-your-first-pm",
        "subtitle": "Reader questions from last week's thread",
        "description": "Reader questions from last week's thread",
        "postType": "thread",
        "createdUtc": 1757376000,
        "isPaid": false,
        "language": "en",
        "wordcount": 640,
        "reactionCount": 203,
        "commentCount": 41,
        "replyCount": 9,
        "restackCount": 5,
        "authorName": "Priya Nakamura",
        "authorHandle": "priyanakamura",
        "authorUrl": "https://www.clearheaded.blog/people/priya-nakamura",
        "contentStatus": "metadata_only",
        "publication": {
          "id": "pub_5521",
          "name": "Clearheaded",
          "url": "https://www.clearheaded.blog",
          "subdomain": "clearheaded"
        },
        "comments": []
      }
    ]
  }
}

Полный справочник по параметрам и ответу: каждое поле, тип и пример для этого эндпоинта.

Справочник

Один запрос, один формат ответа.

Каждое поле, которое вы отправляете, и каждое поле, которое получаете, с реальным примером.

Проверено 2026-10-07 · доступность и задержка измерены за 30d

Тело запроса

JSON, отправляется на этот эндпоинт.

  • urlstring

    https://www.clearheaded.blog

    Либо URL издания Substack или собственный домен, чтобы получить его последние публикации (например, https://www.astralcodexten.com), ЛИБО URL одной публикации, чтобы получить только эту статью целиком (например, https://www.astralcodexten.com/p/your-book-review).

  • contentTypeenum

    Ограничить одним типом публикации или 'all' (например, newsletter).

  • endDatestring

    Возвращать только публикации, опубликованные в эту дату или раньше, формат YYYY-MM-DD (например, 2024-12-31). Применяется среди последних просмотренных 'limit' публикаций.

  • includeCommentsboolean

    Включать публичные ветки комментариев и прямые ответы на каждую публикацию (например, true).

  • includeContentboolean

    true

    Включить полный текст статьи в виде текста, HTML и Markdown. Передайте false, чтобы получить только метаданные, это быстрее (например, false).

  • limitinteger

    3

    Максимальное число недавних публикаций, когда передан URL издания (1-100, по умолчанию 25); игнорируется для URL одной публикации, которая всегда возвращает только её. Оплата за каждую возвращённую публикацию, поэтому меньший limit стоит дешевле.

  • maxCommentsinteger

    Максимальное число комментариев, собираемых на публикацию, когда 'includeComments' равно true (0-500, по умолчанию 20). Дополнительно ничего не стоит (например, 50).

  • minCommentsinteger

    Возвращать только публикации не менее чем с таким числом комментариев (например, 10).

  • minReactionsinteger

    Возвращать только публикации не менее чем с таким числом реакций (например, 100).

  • minWordCountinteger

    Возвращать только публикации не менее чем с таким числом слов, что отсеивает короткие заметки и объявления (например, 1000).

  • onlyFreeboolean

    Возвращать только бесплатные публикации (без платного доступа) (например, true).

  • startDatestring

    Возвращать только публикации, опубликованные в эту дату или позже, формат YYYY-MM-DD (например, 2024-01-01). Применяется среди последних просмотренных 'limit' публикаций, поэтому увеличьте 'limit', чтобы дойти до более старых периодов.

Вы отправляете. Небольшое тело JSON. Показанные значения это примеры, замените их своими.

Ответ

JSON, по одному примеру значения на поле.

  • foundboolean

    true

each itemdata.items[]
  • postIdstring

    148302911

  • titlestring

    Why roadmaps are guesses

  • urlstring

    https://www.clearheaded.blog/p/why-roadmaps-are-guesses

  • slugstring

    why-roadmaps-are-guesses

  • postTypestring

    newsletter

  • createdUtcnumber

    1758585600

  • wordcountnumber

    2140

  • authorNamestring

    Priya Nakamura

  • authorHandlestring

    priyanakamura

  • contentStatusstring

    full

  • textstring

    Every roadmap I have shipped was a guess with a deadline attached.

publicationdata.items[].publication
  • idstring

    pub_5521

  • namestring

    Clearheaded

  • urlstring

    https://www.clearheaded.blog

  • subdomainstring

    clearheaded

  • customDomainstring

    www.clearheaded.blog

  • descriptionstring

    Notes on building things without lying to yourself.

  • imagestring

    https://substackcdn.com/image/fetch/clearheaded/logo.png

  • languagestring

    en

  • paymentsEnabledboolean

    true

  • subscriberCountnumber

    38400

each commentdata.items[].comments[]
  • commentIdstring

    c_88213

  • textstring

    This matches every planning meeting I have sat through for a decade.

  • createdUtcnumber

    1758600000

  • authorNamestring

    Devon Okafor

  • authorHandlestring

    devonokafor

  • authorUrlstring

    https://substack.com/@devonokafor

  • authorImagestring

    https://substackcdn.com/image/fetch/clearheaded/devon-avatar.png

  • reactionCountnumber

    44

  • restackCountnumber

    2

  • isPinnedboolean

    true

  • isAuthorboolean

    false

each replydata.items[].comments[].replies[]
  • commentIdstring

    c_88240

  • textstring

    Glad it landed. Curious how your team names the guess out loud.

  • createdUtcnumber

    1758603600

  • authorNamestring

    Priya Nakamura

  • authorHandlestring

    priyanakamura

  • authorUrlstring

    https://www.clearheaded.blog/people/priya-nakamura

  • authorImagestring

    https://substackcdn.com/image/fetch/clearheaded/priya-avatar.png

  • reactionCountnumber

    12

  • restackCountnumber

    0

  • isPinnedboolean

    false

  • isAuthorboolean

    true

Вы получаете. Именованные типизированные поля в одном формате, какой бы источник ни ответил.

Вопросы и ответы

Об API Substack Публикации

AnyAPI Substack Публикации API возвращает данные Substack в виде нормализованного JSON одним вызовом POST к /v1/run/substack.posts. Получает публикации любого издания Substack по его URL или одну публикацию по URL (…/p/slug), чтобы получить только эту статью. Возвращает заголовок, подзаголовок, дату публикации, статус платного доступа, число слов, вовлечённость (реакции, комментарии, restack), профиль автора, данные об издании, полный текст статьи в виде текста, HTML и Markdown и, по желанию, ветки комментариев. AnyAPI возвращает одну нормализованную схему, какой бы источник ни ответил. Это стоит 0,44 USD за 1000 результатов, и никогда не больше 0,0444 USD за один запрос, в долларах США, без подписки и без ежемесячного минимума. За последние 30 дней 47,1% вызовов Substack Публикации через AnyAPI завершились успешно, медианное время ответа 3,7 с, измерено вызовов: 34.

Это стоит 0,44 USD за 1000 результатов, и никогда не больше 0,0444 USD за один запрос, в долларах США, без подписки и без ежемесячного минимума. Вы пополняете один кошелёк в долларах США, и каждый вызов списывает с него. По некоторым неудавшимся запросам, оплаченным из кошелька, возникают расходы на обработку; мы передаём их по себестоимости, без наценки, а сумма списания указана в ответе с ошибкой.

Получает публикации любого издания Substack по его URL или одну публикацию по URL (…/p/slug), чтобы получить только эту статью. Возвращает заголовок, подзаголовок, дату публикации, статус платного доступа, число слов, вовлечённость (реакции, комментарии, restack), профиль автора, данные об издании, полный текст статьи в виде текста, HTML и Markdown и, по желанию, ветки комментариев. Ответ это нормализованный JSON с тем же конвертом, что возвращает каждый эндпоинт AnyAPI, поэтому разбор второго эндпоинта это смена URL и ничего больше.

За последние 30 дней 47,1% вызовов Substack Публикации через AnyAPI завершились успешно, медианное время ответа 3,7 с, измерено вызовов: 34. Это собственные измерения AnyAPI по трафику через шлюз, пересчитываемые непрерывно, а не опубликованный целевой уровень обслуживания.

Да. Новый аккаунт AnyAPI стартует с бесплатным балансом 0,10 USD, карта не нужна. Этого хватает минимум на 2 вызовов Substack Публикации по цене до 0,0444 USD за каждый.

Отправьте запрос POST на https://api.getanyapi.com/v1/run/substack.posts с вашим ключом AnyAPI в заголовке "Authorization: Bearer" и входными данными в теле JSON. Один и тот же ключ и один и тот же кошелёк работают на каждом эндпоинте AnyAPI.

Нет. Вы пополняете один предоплаченный баланс AnyAPI в долларах США, и каждый запрос списывает с него. Ежемесячного тарифа и минимума нет, а один и тот же баланс оплачивает каждый эндпоинт AnyAPI.

Да. Установите @getanyapi/sdk из npm для TypeScript или getanyapi из pip для Python. Оба вызывают любой эндпоинт AnyAPI с одним и тем же ключом, а ещё подойдёт любой HTTP-клиент.

Да. Агент может подключиться к MCP-серверу AnyAPI по адресу https://api.getanyapi.com/mcp или создать собственный бесплатный пробный ключ одним POST без аутентификации на https://api.getanyapi.com/agent/signup и вызывать этот эндпоинт по HTTP.