Substack hub

Substack Directory API

Publication subdomains, one file and page at a time.

GET /v1/substack/directory

1 credit Failed requests are free

About this endpoint

GET /v1/substack/directory lists publication subdomains in numbered files. file is 1 to 24; each file is a numbered slice of the directory. limit is 1 to 5,000, with 1,000 as the default.

data.entries[] carries subdomain, url and lastModified. data.file echoes the file, data.total is the entry count in that file, and data.page reports offset, limit, hasMore, nextCursor and nextOffset. Pass page.nextCursor as cursor for the next page; a cursor belongs to the file that issued it. The page and offset forms still work; prefer cursor. lookupStatus is found or not_found.

Substack Directory API FAQ

What are the two file sets?

Each file is a numbered slice of the directory, not a category. The 24 files together hold the directory.

Does the directory list every Substack publication?

No. It lists the publications the directory carries, which is a large subset rather than every publication. A publication on a custom domain can still be looked up by host or URL.

How many entries per page?

Between 1 and 5,000, with 1,000 as the default. Pass data.page.nextCursor as cursor while data.page.hasMore is true. The page form still works; prefer cursor.

How many credits does a directory page cost?

Pricing is documented on the operation in the API registry (shown on this page). Confirm on every response with meta.creditsCharged: that field is the billing source of truth.