Substack hub

Substack Publication API

One publication's metadata, plans and sections, by id, subdomain, host or URL.

GET /v1/substack/publications/{publication}

1 credit Failed requests are free

About this endpoint

GET /v1/substack/publications/{publication} resolves a publication and returns data.publication with its numeric id, name, subdomain, customDomain, url, host, description, language, kind, createdAt and firstPostAt.

The same object carries plans with price, currency and interval, benefits for free, paid and founding tiers, audience bands, contributors, sections, links, podcast details, logoUrl, coverImageUrl and the publication's switches such as commentsEnabled and notesEnabled. data.lookupStatus is found, not_found or restricted, and restrictedReason says why a restricted publication does not serve its page.

Substack Publication API FAQ

How do I identify a publication?

Use its numeric id (89120), its Substack subdomain (astralcodexten), its host (www.astralcodexten.com) or a full publication URL. A host or URL is safest for a publication on a custom domain.

What does restricted mean?

lookupStatus: restricted means the publication exists but does not serve its page publicly. restrictedReason is invite_only, flagged or paid, and publication is null.

Does a missing publication return an error?

No. The route answers HTTP 200 with lookupStatus: not_found and publication: null, so branch on the status field rather than the HTTP code.

How many credits does a publication lookup 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.