The match() method of the BackgroundFetchRegistration interface returns the first matching BackgroundFetchRecord.


let record = BackgroundFetchRegistration.match(request, options);


The Request for which you are attempting to find records. This can be a Request object or a URL.
options Optional
An object that sets options for the match operation. The available options are:
A Boolean that specifies whether to ignore the query string in the URL.  For example, if set to true the ?value=bar part of would be ignored when performing a match. It defaults to false.
A Boolean. When true, prevents matching operations from validating the Request http method. If false (the default) only GET and HEAD are allowed.
A Boolean. When true indicates that the VARY header should be ignored. It defaults to false.

Return value

A Promise that resolves with the first BackgroundFetchRecord that matches the request or undefined if no match is found.

Note: BackgroundFetchRegistration.match() is basically identical to BackgroundFetchRegistration.matchAll(), except that rather than resolving with an array of all matching records, it resolves with the first matching record only.


A DOMException indicating that you called match() when there are no fetches in progress. This state will be reflected by BackgroundFetchRegistration.recordsAvailable being set to false


In this example we look for a record with the url "/ep-5.mp3". If a BackgroundFetchRecord is found then we can return some information about it.

bgFetch.match('/ep-5.mp3').then(async (record) => {
  if (!record) {
    console.log('No record found');

  console.log(`Here's the request`, record.request);
  const response = await record.responseReady;
  console.log(`And here's the response`, response);


Specification Status Comment
Background Fetch
The definition of 'BackgroundFetchRegistration.match' in that specification.
Draft Initial definition.

Browser compatibility

BCD tables only load in the browser