Storage Buckets support
Published Updated
The Storage Buckets API lets a page create multiple, separately named storage
buckets through navigator.storageBuckets (a StorageBucketManager), each with its
own IndexedDB databases, Cache Storage, and eviction policy — instead of every API
sharing one origin-wide storage pool.
Browser & ecosystem support
Section titled “Browser & ecosystem support”- Legend
- Yes
- Partial
- Flag
- No
- Unknown
| Browser / Platform | Support | Versions | Confidence | Source | Notes |
|---|---|---|---|---|---|
| Chrome (Desktop) | Yes | 122 | low | source | 12 |
| Chrome (Android) | Yes | 122 | low | source | 3 |
| Edge (Desktop) | Yes | 122 | low | source | 4 |
| Firefox (Desktop) | No | — | low | source | 5 |
| Safari (macOS) | No | — | low | source | 6 |
- StorageBucketManager (navigator.storageBuckets) shipped in Chrome 122, per MDN browser-compat-data.
- This entry has no MDN prose page yet; verified against caniuse's per-browser support table for this feature.
- Mirrors Chrome Desktop support per MDN browser-compat-data.
- Mirrors Chromium support per MDN browser-compat-data.
- Not implemented; tracked as an open Firefox bug per MDN browser-compat-data.
- Not implemented, per MDN browser-compat-data.
How to use it
Section titled “How to use it”Open (or create) a named bucket, then use its own indexedDB and caches the same way
you would use the origin-wide versions:
const bucket = await navigator.storageBuckets.open('media-cache', { persisted: true,});const cache = await bucket.caches.open('videos');await cache.put('/clip.mp4', await fetch('/clip.mp4'));How to detect it at runtime
Section titled “How to detect it at runtime”Feature-detect storageBuckets on navigator before calling it, and fall back to the
origin’s default indexedDB/caches (one shared pool) when it is unavailable:
async function openMediaCache() { if (!('storageBuckets' in navigator)) { // Unsupported browser: fall back to the default, shared storage pool. return caches.open('videos'); } const bucket = await navigator.storageBuckets.open('media-cache'); return bucket.caches.open('videos');}Practical checklist
Section titled “Practical checklist”- Firefox and Safari do not implement
navigator.storageBuckets— per the table above, support is Chromium-only, so always keep a default-storage fallback. open()accepts apersistedoption (defaults tofalse); a bucket created withoutpersisted: truecan still be cleared under storage pressure independently of other buckets, per the spec’sStorageBucketOptionsdictionary.navigator.storageBuckets.delete()removes the bucket from the bucket map and marks it removed; per the spec, cleanup of the bucket’s own IndexedDB/Cache/file-system data is left to each storage endpoint, so don’t assumedelete()alone frees that space synchronously.
Where to go next
Section titled “Where to go next”← Back to the Compatibility explorer.