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

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.


cache.keys(request, {options}).then(function(keys) {
  // do something with your array of requests


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:

  • ignoreSearch: 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.
  • ignoreMethod: 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.
  • ignoreVary: 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.
  • cacheName: A DOMString 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 Cache keys.

Examples'v1').then(function(cache) {
  cache.keys().then(function(keys) {
    keys.forEach(function(request, index, array) {


Service Workers 1
# cache-keys

Browser compatibility

BCD tables only load in the browser

See also