{"rid":"storage/substack-file-embeds","card":{"rid":"storage/substack-file-embeds","eid":"substack-com","topic":"storage","slug":"substack-file-embeds","provider":"Substack file embeds","url":"https://substack.com","domain":"substack.com","category":"media","tier":null,"verdict":"qualifies-with-caveat","vorder":1,"grp":"usable","confidence":"reported","binding":"none","identity_kind":"institution","identity_basis":"stated","needs_card":0,"needs_phone":0,"needs_id":0,"needs_institution":1,"country":null,"crypto":null,"interfaces":null,"egress_metered":0,"per_object_bytes":null,"retention_days":null,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":2,"usd_month":null,"usd_per_tb_month":null,"summary":"no stated total; 700 MB per PDF, XLSX/CBZ/CBR embeds supported","duplicate_of":null,"n_unknown":6},"record":{"topic":"storage","slug":"substack-file-embeds","provider":"Substack file embeds","url":"https://substack.com","category":"media","free_tier":{"stated":"no stated total; 700 MB per PDF, XLSX/CBZ/CBR embeds supported","unit":"MB","metered_on":"unstated","source_url":"https://support.substack.com/hc/en-us/articles/4408381643156-How-can-I-attach-a-file-to-my-Substack-post","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"not stated","source_url":"https://support.substack.com/hc/en-us/articles/4408381643156-How-can-I-attach-a-file-to-my-Substack-post","notes":"not stated"},"retention":{"stated":"not stated","source_url":"https://support.substack.com/hc/en-us/articles/4408381643156-How-can-I-attach-a-file-to-my-Substack-post","notes":"not stated"},"egress":{"terms":"free, CDN-served download links on substackcdn.com, no auth for public posts","metered":false},"interface":["unknown"],"interface_detail":"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","chaining":"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","limits":[],"limits_note":"700 MB/PDF; only PDF, XLSX, CBZ, CBR accepted as embeddable files; paywall/email delivery adds processing; publication needs a verified email and payment setup for paid tiers","identity_cost":{"kind":"institution","detail":"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","country":null},"reliability_note":"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","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://support.substack.com/hc/en-us/articles/4408381643156-How-can-I-attach-a-file-to-my-Substack-post","date":"2026-10-21","proved":"'The file size limit for a PDF is 700 MB'"},{"url":"https://on.substack.com/p/new-tools-paywall-embeds","date":"2026-10-21","proved":"'Writers can now embed PDFs, Excel spreadsheets (XLSX), and comics files (CBZ, CBR) into their posts'"}],"verdict":"qualifies-with-caveat","verified_at":"2026-10-21T00:00:00.000Z","notes":"no stated total; 700 MB per PDF, XLSX/CBZ/CBR embeds supported","extras":{},"binding":"none","binding_note":"no constraint in the record binds at this scale; the record carries no limit of a kind the vocabulary names"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":700,"unit":"MB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"}],"unknown":[["$.free_tier.notes","process"],["$.interface","interface-unknown"],["$.per_object_cap.notes","not-extracted"],["$.per_object_cap.stated","not-extracted"],["$.retention.notes","not-extracted"],["$.retention.stated","not-extracted"]],"history":[],"drift":[]}