Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

This method has been deprecated. Use runtime.sendMessage instead.

Sends a single request to other listeners within the extension. Similar to runtime.connect, but only sends a single request with an optional response. The extension.onRequest event is fired in each page of the extension.


  extensionId,             // optional string
  request,                 // any
  function(response) {...} // optional function

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


string. The extension ID of the extension you want to connect to. If omitted, default is your own extension.
function. The function is passed the following arguments:
any. The JSON response object sent by the handler of the request. If an error occurs while connecting to the extension, the callback will be called with no arguments and runtime.lastError will be set to the error message.

Browser compatibility

BCD tables only load in the browser


This API is based on Chromium's chrome.extension API. This documentation is derived from extension.json in the Chromium code.

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