fshy

fshy / Storage

notion

notion.com · Storage · 2 records · JSON

Notion (free plan) - file blocks & Files property Storage

caveatinstitutionno cardRper-object-capdisagrees

www.notion.com · cloud-drive · storage/notion-file-blocks-files-property · JSON · compare

Sibling records disagree:

Free tierNo total storage cap: 'Unlimited file uploads' on Free, but each file is capped at 5 MiB on Free (5 GiB on paid). Block limit is unlimited for a single-member Free workspace.
unit GiB; metered on stored-bytes
Pricenone stated
Per-object cap5 MiB per file (5242880 bytes)
Retentionnot stated
EgressFree; Notion serves via S3/presigned URLs on Cloudflare-fronted notion.com. File objects return 'An authenticated HTTP GET URL... valid for one hour', so links must be re-minted - no CDN you can pin a cache to without re-signing.
Identityinstitution derived from the record's prose, not from an identity field, and no signup was executed: p' in the niche. 5 MiB per file on Free (hard, enforced by API); 20 MiB per single-part API upload; parts must be 5-20 MiB; 600 requests/min per workspace (avg 10/s) shared across al
Limits
  • per-ip-shaping 1 TB/day source
  • per-object-cap 5 MiB per file source
5 MiB per file on Free (hard, enforced by API); 20 MiB per single-part API upload; parts must be 5-20 MiB; 600 requests/min per workspace (avg 10/s) shared across all connections; only whitelisted MIME types (audio/document/image/video/CAD) - arbitrary binary is rejected
Bindingper-object-cap the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota
Interfacerest, rclone rest
ToolingOfficial Notion API file-upload endpoints (single-part <=20 MiB, multi-part above with 5-20 MiB parts) + PlakarKorp/integration-notion and many notion-backup repos for bulk extraction; no rclone backend
Composes withPer-record unlimited: 5 MiB x unlimited files x unlimited blocks x unlimited free workspaces. A 20 TiB archive sharded into 5 MiB objects = ~4.2M objects - feasible at 600 req/min but ~5 days of continuous upload. This is the clearest 'unlimited count, tiny per-file cap' in the niche.
ReliabilityThe MIME whitelist is the killer: no generic octet-stream blobs, so archival datasets must be packed as .zip/.7z/.tar which Notion does accept. Signed URLs expire in one hour, so serving 1 TB/day out of Notion means re-minting continuously.
NotesNo total storage cap: 'Unlimited file uploads' on Free, but each file is capped at 5 MiB on Free (5 GiB on paid). Block limit is unlimited for a single-member Free workspace.
Evidence rungreported One page read moves it to documented.
Checked2026-10-21 (inherited); stale on 2026-11-04
Parsed numbers
  • $.limits[0].value limit:per-ip-shaping 1.0 TB / day
  • $.limits[1].value limit:per-object-cap 5.0 MiB
Evidence (4)
datesourcewhat it proved
2026-10-21developers.notion.com/guides/data-apis/working-with-files-an'Free workspaces are limited to 5 MiB (binary megabytes) per file'; 'Files larger than 20 MiB must be split into parts'; supported-types table lists .zip, .7z, .tar, .bz2, .rar
2026-10-21www.notion.com/pricing'Unlimited file uploads'; 'On the Free plan, you can upload images, videos and file attachments up to 5MB each. Upgrade to a paid plan for unlimited file uploads with a ~5GB max per file.'
2026-10-21developers.notion.com/reference/file-object'An authenticated HTTP GET URL to the file. The URL is valid for one hour.'
2026-10-21api.notion.com/v1/usersprobe: GET -> HTTP 401 (API live, auth-gated)
Unknown or withheld values (4)
  • $.free_tier.notes process
  • $.per_object_cap.notes not-extracted
  • $.retention.notes not-extracted
  • $.retention.stated not-extracted

notion (free workspace as file store) Storage

fails: quotaemail?card?Rdisagrees

developers.notion.com/guides/data-apis/working-with-files-an · rejected-provider · storage/notion · JSON · compare

Sibling records disagree:

Free tier5 MiB per file on Free (API and UI), and every Notion-hosted file URL is a signed S3 URL valid for one hour — 'Don't cache or statically reference these URLs'. Unlimited blocks on a single-o
unit none; metered on none
Pricenone stated
Per-object capnot recorded
Retentionnot recorded
Egressnot recorded
Identityemail (placeholder) not published
Bindingnone no constraint of a named kind was recorded; the verdict rests on the quota sentence rather than on a named limit
Interfaceunknown
Toolingnot recorded
Composes withnot recorded
Reliability5 MiB per file on Free (API and UI), and every Notion-hosted file URL is a signed S3 URL valid for one hour — 'Don't cache or statically reference these URLs'. Unlimited blocks on a single-o
Notes5 MiB per file on Free (API and UI), and every Notion-hosted file URL is a signed S3 URL valid for one hour — 'Don't cache or statically reference these URLs'. Unlimited blocks on a single-o
Evidence rungreported
Checked2026-10-21 (inherited); stale on 2026-11-04
Evidence (3)
datesourcewhat it proved
2026-10-21developers.notion.com/guides/data-apis/working-with-files-an5 MiB per file on Free (API and UI), and every Notion-hosted file URL is a signed S3 URL valid for one hour — 'Don't cache or statically reference these URLs'. Unlimited blocks on a single-o
2026-10-21developers.notion.com/reference/file-objectcited as the basis of the rejection: 5 MiB per file on Free (API and UI), and every Notion-hosted file URL is a signed S3 URL valid for one hour — 'Don't cache or statically reference these URLs'. Unlimited blocks on a single-o
2026-10-21www.notion.com/help/understanding-block-usagecited as the basis of the rejection: 5 MiB per file on Free (API and UI), and every Notion-hosted file URL is a signed S3 URL valid for one hour — 'Don't cache or statically reference these URLs'. Unlimited blocks on a single-o
More fields (1)
{
 "dead_end": {
  "failure_class": "quota",
  "why": "5 MiB per file on Free (API and UI), and every Notion-hosted file URL is a signed S3 URL valid for one hour — 'Don't cache or statically reference these URLs'. Unlimited blocks on a single-o",
  "retry_when": null,
  "first_recorded": "2026-10-21"
 }
}
Unknown or withheld values (15)
  • $.chaining not-recorded
  • $.confidence_note withheld
  • $.egress.terms not-recorded
  • $.extras.dead_end.retry_when process
  • $.free_tier.notes process
  • $.identity_cost.detail defaulted
  • $.identity_cost.kind identity-defaulted
  • $.interface interface-unknown
  • $.interface_detail withheld
  • $.limits_note process
  • $.per_object_cap.notes not-recorded
  • $.per_object_cap.stated not-recorded
  • $.retention.notes process
  • $.retention.stated not-recorded
  • $.tooling not-recorded