Skip to content

Microsoft Edge Add-ons ​

Edge submissions go through the Partner Center API v1.1. Reach for this page when you set up the Edge credentials or decide whether a submission stops at the draft or goes to Microsoft review.

Quick start ​

bash
curl -s -X POST https://www.extension.dev/api/cli/stores/submit \
  -H "Authorization: Bearer $EXTENSION_DEV_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"browsers":["edge"],"buildSha":"<sha>","channel":"stable"}'

The platform uploads the Edge build artifact, edge.zip, with the project's stored credentials and records the outcome under Submissions. The same submission starts from the console's Submissions tab or from an agent with extension_submit.

How it works ​

Credentials ​

Requests authenticate with two headers, Authorization: ApiKey and X-ClientID. Both values come from the Partner Center API settings. Add them in the console under Project settings, Store publishing, Microsoft Edge Add-ons, with the product ID of the listing.

The flow ​

The platform uploads a draft package, polls the upload operation until it leaves InProgress, then submits the draft for review. Edge tracks the submission by the operation id the upload returns, never by a version id.

Upload without publishing ​

Draft-only safe mode uploads the package to the Edge draft and leaves it there. No review submission happens. It is a per-store setting: turn off Submit draft after upload in the Edge panel under Project settings, Store publishing, which stores publishAfter: false.

Agent and API submissions default to the draft. extension_submit defaults to a dry run. A submission with dryRun: false through the MCP, the CLI or an API token stops at the Edge draft unless the store settings state a mode.

An explicit publishAfter: true goes to Microsoft review and an explicit publishAfter: false stays a draft, whoever saved it. Console submissions follow the store setting: review unless Submit draft after upload is off.

Certification notes ​

Edge certification notes are read from STORE.md in the project root and submitted automatically. See Publishing.

Watching ​

The Submissions tab follows the submission to a terminal state, and GET /api/projects/{id}/stores/status returns the same. The states are the eight on Publishing. An upload that is not published for review records draft, not submitted.

Reference ​

Secrets ​

ValueSecretNotes
Client IDSTORE_EDGE_CLIENT_IDPartner Center API settings, sent as X-ClientID
API keySTORE_EDGE_CLIENT_SECRETPartner Center API settings, sent as ApiKey

Store settings ​

SettingStored asEffect
Product IDstoreIdThe product under /v1/products/{productId}
Submit draft after uploadpublishAftertrue submits the draft for review, false leaves it as a draft

Store calls ​

StepCall
UploadPOST /v1/products/{productId}/submissions/draft/package, operation id in Location
PollGET /v1/products/{productId}/submissions/draft/package/operations/{operationId}
SubmitPOST /v1/products/{productId}/submissions

When it fails ​

  • The upload operation failed. The upload is asynchronous. A failed operation reports its errors when polled, and the submit step never ran.
  • Authentication fails. That is the header pair, not the package. Confirm the client ID and API key both come from the same Partner Center account.
  • A store is blocked. The preflight, dryRun on the submit call, reports credential health per store and the console page that fixes a blocked one.
  • A submission sits in pending. It is still on Microsoft's side. Give it time before assuming failure.

Next ​