Most extensions need access to one or more Chrome Extensions APIs to function. This API reference describes the APIs available for use in extensions and presents example use cases.
Common Extensions API features
An Extensions API consists of a namespace containing methods and properties for doing extensions work, and usually, but not
always, manifest fields for the manifest.json
file. For example, the chrome.action
namespace requires an "action"
object
in the manifest. Many APIs also require permissions in the manifest.
Methods in extension APIs are asynchronous unless stated otherwise. Asynchronous methods return immediately, without waiting for the operation that calls them to finish. Use promises to get the results of these methods. For more information, see Asynchronous methods.
Chrome Extension APIs
- accessibilityFeatures
-
Use the
chrome.accessibilityFeatures
API to manage Chrome's accessibility features. This API relies on the ChromeSetting prototype of the type API for getting and setting individual accessibility features. In order to get feature states the extension must requestaccessibilityFeatures.read
permission. For modifying feature state, the extension needsaccessibilityFeatures.modify
permission. Note thataccessibilityFeatures.modify
does not implyaccessibilityFeatures.read
permission. - action
-
Chrome 88+ MV3+
Use the
chrome.action
API to control the extension's icon in the Google Chrome toolbar. - alarms
-
Use the
chrome.alarms
API to schedule code to run periodically or at a specified time in the future. - audio
-
Chrome 59+ ChromeOS only
The
chrome.audio
API is provided to allow users to get information about and control the audio devices attached to the system. This API is currently only available in kiosk mode for ChromeOS. - bookmarks
-
Use the
chrome.bookmarks
API to create, organize, and otherwise manipulate bookmarks. Also see Override Pages, which you can use to create a custom Bookmark Manager page. - browsingData
-
Use the
chrome.browsingData
API to remove browsing data from a user's local profile. - certificateProvider
-
Chrome 46+ ChromeOS only
Use this API to expose certificates to the platform which can use these certificates for TLS authentications.
- commands
-
Use the commands API to add keyboard shortcuts that trigger actions in your extension, for example, an action to open the browser action or send a command to the extension.
- contentSettings
-
Use the
chrome.contentSettings
API to change settings that control whether websites can use features such as cookies, JavaScript, and plugins. More generally speaking, content settings allow you to customize Chrome's behavior on a per-site basis instead of globally. - contextMenus
-
Use the
chrome.contextMenus
API to add items to Google Chrome's context menu. You can choose what types of objects your context menu additions apply to, such as images, hyperlinks, and pages. - cookies
-
Use the
chrome.cookies
API to query and modify cookies, and to be notified when they change. - debugger
-
The
chrome.debugger
API serves as an alternate transport for Chrome's remote debugging protocol. Usechrome.debugger
to attach to one or more tabs to instrument network interaction, debug JavaScript, mutate the DOM and CSS, etc. Use the DebuggeetabId
to target tabs with sendCommand and route events bytabId
from onEvent callbacks. - declarativeContent
-
Use the
chrome.declarativeContent
API to take actions depending on the content of a page, without requiring permission to read the page's content. - declarativeNetRequest
-
Chrome 84+
The
chrome.declarativeNetRequest
API is used to block or modify network requests by specifying declarative rules. This lets extensions modify network requests without intercepting them and viewing their content, thus providing more privacy. - desktopCapture
-
The Desktop Capture API captures the content of the screen, individual windows, or individual tabs.
- devtools.inspectedWindow
-
Use the
chrome.devtools.inspectedWindow
API to interact with the inspected window: obtain the tab ID for the inspected page, evaluate the code in the context of the inspected window, reload the page, or obtain the list of resources within the page. - devtools.network
-
Use the
chrome.devtools.network
API to retrieve the information about network requests displayed by the Developer Tools in the Network panel. - devtools.panels
-
Use the
chrome.devtools.panels
API to integrate your extension into Developer Tools window UI: create your own panels, access existing panels, and add sidebars. - devtools.recorder
-
Chrome 105+
Use the
chrome.devtools.recorder
API to customize the Recorder panel in DevTools. - dns
-
Dev channel
Use the
chrome.dns
API for dns resolution. - documentScan
-
Chrome 44+ ChromeOS only
Use the
chrome.documentScan
API to discover and retrieve images from attached document scanners. - dom
-
Chrome 88+
Use the
chrome.dom
API to access special DOM APIs for Extensions - downloads
-
Use the
chrome.downloads
API to programmatically initiate, monitor, manipulate, and search for downloads. - enterprise.deviceAttributes
-
Use the
chrome.enterprise.deviceAttributes
API to read device attributes. Note: This API is only available to extensions force-installed by enterprise policy. - enterprise.hardwarePlatform
-
Chrome 71+ Requires policy
Use the
chrome.enterprise.hardwarePlatform
API to get the manufacturer and model of the hardware platform where the browser runs. Note: This API is only available to extensions installed by enterprise policy. - enterprise.networkingAttributes
-
Use the
chrome.enterprise.networkingAttributes
API to read information about your current network. Note: This API is only available to extensions force-installed by enterprise policy. - enterprise.platformKeys
-
ChromeOS only Requires policy
Use the
chrome.enterprise.platformKeys
API to generate keys and install certificates for these keys. The certificates will be managed by the platform and can be used for TLS authentication, network access or by other extension through {@link platformKeys chrome.platformKeys}. - events
-
The
chrome.events
namespace contains common types used by APIs dispatching events to notify you when something interesting happens. - extension
-
The
chrome.extension
API has utilities that can be used by any extension page. It includes support for exchanging messages between an extension and its content scripts or between extensions, as described in detail in Message Passing. - extensionTypes
-
The
chrome.extensionTypes
API contains type declarations for Chrome extensions. - fileBrowserHandler
-
ChromeOS only Foreground only
Use the
chrome.fileBrowserHandler
API to extend the Chrome OS file browser. For example, you can use this API to enable users to upload files to your website. - fileSystemProvider
-
ChromeOS only
Use the
chrome.fileSystemProvider
API to create file systems, that can be accessible from the file manager on Chrome OS. - fontSettings
-
Use the
chrome.fontSettings
API to manage Chrome's font settings. - gcm
-
Use
chrome.gcm
to enable apps and extensions to send and receive messages through Firebase Cloud Messaging (FCM). - history
-
Use the
chrome.history
API to interact with the browser's record of visited pages. You can add, remove, and query for URLs in the browser's history. To override the history page with your own version, see Override Pages. - i18n
-
Use the
chrome.i18n
infrastructure to implement internationalization across your whole app or extension. - identity
-
Use the
chrome.identity
API to get OAuth2 access tokens. - idle
-
Use the
chrome.idle
API to detect when the machine's idle state changes. - input.ime
-
Use the
chrome.input.ime
API to implement a custom IME for Chrome OS. This allows your extension to handle keystrokes, set the composition, and manage the candidate window. - instanceID
-
Chrome 44+
Use
chrome.instanceID
to access the Instance ID service. - loginState
-
Chrome 78+ ChromeOS only
Use the
chrome.loginState
API to read and monitor the login state. - management
-
The
chrome.management
API provides ways to manage the list of extensions/apps that are installed and running. It is particularly useful for extensions that override the built-in New Tab page. - notifications
-
Use the
chrome.notifications
API to create rich notifications using templates and show these notifications to users in the system tray. - offscreen
-
Chrome 109+ MV3+
Use the
offscreen
API to create and manage offscreen documents. - omnibox
-
The omnibox API allows you to register a keyword with Google Chrome's address bar, which is also known as the omnibox.
- pageCapture
-
Use the
chrome.pageCapture
API to save a tab as MHTML. - permissions
-
Use the
chrome.permissions
API to request declared optional permissions at run time rather than install time, so users understand why the permissions are needed and grant only those that are necessary. - platformKeys
-
Chrome 45+ ChromeOS only
Use the
chrome.platformKeys
API to access client certificates managed by the platform. If the user or policy grants the permission, an extension can use such a certficate in its custom authentication protocol. E.g. this allows usage of platform managed certificates in third party VPNs (see {@link vpnProvider chrome.vpnProvider}). - power
-
Use the
chrome.power
API to override the system's power management features. - printerProvider
-
Chrome 44+
The
chrome.printerProvider
API exposes events used by print manager to query printers controlled by extensions, to query their capabilities and to submit print jobs to these printers. - printing
-
Chrome 81+ ChromeOS only
Use the
chrome.printing
API to send print jobs to printers installed on Chromebook. - printingMetrics
-
Use the
chrome.printingMetrics
API to fetch data about printing usage. - privacy
-
Use the
chrome.privacy
API to control usage of the features in Chrome that can affect a user's privacy. This API relies on the ChromeSetting prototype of the type API for getting and setting Chrome's configuration. - processes
-
Dev channel
Use the
chrome.processes
API to interact with the browser's processes. - proxy
-
Use the
chrome.proxy
API to manage Chrome's proxy settings. This API relies on the ChromeSetting prototype of the type API for getting and setting the proxy configuration. - readingList
-
Chrome 120+ MV3+
Use the
chrome.readingList
API to read from and modify the items in the Reading List. - runtime
-
Use the
chrome.runtime
API to retrieve the service worker, return details about the manifest, and listen for and respond to events in the extension lifecycle. You can also use this API to convert the relative path of URLs to fully-qualified URLs. - scripting
-
Chrome 88+ MV3+
Use the
chrome.scripting
API to execute script in different contexts