---
title: "Admin Substack Crawl"
method: POST
path: "/v1/admin/intake/substack-crawl"
---

# Admin Substack Crawl

`POST /v1/admin/intake/substack-crawl`

## Request

- Base URL: `https://api.storyflo.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.storyflo.com/v1/admin/intake/substack-crawl`
- Auth: none declared

Crawl substack.com/leaderboard for top newsletters per category
and register each one as a shadow Publisher + IntakeSource. Idempotent
— re-running picks up new entries without duplicating rows. Returns
counts so the operator can confirm meaningful supply growth on each
run. Polite to Substack: ~1 req/sec, real User-Agent with opt-out
contact, only hits public leaderboard pages.

## Headers

- `x-storyflo-email-token` string, nullable

## Request body

- SubstackCrawlBody
  - `categories` integer[], nullable
  - `limit_per_category` integer

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/storyflo/apis/storyflo-inference-router.md) · [All operations](https://skmtc.dev/storyflo/apis/storyflo-inference-router/llms.txt) · [OpenAPI document](https://skmtc.dev/storyflo/apis/storyflo-inference-router/revisions/c3a1a735ac7a?raw)
