The pause() function of the downloads API pauses a download.

If the request is successful, the download will be put in in a paused state; if not, runtime.lastError will be set with an appropriate error message.

The pause() call will fail if the download is not active: for example, because it has finished downloading. You can check its download state using the downloads.DownloadItem state property, and the error will be available in runtime.lastError.


  downloadId,      // integer
  function() {...} // optional callback function

This API is also available as browser.downloads.pause() in a version that returns a promise.


An integer representing the id of the download to pause.
function() {}Optional
An optional callback function. This function will be called once the pause call has been initiated or if it fails. It will be passed no parameters.

Browser compatibility

Chrome Edge Firefox Firefox for Android Opera
Basic support Yes No 48.0 48.0 33


The following snippet shows a button that when clicked invokes a call. Once the download starts, another button is given an event handler so that it pauses the download when clicked.

var downloadBtn = document.querySelector('.download');
var pauseBtn = document.querySelector('.pause');

downloadBtn.onclick = function() {{ url : ''},

  function callback(downloadId) {
    if(chrome.runtime.lastError) {
    } else {
      pauseBtn.onclick = function() {
        chrome.downloads.pause(downloadId, function() {
          console.log('Download paused');


This API is based on Chromium's chrome.downloads API.

Microsoft Edge compatibility data is supplied by Microsoft Corporation and is included here under the Creative Commons Attribution 3.0 United States License.

Document Tags and Contributors

 Contributors to this page: Makyen, wbamberg, chrisdavidmills
 Last updated by: Makyen,