Summarizer API
Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.
The Summarizer API summarizes a given body of text via a browser's internal AI model.
Concepts and usage
Writing a summary of a larger body of text is a common writing task, and one that AI is well-suited to. Typical use cases include:
- Providing a summary of a full article so the reader can judge whether to read the whole thing.
- Summarizing a meeting transcript so those joining the meeting late can get up to speed with what they've missed.
- Summarizing a set of product reviews to quickly communicate overall sentiment.
The Summarizer API provides an asynchronous (Promise
-based) mechanism for a website to feed a body of text into the browser's own internal AI model and request that it returns a summary of the text based on specified options.
This is done using the functionality made available by the Summarizer
interface, in a two-step process:
- Create a
Summarizer
object instance using theSummarizer.create()
static method, specifying options for what kind of summary you want written. Options include length, type (for example, "tl;dr" or key points), format (plain text or markdown), and input and output languages.Note: If you want to check whether the browser AI model is able to support your preferences, you can do so with the
Summarizer.availability()
static method. - Run the
Summarizer.summarize()
instance method to request the summary.
After a Summarizer
instance has been created, you can remove it again using the Summarizer.destroy()
instance method. You can also cancel a pending create()
or summarize()
operation using an AbortController
.
See Using the Summarizer API for a walkthrough of how the API works.
Interfaces
Summarizer
Experimental-
Contains all the functionality for the Summarizer API, including checking AI model availability, creating a new
Summarizer
instance, using it to generate a new summary, and more.
HTTP headers
Permissions-Policy
; thesummarizer
directive-
Controls access to the Summarizer API. Where a policy specifically disallows the use of the Summarizer API, any attempts to call the API's methods will fail with a
NotAllowedError
DOMException
.
Security considerations
The specification requires that a user has recently interacted with the page when creating Summarizer
objects (transient user activation is required).
In addition, the specification controls access to the API via summarizer
Permissions-Policy
directives.
Examples
For a full example, see Using the Summarizer API.
Specifications
Specification |
---|
Writing Assistance APIs # summarizer-api |
Browser compatibility
See also
- Summarize with built-in AI on developer.chrome.com (2025)
- Web AI demos on chrome.dev