Substack file embeds
substack.com · Storage · 1 record · JSON
Substack file embeds Storage
caveatinstitutionno cardR
| Free tier | no stated total; 700 MB per PDF, XLSX/CBZ/CBR embeds supported unit MB; metered on unstated |
|---|---|
| Price | none stated |
| Per-object cap | not stated |
| Retention | not stated |
| Egress | free, CDN-served download links on substackcdn.com, no auth for public posts |
| Identity | institution derived from the record's prose, not from an identity field, and no signup was executed: p the embed; Substack has no delete-then-restore story. No API is the hard blocker — this is a 'if someone writes the Playwright wrapper' candidate 700 MB x unlimited posts x unlimit |
| Binding | none no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names |
| Interface | unknown wrapper-only |
| Tooling | no public upload API — file embeds are drag-and-drop in the post editor or into email drafts; would need browser automation (Playwright) against the logged-in editor |
| Composes with | 700 MB x unlimited posts x unlimited publications (each free to create). This is the largest per-file limit of any social platform checked here; 20 TiB = ~29,000 PDFs |
| Reliability | attachments live with the post; editing a post can drop the embed; Substack has no delete-then-restore story. No API is the hard blocker — this is a 'if someone writes the Playwright wrapper' candidate |
| Notes | no stated total; 700 MB per PDF, XLSX/CBZ/CBR embeds supported |
| Evidence rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
Evidence (2)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | support.substack.com/hc/en-us/articles/4408381643156-How-can | 'The file size limit for a PDF is 700 MB' |
| 2026-10-21 | on.substack.com/p/new-tools-paywall-embeds | 'Writers can now embed PDFs, Excel spreadsheets (XLSX), and comics files (CBZ, CBR) into their posts' |
Unknown or withheld values (6)
$.free_tier.notesprocess$.interfaceinterface-unknown$.per_object_cap.notesnot-extracted$.per_object_cap.statednot-extracted$.retention.notesnot-extracted$.retention.statednot-extracted