Description
Use the chrome.readingList API to read from and modify the items in the Reading List.
Permissions
readingListTo use the Reading List API, add the "readingList" permission in the extension manifest file:
manifest.json:
{
  "name": "My reading list extension",
  ...
  "permissions": [
    "readingList"
  ]
}
Availability
Chrome features a reading list located on the side panel. It lets users save web pages to read later or when offline. Use the Reading List API to retrieve existing items and add or remove items from the list.
 
  Concepts and usage
Item ordering
Items in the reading list are not in any guaranteed order.
Item uniqueness
Items are keyed by URL. This includes the hash and query string.
Use cases
The following sections demonstrate some common use cases for the Reading List API. See Extension samples for complete extension examples.
Add an item
To add an item to the reading list, use chrome.readingList.addEntry():
chrome.readingList.addEntry({
  title: "New to the web platform in September | web.dev",
  url: "https://developer.chrome.com/",
  hasBeenRead: false
});
Display items
To display items from the reading list, use the chrome.readingList.query() method to retrieve them.
method.
const items = await chrome.readingList.query({});
for (const item of items) {
  // Do something do display the item
}
Mark an item as read
You can use chrome.readingList.updateEntry() to update the title, URL, and read status. The following code marks an item as read:
chrome.readingList.updateEntry({
  url: "https://developer.chrome.com/",
  hasBeenRead: true
});
Remove an item
To remove an item, use chrome.readingList.removeEntry():
chrome.readingList.removeEntry({
  url: "https://developer.chrome.com/"
});
Extension samples
For more Reading List API extensions demos, see the Reading List API sample.
Types
AddEntryOptions
Properties
- 
    hasBeenReadboolean Will be trueif the entry has been read.
- 
    titlestring The title of the entry. 
- 
    urlstring The url of the entry. 
QueryInfo
Properties
- 
    hasBeenReadboolean optional Indicates whether to search for read ( true) or unread (false) items.
- 
    titlestring optional A title to search for. 
- 
    urlstring optional A url to search for. 
ReadingListEntry
Properties
- 
    creationTimenumber The time the entry was created. Recorded in milliseconds since Jan 1, 1970. 
- 
    hasBeenReadboolean Will be trueif the entry has been read.
- 
    lastUpdateTimenumber The last time the entry was updated. This value is in milliseconds since Jan 1, 1970. 
- 
    titlestring The title of the entry. 
- 
    urlstring The url of the entry. 
RemoveOptions
Properties
- 
    urlstring The url to remove. 
UpdateEntryOptions
Properties
- 
    hasBeenReadboolean optional The updated read status. The existing status remains if a value isn't provided. 
- 
    titlestring optional The new title. The existing tile remains if a value isn't provided. 
- 
    urlstring The url that will be updated. 
Methods
addEntry()
chrome.readingList.addEntry(
entry: AddEntryOptions,
): Promise<void>
Adds an entry to the reading list if it does not exist.
Parameters
- 
    entryThe entry to add to the reading list. 
Returns
- 
            Promise<void> 
query()
chrome.readingList.query(
info: QueryInfo,
): Promise<ReadingListEntry[]>
Retrieves all entries that match the QueryInfo properties. Properties that are not provided will not be matched.
Parameters
- 
    infoThe properties to search for. 
Returns
- 
            Promise<ReadingListEntry[]> 
removeEntry()
chrome.readingList.removeEntry(
info: RemoveOptions,
): Promise<void>
Removes an entry from the reading list if it exists.
Parameters
- 
    infoThe entry to remove from the reading list. 
Returns
- 
            Promise<void> 
updateEntry()
chrome.readingList.updateEntry(
info: UpdateEntryOptions,
): Promise<void>
Updates a reading list entry if it exists.
Parameters
- 
    infoThe entry to update. 
Returns
- 
            Promise<void> 
Events
onEntryAdded
chrome.readingList.onEntryAdded.addListener(
callback: function,
)
Triggered when a ReadingListEntry is added to the reading list.
Parameters
- 
    callbackfunction The callbackparameter looks like:(entry: ReadingListEntry) => void - 
    entry
 
- 
    
onEntryRemoved
chrome.readingList.onEntryRemoved.addListener(
callback: function,
)
Triggered when a ReadingListEntry is removed from the reading list.
Parameters
- 
    callbackfunction The callbackparameter looks like:(entry: ReadingListEntry) => void - 
    entry
 
- 
    
onEntryUpdated
chrome.readingList.onEntryUpdated.addListener(
callback: function,
)
Triggered when a ReadingListEntry is updated in the reading list.
Parameters
- 
    callbackfunction The callbackparameter looks like:(entry: ReadingListEntry) => void - 
    entry
 
-