{"rid":"storage/storage-to","card":{"rid":"storage/storage-to","eid":"storage","topic":"storage","slug":"storage-to","provider":"storage.to","url":"https://storage.to","domain":"storage.to","category":"anonymous-dump","tier":null,"verdict":"fails-quota","vorder":6,"grp":"rejected","confidence":"reported","binding":"per-object-cap","identity_kind":"card","identity_basis":"stated","needs_card":1,"needs_phone":0,"needs_id":0,"needs_institution":0,"country":null,"crypto":null,"interfaces":"rest,rclone,cli","egress_metered":0,"per_object_bytes":25000000000,"retention_days":7,"verified_at":"2026-10-21T00:00:00.000Z","verified_basis":"inherited","checked_on":"2026-10-21","stale_on":"2026-11-04","n_evidence":3,"usd_month":null,"usd_per_tb_month":null,"summary":"No permanent free storage: anonymous 100 GB upload / 24h per visitor token (500 GB / 24h per IP), free-account token = unlimited upload bandwidth and no dail...","duplicate_of":null,"n_unknown":4},"record":{"topic":"storage","slug":"storage-to","provider":"storage.to","url":"https://storage.to","category":"anonymous-dump","free_tier":{"stated":"No permanent free storage: anonymous 100 GB upload / 24h per visitor token (500 GB / 24h per IP), free-account token = unlimited upload bandwidth and no daily file cap, but every free file expires in 3-7 days; permanent storage starts at $5/mo for 100 GB","unit":"GB","metered_on":"stored-bytes","source_url":"https://storage.to/docs/api","read_on":"2026-10-21","notes":null},"per_object_cap":{"stated":"25 GB/file","bytes":25000000000,"source_url":"https://storage.to/docs/api","notes":"not stated"},"retention":{"stated":"No permanent free storage: anonymous 100 GB upload / 24h per visitor token (500 GB / 24h per IP), free-account token = unlimited upload bandwidth and no daily file cap, but every free file expires in 3-7 days; permanent storage starts at $5/mo for 100 GB","days":7,"source_url":"https://storage.to/docs/api","notes":"not stated"},"egress":{"terms":"downloads 'unlimited and unthrottled' — this is the most generous free egress found in the niche, it just cannot hold data","metered":false},"interface":["rest","rclone","cli"],"interface_detail":"rest","tooling":"documented 33-endpoint REST API (init -> presigned PUT -> confirm), presigned URLs point at r2.cloudflarestorage.com; CLI + desktop app + ShareX; no rclone","chaining":"the upload quota is per visitor token AND per IP, so 100 GB/24h x N tokens (up to the 500 GB/IP ceiling) x N IPs — a throughput engine rather than a store; pairs well as the write side in front of a permanent store","limits":[{"kind":"per-ip-shaping","value":"500 GB / 24h","source":"https://storage.to/docs/api"},{"kind":"per-ip-shaping","value":"100 GB/24h","source":"https://storage.to/docs/api"},{"kind":"per-object-cap","value":"25 GB/file","source":"https://storage.to/docs/api"},{"kind":"retention-clamped","value":"expires in 3-7 days","source":"https://storage.to/docs/api"}],"limits_note":"25 GB/file (100 GB paid); 100 GB/24h per visitor token, 500 GB/24h per IP; 50 files/24h anonymous; expiry 3 days default, 7 max; 60-500 req/min per endpoint","identity_cost":{"kind":"card","detail":"derived from the record's prose, not from an identity field, and no signup was executed: free file expires in 3-7 days; permanent storage starts at $5/mo for 100 GB objects live on Cloudflare R2 behind presigned URLs and are garbage-collected at expiry; anonymous fil","country":null},"reliability_note":"objects live on Cloudflare R2 behind presigned URLs and are garbage-collected at expiry; anonymous files need the returned owner_token to mutate anything and it cannot be recovered","confidence":"reported","confidence_note":"One page read moves it to documented.","evidence":[{"url":"https://storage.to/docs/api","date":"2026-10-21","proved":"'No token: 100 GB / 24 hours (500 GB per IP), files expire after 3 days'; 'Free account token: Unlimited upload bandwidth, no daily file cap'; 'downloads are unlimited and unthrottled'"},{"url":"https://storage.to/premium","date":"2026-10-21","proved":"permanence is paid: Personal $5/mo 100 GB, 'Files never expire'"},{"url":"https://storage.to/b9PYWolbj","date":"2026-10-21","proved":"probe: POST /api/upload/init -> 200 presigned URL at 7291236a05b5feaef8f8a13dc7957e8b.r2.cloudflarestorage.com; PUT -> 200; POST /api/upload/confirm -> 200 {\"file\":{\"url\":\"\",\"expires_at\":\"2026-10-24T14:49:29+00:00\"}} (3-day expiry confirmed live)"}],"verdict":"fails-quota","verified_at":"2026-10-21T00:00:00.000Z","notes":"No permanent free storage: anonymous 100 GB upload / 24h per visitor token (500 GB / 24h per IP), free-account token = unlimited upload bandwidth and no daily file cap, but every free file expires in 3-7 days; permanent storage starts at $5/mo for 100 GB","extras":{"dead_end":{"failure_class":"retention","why":"No permanent free storage: anonymous 100 GB upload / 24h per visitor token (500 GB / 24h per IP), free-account token = unlimited upload bandwidth and no daily file cap, but every free file expires in 3-7 days; permanent storage starts at $5/mo for 100 GB","retry_when":null,"first_recorded":"2026-10-21"}},"binding":"per-object-cap","binding_note":"the per-object cap sets the shard size and therefore the object count; it bounds the total more tightly than any headline quota"},"claims":[{"path":"$.free_tier.stated","kind":"free-quota","num":100,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[0].value","kind":"limit:per-ip-shaping","num":500,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[1].value","kind":"limit:per-ip-shaping","num":100,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[2].value","kind":"limit:per-object-cap","num":25,"unit":"GB","per":null,"currency":null,"usd":null,"fx_date":null,"parse":"ok"},{"path":"$.limits[3].value","kind":"limit:retention-clamped","num":null,"unit":null,"per":null,"currency":null,"usd":null,"fx_date":null,"parse":"unparsed"}],"unknown":[["$.extras.dead_end.retry_when","process"],["$.free_tier.notes","process"],["$.per_object_cap.notes","not-extracted"],["$.retention.notes","not-extracted"]],"history":[],"drift":[]}