StorageManager.estimate()

Secure context

This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

The estimate() method of the StorageManager interface asks the Storage Manager for how much storage the current origin takes up (usage), and how much space is available (quota).

This method operates asynchronously, so it returns a Promise which resolves once the information is available. The promise's fulfillment handler is called with a StorageEstimate containing the usage and quota data.

Syntax

const estimatePromise = StorageManager.estimate();

Parameters

None.

Return value

A Promise that resolves to an object which conforms to the StorageEstimate dictionary. This dictionary contains estimates of how much space is available to the origin in StorageEstimate.quota, as well as how much is currently used in StorageEstimate.usage.

The returned values are not exact; between compression, deduplication, and obfuscation for security reasons, they will be imprecise.

You may find that the quota varies from origin to origin. This variance is based on factors such as:

  • How often the user visits
  • Public site popularity data
  • User engagement signals like bookmarking, adding to homescreen, or accepting push notifications

Example

In this example, we obtain the usage estimates and present the percentage of storage capacity currently used to the user.

HTML content

<label>
  You’re currently using about <output id="percent">
  </output>% of your available storage.
</label>

JavaScript content

navigator.storage.estimate().then(function(estimate) {
  document.getElementById("percent").value =
      (estimate.usage / estimate.quota * 100).toFixed(2);
});

Result

Specifications

Specification
Storage Standard (Storage)
# ref-for-dom-storagemanager-estimate

Browser compatibility

BCD tables only load in the browser

See also