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 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 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 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) {


Specification Status Comment
Service Workers
The definition of 'Cache: keys' in that specification.
Working Draft Initial definition.

Browser compatibility

BCD tables only load in the browser

See also