Chrome extension tools

Manifest V3 Validator for Chrome Extensions

Paste a manifest.json and see every syntax error by line, every Manifest V3 rule it breaks, the install warnings users will get and how hard store review will look.

  • Free foreverNo trial, no paywall, no usage limits.
  • No sign-upOpen the page and start. We never ask for an email to use a tool.
  • PrivateEverything runs in your browser. Your input is never uploaded or stored on our servers.
  • Works offlineOnce the page has loaded, the tool keeps working without a connection.
A Manifest V3 file full of classic mistakes, to see how each one is reported.

manifest.json

Paste your manifest, drop the file here or open it (up to 5 MB). It's checked as you type, in your browser.
Clear

Results

Errors stop Chrome or the Chrome Web Store; warnings load but deserve a fix; notes are good to know. Click the target icon to jump to a line.

Paste a manifest.json to check it

You'll get JSON errors by line, every Manifest V3 rule it breaks, the install warnings users will see and your store review risk.

Results update as you type. Nothing leaves your browser.

Need an extension built properly? Talk to our team

Quick answer

A Manifest V3 validator checks a Chrome extension's manifest.json against the rules Chrome and the Chrome Web Store enforce. Paste yours into Playxoft's free Manifest V3 Validator for JSON errors with line and column, MV3 mistakes such as browser_action, background scripts or a string content_security_policy, invalid match patterns, the exact install warnings users will see, and a store review risk summary. Everything runs in your browser.

  • Errors by line and column
  • Manifest V3 rules
  • Match pattern checks
  • Install warning preview
  • Store review risk
  • Copy the report

How to use the Manifest V3 Validator

  1. 1Paste your manifest.json, drop the file on the editor, or click Open.
  2. 2Fix the errors first: each one shows its line and column, and clicking it jumps there in the editor.
  3. 3Review the warnings: Chrome loads the extension, but something is off or risky.
  4. 4Check Install warnings to see exactly what Chrome will ask users to accept.
  5. 5Read the Store review risk summary, then copy the report for your team or pull request.

Why does Chrome say "Manifest is not valid JSON"?

Chrome reads manifest.json with its own JSON parser. It is stricter than JavaScript in some ways and looser in one:

  • Trailing commas are rejected. "version": "1.0", before a closing } stops the extension from loading.
  • Comments are accepted. Chrome allows // and /* */ comments, but JSON.parse, many build tools and linters reject them, so the validator warns.
  • Keys and strings need double quotes. Single quotes and unquoted keys are errors.
{
  "manifest_version": 3,
  "name": "My extension",
  "version": "1.0",
}

The validator reports the comma after "1.0" on line 4 and tells you to remove it. For general JSON problems, the JSON validator explains every syntax error in detail.

What does the Manifest V3 validator check?

Errors are things Chrome refuses, the Chrome Web Store rejects, or Chrome silently ignores so a feature never works:

CheckWhat happens in Chrome
manifest_version 2No longer runs anywhere
browser_action, page_actionIgnored in Manifest V3; use action
background.scripts or pageIgnored; use one service_worker file
Host patterns in permissionsIgnored; move them to host_permissions
web_accessible_resources as stringsInvalid; each entry is an object
content_security_policy as a stringInvalid; it's an object
'unsafe-eval' or a CDN in extension_pagesInstall fails
Bad match pattern in a content scriptInstall fails
Version 1.0-beta, 1.032 or 0.0Install fails

Warnings cover unknown keys and permissions (with "did you mean" suggestions), permissions that can't be optional, missing icon sizes, broad host access, invalid shortcuts and description length.

How do match patterns work in Chrome extensions?

A match pattern is <scheme>://<host><path>, or the special value <all_urls>. The scheme is http, https, file or * (which means http and https). A * in the host must come first and be followed by a dot, or stand alone.

PatternValid?Why
https://*.example.com/*Yesexample.com and every subdomain
*://mail.google.com/*Yeshttp and https
http://localhost/*YesAny port, unless one is given
file:///docs/*YesNeeds the user to allow file access
https://example.comNoMissing the path, add /*
https://google.*/*NoTop-level wildcards aren't supported
ftp://example.com/*NoUnsupported scheme

Chrome ignores the path in host permissions, and web_accessible_resources patterns must end in /*. See Chrome's match pattern guide. To test patterns against real URLs in bulk, the regex tester helps.

What makes Chrome Web Store review take longer?

Google says most reviews finish within a few days but can take up to a few weeks, and names what slows them down:

  • Broad host permissions. *://*/*, https://*/* and <all_urls> give access to everything a user does on the web.
  • Sensitive permissions. Some, like tabs and downloads, grant data access directly; others, like cookies and webRequest, do with host permissions. Reviewers check each is necessary.
  • Lots of code, or code that's hard to read. Obfuscation is not allowed; minification is, but makes review harder.

The validator's risk summary flags these, and credits what helps: activeTab, optional permissions and narrow host lists. If the extension handles user data, you also need a privacy policy; the Chrome extension privacy policy generator writes one. Details are in Google's review process page.

Frequently asked questions

The usual causes are a trailing comma after the last item, single quotes instead of double quotes, an unquoted key, or a missing comma between entries. Chrome accepts comments in manifest.json but not trailing commas. The validator shows the line and column of each problem.
Chrome itself accepts // and /* */ comments in manifest.json, because it reads the file with its own JSON parser. Standard JSON doesn't allow them, so JSON.parse, many build tools and linters will reject the file. Keep notes in a README if other tools read your manifest.
No. Chrome 138 was the last version that could run Manifest V2 extensions, and from Chrome 139 they no longer work even with the enterprise policy. The Chrome Web Store removed the remaining Manifest V2 extensions on August 31, 2026. Convert yours to Manifest V3.
Manifest V3 replaced the list of file paths with a list of objects. Each object needs a resources array plus a matches array of match patterns ending in /* or an extension_ids array, so you choose who can load the files.
Its host permissions or content script matches cover every site, for example <all_urls>, *://*/* or https://*.com/*, or it requests a permission that implies all-site access, such as debugger, pageCapture, tabCapture or proxy, or it has a devtools_page. Narrow the patterns, use activeTab, or make the access optional.
Google says most reviews are completed within a few days but can take up to a few weeks. Broad host permissions, sensitive permissions, large or hard-to-read code, new developers and new extensions can all make review take longer.
No. Parsing, validation, the warning preview and the risk summary all run in your browser, and nothing you paste is sent or stored.

Last updated by the Playxoft engineering team.

From developers who publish Chrome extensions

Want your extension approved the first time?

Chrome Web Store reviews reject extensions for broad permissions, missing privacy disclosures and remote code. We design, build and publish Manifest V3 extensions that pass review and stay fast. Tell us what yours should do and get a free consultation.

More free tools

See all tools

Chrome Extension Manifest Generator

New

Build a Manifest V3 manifest.json, preview install warnings and download a starter project.

Open tool

MV2 to MV3 Converter

New

Convert a Manifest V2 manifest.json to Manifest V3, with a diff and a code checklist.

Open tool

Privacy Policy Generator

New

Draft a privacy policy for your app, website, extension or game, with GDPR and SDK clauses.

Open tool

Privacy Policy Generator for Apps

New

Write the privacy policy the App Store and Google Play require, with your SDKs disclosed.

Open tool

Privacy Policy Generator for Websites

New

Create a website privacy policy covering forms, cookies, analytics, ads and embedded content.

Open tool

Terms and Conditions Generator

New

Draft terms and conditions for your website, app or SaaS: accounts, payments, content and liability.

Open tool