How to find a Chrome extension ID
Where a Chrome extension ID lives, why it is always 32 characters using only the letters a to p, and the reliable ways to read one out of a store link.
The format first
A Chrome extension ID is exactly 32 characters long, and it uses only the lowercase letters a through p. No digits, no other letters, no hyphens.
Examples of real IDs:
fmkadmapgofadopljbjfkapdkoienihi— React Developer Toolsdngmlblcodfobpdpecaadgfbcggfjfnm— MetaMaskeimadpbcbfnmbkopoojfekhnkhdbieeh— Dark Reader
The restricted alphabet is not a style choice. Chrome maps a 128-bit number into base-16 letters, and only a–p fall inside that range. A 32-character string containing q, z or a digit is therefore not an extension ID, however plausible it looks. That is why a wrong ID usually fails instantly rather than half-working.
Method 1: read it off a Chrome Web Store link
The ID is always the last path segment of a store URL. Open the extension's page and the address bar shows something like:
https://chromewebstore.google.com/detail/<name>/<id>
Copy everything after the second slash following detail/. Two things about that address bar are worth knowing:
- The name segment is a slug for display only. It can change, and it can even be an empty string. Ignore it and read the 32-character segment.
- There is also a shorter form,
/detail/<id>, with no name at all. It works and resolves to the same page.
The Extension ID Finder does this parsing for you and handles query strings, fragments and surrounding whitespace.
Method 2: from an installed extension
For something already in your browser:
- Go to
chrome://extensions. Each card has an ID field — copy it from there. This is the most direct source and does not depend on the store at all. - Or open
chrome://extensions, enable Developer mode, and useInspect views on a service worker or extension page: the URL in the address bar begins with the extension ID.
Method 3: from a file
If you already have the package, the ID is in manifest.json. There is no"key" in an ordinary published manifest to read it from, but two other sources work:
- The extension's own pages. Any
chrome-extension://URL begins with the ID, so copy the prefix. - With developer mode on,
chrome://extensionsshows the ID for the unpacked directory you loaded.
If you want the manifest itself, the Manifest Viewer reads it out of a CRX or ZIP in your browser.
The older chrome.google.com links
You will still meet links shaped likehttps://chrome.google.com/webstore/detail/<name>/<id>. That host is still live and redirects to the current store rather than erroring, and the ID sits in exactly the same place. Tools that only accept the new host will still work once the redirect happens, but anything parsing a pasted link should accept both.
Why bother with the ID at all
- It is the download key. Google's extension endpoint takes an ID and returns the package. See the Chrome Extension Downloader.
- It is stable. The name slug can change; the ID cannot. A link that mentions a URL of this extension will keep identifying the same publisher.
- It scopes permissions. Host permissions are granted per extension, so the ID is what ties a set of site permissions to one publisher.
When an ID does not work
A well-formed ID can still be one of several things, and no local tool can tell them apart without asking Google:
- an extension that exists but is not published on the Chrome Web Store;
- a published extension that Google no longer serves packages for, including some still built on Manifest V2;
- an ID that was never real, typed or copied incorrectly.
All three produce the same thing locally: a valid 32-character string that passes a format check. Only a request to Google tells them apart, and thedownloader reports the request without pretending to know the outcome.
Tools for this
Extension ID Finder
Extract the extension ID from any Chrome Web Store link.
Chrome Extension Downloader
Turn a Chrome Web Store link or extension ID into a CRX download request.
Chrome Extension Inspector
Get a readable summary of what an extension declares and how it runs.
Runs locally