Quota
The free tier includes 1 GiB of file storage. Even when you're over the limit, you can still read and delete files.
| Item | Free | Pro |
|---|---|---|
| Storage | 1 GiB | 10 GiB |
| Object count | Unlimited | Unlimited |
| Key length | 1024 bytes | 1024 bytes |
| Objects per list page | 100 by default, 1,000 max | Same |
When you exceed the quota
Only writes are blocked.
| Operation | Behavior when over quota |
|---|---|
put | 507 quota_exceeded |
presign(PUT) | 507 quota_exceeded |
get, head, list, delete, presign(GET) | Still available |
Even when storage is full, you need to be able to read and delete files in order to free up space.
try {
await env.storage.put(key, body);
} catch (e) {
if ((e as { status?: number }).status === 507) {
return new Response("Storage is full", { status: 507 });
}
throw e;
}Check your current usage
runlot storage status
runlot storage status --jsonrunlot usageThe Files tab in the dashboard shows the same values.
Notifications
When you reach 90% of your quota, we send a storage_near_quota notification to the organization's admin. The same notification is sent at most once every 24 hours. You can also see it on the organization screen in the dashboard.