> ## Documentation Index
> Fetch the complete documentation index at: https://docs.extensy.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit to Store

> Step-by-step walkthrough for uploading your extension ZIP and submitting it for review in the Chrome Web Store Developer Console.

With your assets ready and your developer account active, you're ready to submit. Work through each step in the Chrome Web Store Developer Console to complete your submission.

## Submission walkthrough

**1. Log in to the Developer Console**

Navigate to the [Chrome Web Store Developer Console](https://chrome.google.com/webstore/devconsole) and sign in with your developer account.

**2. Create a new item**

Click **+ New Item** and upload the extension ZIP generated by Extensy.

**3. Fill in the store listing**

Enter your extension's name, short description, and detailed description. Make sure these match the assets you prepared.

**4. Upload visual assets**

Upload your 128×128 px store icon and at least one screenshot at 1280×800 px or 640×400 px.

**5. Set category and language**

Choose the most relevant category (e.g., Productivity, Developer Tools) and set the primary language of your extension.

**6. Declare privacy and permissions**

Open the **Privacy** tab. Declare every permission your extension uses and provide a one-sentence justification for each. Include a link to your privacy policy if your extension collects user data.

**7. Configure distribution**

In the **Distribution** tab, select your visibility:

* **Public** — visible to anyone browsing or searching the store
* **Unlisted** — accessible only via a direct link
* **Private** — limited to a defined test group

**8. Submit for review**

Preview your listing one final time, then click **Submit for Review**.

## Permission justification reference

Google requires a written justification for every permission in your `manifest.json`. This is one of the most common points of rejection for first-time publishers.

| Permission | Example justification |
| :- | :- |
| `storage` | "To save user preferences for theme and localized settings." |
| `tabs` | "To identify the active tab for price-highlighting functionality." |
| `activeTab` | "To execute scripts on the current page when the user clicks the extension icon." |

> [!TIP]
>
> Be honest and specific. Vague justifications — for example, "needed for functionality" — significantly increase the chance of rejection.

## What happens after you submit

Once submitted, your extension's status changes to **Pending Review**. The review process has two phases:

* **Automated scan** — Google's systems check your code for malware, policy violations, and prohibited patterns.
* **Manual review** — a human reviewer may inspect your extension's UI and validate your permission justifications.

When approved, your status changes to **Published** and you receive an email notification.

> [!NOTE]
>
> Expect a **1–3 business day** wait. First-time submissions or extensions that request broad permissions (such as `<all_urls>`) may take up to a week.

## Handling a rejection

If your extension is rejected, Google sends an email identifying the exact policy violated.

1. Read the rejection email and follow the linked policy documentation.
2. Fix the specific issue cited — do not make unrelated changes at the same time.
3. Increment the `version` field in your `manifest.json` (e.g., `1.0.0` → `1.0.1`).
4. Re-upload the updated ZIP and resubmit.

> [!WARNING]
>
> Do not use `eval()` or load scripts from external URLs. Manifest V3 prohibits remote code execution. Every line of code your extension runs must be present in the ZIP you upload.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.