storage.to
storage.to · Storage · 1 record · JSON
storage.to Storage
fails: quotacardcardRper-object-cap
| Free tier | 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 |
|---|---|
| Price | none stated |
| Per-object cap | 25 GB/file (25000000000 bytes) |
| Retention | 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 (7 days) |
| Egress | downloads 'unlimited and unthrottled' — this is the most generous free egress found in the niche, it just cannot hold data |
| Identity | card 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 |
| Limits |
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 |
| Binding | per-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 |
| Interface | rest, rclone, cli rest |
| Tooling | documented 33-endpoint REST API (init -> presigned PUT -> confirm), presigned URLs point at r2.cloudflarestorage.com; CLI + desktop app + ShareX; no rclone |
| Composes with | 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 |
| Reliability | 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 |
| 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 |
| Evidence rung | reported One page read moves it to documented. |
| Checked | 2026-10-21 (inherited); stale on 2026-11-04 |
| Parsed numbers |
|
Evidence (3)
| date | source | what it proved |
|---|---|---|
| 2026-10-21 | storage.to/docs/api | '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' |
| 2026-10-21 | storage.to/premium | permanence is paid: Personal $5/mo 100 GB, 'Files never expire' |
| 2026-10-21 | storage.to/b9PYWolbj | 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) |
More fields (1)
{
"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"
}
}Unknown or withheld values (4)
$.extras.dead_end.retry_whenprocess$.free_tier.notesprocess$.per_object_cap.notesnot-extracted$.retention.notesnot-extracted