bookmarks.update() updates the title and/or URL of a bookmark, or the name of a bookmark folder.

Warning: If your extension attempts to update a bookmark in the bookmarks tree root node, the call will raise an error with the message: "The bookmark root cannot be modified" and the bookmark won't be updated.

This is an asynchronous function that returns a Promise.


let updating = browser.bookmarks.update(
  id,                    // string
  changes                // object



A string specifying the ID of the bookmark or bookmark folder to update.


An object specifying the changes to apply, with some combination of the following fields. Any items not specified aren't changed in the referenced bookmark or folder:

title Optional

A string containing the new title of the bookmark, or the new name of the folder if id refers to a folder.

url Optional

A string providing a new URL for the bookmark.

Return value

A Promise that will be fulfilled with a single bookmarks.BookmarkTreeNode object, representing the updated bookmark. If the bookmark item corresponding to the id parameter can't be found, the promise is rejected.


This example renames all folders named "MDN" to "Mozilla Developer Network (MDN)".

function onFulfilled(bookmarkItem) {

function onRejected(error) {
  console.error(`Error: ${error}`);

function updateFolders(items) {
  for (const item of items) {
    // only folders, so skip items with a `url`
    if (!item.url) {
        .update(, {
          title: "Mozilla Developer Network (MDN)",
        .then(onFulfilled, onRejected);
}{ title: "MDN" }).then(updateFolders, onRejected);

Browser compatibility

BCD tables only load in the browser

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