How to Publish an Extension to Microsoft Edge Add-ons (2026)
Publish an edge extension on Microsoft Edge Add-ons: Partner Center developer account, MV3 zip, listing assets, certification, updates, and API automation.

You already ship a Manifest V3 Chromium extension. The next step to reach Microsoft Edge users is to publish an edge extension on the Microsoft Edge Add-ons store (the edge extension store). That pipeline runs in Partner Center, separate from the Chrome Web Store even when the zip is nearly identical.
Search Console already sends turbostarter.dev hundreds of impressions for Edge Add-ons queries, mostly to our Edge publishing docs. This post is the end-to-end walkthrough those docs complement. If you are shipping web, mobile, and extension from one monorepo, pair it with cross-platform SaaS architecture and versioning across surfaces.
Short answer
To publish an edge extension, register as a Microsoft Edge extension developer in Partner Center (no registration fee per Microsoft), create a .zip with manifest.json at the root, complete Availability, Properties, Privacy, and Store listings, add Notes for certification, then click Publish. Certification can take up to seven business days after submission (publish guide). After the first manual submission, automate package uploads with the Edge Add-ons REST API (API key + Client ID on v1.1).
TL;DR checklist
| Step | Action |
|---|---|
| 1 | Microsoft account (MSA) or GitHub sign-in for Partner Center |
| 2 | Enroll in the Microsoft Edge program (individual or company) |
| 3 | Wait for enrollment verification email |
| 4 | Build MV3 zip; remove update_url; rebrand Chrome-only naming if needed |
| 5 | Partner Center: Create new extension and upload zip |
| 6 | Availability (Public/Hidden, markets), Properties, Privacy |
| 7 | Store listing per language (description, 300×300 logo, screenshots) |
| 8 | Submit with certification notes; pass review (up to 7 business days) |
| 9 | Optional: enable Publish API and wire CI (wxt submit or curl) |
Who this guide is for
You have a working Chromium extension (often already on the Chrome Web Store) and you want it discoverable on microsoft edge add-ons or distributed via a hidden listing URL for beta testers. You do not need a separate backend tutorial here, though production extensions almost always call an API. TurboStarter's extension kit docs cover auth and deployment; this article focuses on Microsoft's publishing pipeline.
| You need… | Start here |
|---|---|
| Kit-specific zip + GitHub Actions wiring | Publish to Edge Add-ons |
| Chrome or Firefox first | Chrome Web Store guide, Firefox Add-ons |
| Extension auth patterns | Extension auth overview |
| Which TurboStarter kit includes an extension | Which kit to choose |
Microsoft Edge Add-ons developer account (Partner Center)
Registration fee and account types
Microsoft states clearly: There is no registration fee for submitting extensions to the Microsoft Edge program (create dev account).
You enroll through Partner Center with a Microsoft account (MSA) (Outlook.com, Live.com, or Hotmail.com). GitHub sign-in is also supported; Partner Center can create an MSA for you (create dev account). Work or school accounts alone are not supported for initial registration; you link Microsoft Entra tenants later for team access.
In the Edge Developer Account Registration form you choose:
| Account type | Best for | Verification |
|---|---|---|
| Individual | Solo developers, unincorporated groups | Shorter; publisher display name availability |
| Company | Registered business name on the listing | Longer; company approver contact; may take from a few days to a few weeks (create dev account) |
Important: Account country/region and account type cannot be changed after enrollment. Company accounts cannot switch to individual accounts (create dev account).
Verification and publisher display name
After you accept the developer agreement and click Finish, Microsoft verifies enrollment and emails you when the account is ready (create dev account). Company accounts may need legal documents under Account settings | Legal info.
Publisher display name (company name) is shown on the edge add-ons store listing, max 50 characters, and must be available and yours to use (create dev account).
Do you need a company account?
No. Individuals publish on microsoft edge add-ons every day. Choose Company only when you must list a registered legal business name and can complete approver verification.
Prepare your extension package
Manifest V3 and zip layout
Edge supports the same Chromium extension model as Chrome. Your uploaded .zip must include the manifest and all packaged assets (publish extension).
Before upload, confirm manifest fields that flow into the store listing:
| Field | Store impact |
|---|---|
name | Extension name on listing (change via new package upload) |
description | Long description seed; prefer a dedicated short description when possible |
version | Must increase on every package upload |
icons | Install UI and packaging |
Microsoft recommends a short description in the manifest so the listing does not repeat the first lines of the long description (publish extension).
Example MV3 manifest skeleton:
{
"manifest_version": 3,
"name": "My SaaS Assistant",
"version": "1.0.0",
"description": "Connects your browser to your TurboStarter backend.",
"short_name": "Assistant",
"action": {
"default_popup": "popup.html",
"default_icon": {
"128": "icons/icon-128.png"
}
},
"permissions": ["storage"],
"host_permissions": ["https://api.example.com/*"]
}Zip only the build output folder contents with manifest.json at the root:
cd apps/extension/.output/chrome-mv3
zip -r ../edge-submission.zip . -x "*.map"If you use WXT, run your production build first. TurboStarter maps package.json version into the manifest on build (extension versioning recipe).
Port a Chrome Web Store extension to Edge
Most Chrome MV3 extensions port with minimal edits (port Chrome extension):
- Compare APIs you use with Microsoft Edge API support.
- Remove
update_urlfrommanifest.json(Chrome Web Store update endpoint). - Replace Chrome branding in the name or description with Microsoft Edge where required for certification.
- Sideload locally to verify behavior (sideload guide).
- If you use
chrome.runtime.connectNative, setallowed_originstochrome-extension://[your-edge-extension-id]in the native messaging host manifest after Edge assigns an ID.
What usually carries over unchanged: MV3 structure, content scripts, service worker, most chrome.* APIs Edge implements, and store graphics (with size rules below).
What differs: separate Partner Center product, certification forms (single purpose, permission justification, data usage), and Edge-specific listing fields. You still need distinct listings on Chrome, Firefox, and Edge even from one codebase (WXT + Vite extension stack).
Store listing assets (Microsoft Edge Add-ons)
Upload graphics per language on the Store listings pages in Partner Center (publish extension Step 7):
| Asset | Size | Required |
|---|---|---|
| Extension logo | 1:1, 300×300 recommended, 128×128 minimum | Per language |
| Screenshots | 640×480 or 1280×800 | Optional, up to 6 |
| Small promotional tile | 440×280 | Optional |
| Large promotional tile | 1400×560 PNG | Optional |
| Description | 250–10,000 characters | Per language |
| Short description | From manifest | At least one language |
| Extension name | From manifest | At least one language |
| Search terms | Up to 21 words, max 7 terms, 30 chars each | Optional |
Manifest name and description are read-only on the listing UI after upload; change them in the package and re-upload the zip (publish extension).
Submit to the edge extension store step by step
Create the extension and upload the package
- Open Partner Center and the Edge workspace (publish extension).
- Click Create new extension and upload your
.zip. - Fix validation errors, then continue through Packages and Extension overview.
Availability and markets
On Availability (publish extension Step 4):
| Visibility | Behavior |
|---|---|
| Public (default) | Search and browse on the Edge Add-ons website |
| Hidden | Not in search; install via direct listing URL only |
Markets default to all markets (including future markets). Users who installed while a market was enabled keep the extension if you later remove that market, but they may not receive updates published only for remaining markets (publish extension).
Properties and privacy
Properties include category (required), optional website and support URLs, and mature content flag (publish extension Step 5).
Privacy is where certification often stalls (publish extension Step 6):
- Single purpose description matching real behavior.
- Permission justification for each manifest permission (remove unused permissions first).
- Remote code: MV3 does not allow remotely hosted executable code; select No unless you are on MV2 (publish extension).
- Data usage checkboxes and certifications aligned with your policy.
- Privacy policy URL when you collect personal information (developer policies).
Align disclosures with your SaaS privacy page. See extension auth overview if the extension handles session tokens.
Certification notes and publish
When store listings show Complete, click Publish and open Submit your extension (publish extension Step 8).
In Notes for certification, include:
- Test account credentials.
- Steps to reach gated features.
- Regional behavior differences.
- What changed if this is an update.
Click Publish again to enter certification. Microsoft states the process can take up to seven business days. After approval, status becomes In the Store on Microsoft Edge Add-ons.
Edge extension certification and common rejections
Microsoft's pipeline includes preprocessing scans, security checks, and human policy review (Edge publishing docs, add-ons curation).
| Issue | Mitigation |
|---|---|
| Permission broader than functionality | Drop unused permissions; justify each one in Privacy |
| Single purpose mismatch | Rewrite listing and single-purpose field to one clear job |
| Privacy policy missing or inconsistent | Publish a real URL; match data usage checkboxes |
| Chrome branding in name/description | Rebrand for Edge per porting guide |
| Malware or PUA flags | Review developer policies; Microsoft does not disclose exact triggers |
| Incomplete listing per language | Provide required description and logo for each locale in the package |
Rejections arrive by email and appear on the Certification report page. Fix issues, bump version, upload a new package, and submit again (Edge publishing docs).
Microsoft does not publish a shorter "typical" review window than the up to seven business days statement in the publish guide. Plan release comms accordingly.
Update an Edge extension
Every new package needs a higher version in manifest.json than the build in the store (publish extension). Upload via Partner Center Packages or the REST API, refresh privacy fields if permissions changed, update certification notes for testers, and publish again.
TurboStarter's extension updates doc recommends bumping package.json version before each store upload. Breaking permission changes often require manual Partner Center metadata even when CI uploads the zip (Edge publishing docs).
Automate with the Microsoft Edge Add-ons API
The REST API updates existing products only. You cannot create a new extension or edit listing metadata through the API (using Add-ons API). The first submission stays manual so you obtain the product ID (GUID) and complete listing metadata (Edge publishing docs).
Enable API credentials (v1.1)
- Partner Center → Microsoft Edge program → Publish API.
- Click Enable for the new experience (API keys).
- Click Create API credentials and save Client ID and API key immediately (using Add-ons API).
Root endpoint: https://api.addons.microsoftedge.microsoft.com.
Typical update flow:
POST /v1/products/{productID}/submissions/draft/packagewith zip body (headers:Authorization: ApiKey {key},X-ClientID: {clientId}).- Poll package operation status until complete.
POST /v1/products/{productID}/submissionswith JSON notes to publish.- Poll publish operation status.
Example upload (replace placeholders):
curl \
-H "Authorization: ApiKey $EDGE_API_KEY" \
-H "X-ClientID: $EDGE_CLIENT_ID" \
-H "Content-Type: application/zip" \
-X POST \
-T ./edge-submission.zip \
"https://api.addons.microsoftedge.microsoft.com/v1/products/$EDGE_PRODUCT_ID/submissions/draft/package"CI example (GitHub Actions + WXT)
TurboStarter ships .github/workflows/publish-extension.yml with Edge secrets (Edge publishing docs):
env:
EDGE_PRODUCT_ID: ${{ secrets.EDGE_PRODUCT_ID }}
EDGE_CLIENT_ID: ${{ secrets.EDGE_CLIENT_ID }}
EDGE_API_KEY: ${{ secrets.EDGE_API_KEY }}Run npx wxt submit with --edge-zip after the first manual approval. Use --edge-skip-submit-review when you only want upload without sending to certification (WXT submit, Plasmo BMS Edge tokens).
The GitHub Marketplace Publish Edge Add-on action wraps the same API for workflows that do not use WXT.
Ship Chrome, Firefox, and Edge from one codebase
Each marketplace is its own account, review, and listing URL. Shared engineering wins come from one MV3 source tree, shared auth against your TurboStarter backend, and aligned versioning (software versioning across surfaces).
| Store | Registration cost (documented) | TurboStarter doc |
|---|---|---|
| Chrome Web Store | One-time Google fee (Chrome guide) | Publish to Chrome |
| Firefox Add-ons | No registration fee (Firefox doc) | Publish to Firefox |
| Microsoft Edge Add-ons | No registration fee (create dev account) | Publish to Edge |
Use the publishing checklist before you tag a release.
How TurboStarter fits in
TurboStarter Core is a production-ready SaaS starter kit across Next.js web, Expo mobile, and a WXT browser extension on one Better Auth backend. Publishing is not a separate product: you get store-ready zips, shared API types, and docs that mirror the steps in this article.
What the kit documents today:
- Manual and automated Edge publishing, including first-upload requirements and GitHub Actions secrets (Edge Add-ons).
- Parallel Chrome and Firefox guides when you expand beyond one store (Chrome blog).
- Pre-submission checklist for API URLs, assets, and store accounts (publishing checklist).
- Version bumps via
package.jsonbefore each upload (updates).
Use this post for policy context and official Microsoft links. Use /docs/extension/publishing/edge when you are inside the repo running builds. If you are evaluating kits, see Core pricing and the extension stack page.
FAQ
Yes. Microsoft states there is no registration fee for submitting extensions to the Microsoft Edge program (create dev account). You still pay your own hosting, signing, and CI costs outside Microsoft.
Usually yes for MV3 Chromium extensions. Remove update_url, check API support, rebrand Chrome-only naming, sideload to test, then submit a new Partner Center product (port Chrome extension). The Chrome listing does not automatically appear on Edge.
Microsoft says certification can take up to seven business days after you submit (publish extension). Microsoft does not document a shorter typical window in that guide.
No. Individual accounts are supported for solo developers. Company accounts are for registered businesses and require longer verification (create dev account).
Increment version in manifest.json, build a new zip, upload to the same product in Partner Center or via the Add-ons API, update privacy or listing fields if behavior changed, refresh certification notes, and publish again (updates).
You can automate package upload and publish for an existing product after the first manual submission and after listing metadata is complete. The API does not create new products or edit store listing text (using Add-ons API). TurboStarter documents wxt submit and --edge-skip-submit-review (Edge publishing docs).
Sign in at Partner Center under the Microsoft Edge workspace. That dashboard is the edge add-ons developer console for packages, certification, and the Publish API.
Takeaway
Publish an edge extension by treating Microsoft Edge Add-ons as its own release channel: enroll in Partner Center (no Microsoft registration fee), ship a clean MV3 zip, be precise about privacy and permissions, complete per-language store assets, and plan for certification that may take up to seven business days. Automate uploads only after the first manual submission passes review. If you want the extension client already wired to your SaaS backend, TurboStarter Core ships the WXT app, store docs, and CI patterns so you can focus on the product inside the popup, not on rediscovering Partner Center labels every release.
How to Publish a Chrome Extension to the Chrome Web Store (2026 Guide)
How to publish a Chrome extension: Chrome Web Store developer account, MV3 zip package, listing assets, review times, updates, and API automation.
Renovate vs Dependabot - best tool to automate your dependency updates (2026)
Which should you pick for a monorepo in 2026? Compare Renovate and Dependabot on features, monorepo support, and automation.



