Cache: keys() method

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

Note: This feature is available in Web Workers.

The keys() method of the Cache interface returns a Promise that resolves to an array of Request objects representing the keys of the Cache.

The requests are returned in the same order that they were inserted.

Note: Requests with duplicate URLs but different headers can be returned if their responses have the VARY header set on them.


keys(request, options)


request Optional

The Request want to return, if a specific key is desired. This can be a Request object or a URL.

options Optional

An object whose properties control how matching is done in the keys operation. The available options are:


A boolean value that specifies whether the matching process should ignore the query string in the URL. If set to true, the ?value=bar part of would be ignored when performing a match. It defaults to false.


A boolean value that, when set to true, prevents matching operations from validating the Request HTTP method (normally only GET and HEAD are allowed.) It defaults to false.


A boolean value that, when set to true, tells the matching operation not to perform VARY header matching. In other words, if the URL matches you will get a match regardless of whether the Response object has a VARY header. It defaults to false.


A string that represents a specific cache to search within. Note that this option is ignored by Cache.keys().

Return value

A Promise that resolves to an array of Request objects.


js"v1").then((cache) => {
  cache.keys().then((keys) => {
    keys.forEach((request, index, array) => {


Service Workers
# cache-keys

Browser compatibility

BCD tables only load in the browser

See also