Introducing a new Chrome Web Store API

Published: October 15, 2025

Starting today, we're releasing a new version (V2) of the Chrome Web Store API. The new API is significantly easier to use, and has support for features like service accounts, making it easier to integrate with enterprise workflows. We've also added more functionality with the ability to control percentage rollout and programmatically cancel pending submissions.

A new API based on developer feedback

The new API was built with developer feedback top of mind. We've worked to make the API endpoints and responses more intuitive.

New features

We've also added new features that were previously not available in the API.

Access published and draft item status

Previously, it was only possible to retrieve the most recent draft revision for an item. You can now retrieve both the published and pending revision.

curl -H "Authorization: Bearer $TOKEN" -X GET https://chromewebstore.googleapis.com/v2/publishers/PUBLISHER_ID/items/EXTENSION_ID:fetchStatus

This will return a response including the following:

{
  ...,
  "publishedItemRevisionStatus": { ... },
  "submittedItemRevisionStatus": { ... },
  ...
}

Cancel a pending submission

You can now cancel a pending submission using the API.

curl -H "Authorization: Bearer $TOKEN" -X POST https://chromewebstore.googleapis.com/v2/publishers/PUBLISHER_ID/items/EXTENSION_ID:cancelSubmission

Modify percentage rollout

You can now update the percentage rollout for an extension without submitting it for review. This is based on feedback from developers, who pointed out that in the previous API version any updates, including to the target percentage, would be treated as a new submission that would separately undergo review.

curl -H "Authorization: Bearer $TOKEN" -X POST -H "Content-Type: application/json" -d "{ "deployPercentage": 100 }" https://chromewebstore.googleapis.com/v2/publishers/PUBLISHER_ID/items/EXTENSION_ID:setPublishedDeployPercentage

Service account support

Service account configuration in Developer Dashboard.
Service account configuration in Developer Dashboard

You can now grant service accounts access to the Chrome Web Store API. Just add the required emails in the Developer Dashboard.

Stage an item for publishing

Previously, revisions submitted using the API were always published immediately after they had passed review. Now, you can use the publishType field with STAGED_PUBLISH-when your item passes review, it will be staged and can be manually published at a later time using another API call or manually using the Developer Dashboard.

Improved ergonomics

The Chrome Web Store API now publishes a discovery document. This lets you interact with the API through various Google tooling and libraries. We've also more clearly defined the concept of item revisions as a core concept in the API which makes the API easier to use and unlocks more flexibility for additional methods in the future.

Improved documentation

API Reference for Chrome Web store API.
API Reference for Chrome Web store API.

We've published much more extensive API reference documentation, using the same tooling used for other Google APIs. This also includes the "Try it!" API explorer which lets you configure a single request using credentials from your authenticated Google Account.

OAuth playground

Chrome Web Store scope highlighted in OAuth 2.0 playground.
Chrome Web Store scope highlighted in OAuth 2.0 playground.

You can now select the Chrome Web Store API scope in the OAuth 2.0 playground. This lets you get test credentials and make test API requests in the browser. While this tool has always supported the Chrome Web Store API, scopes and API methods were not automatically suggested.

Google client libraries

These updates will also mean the API will be available in future releases of the Google API client libraries. This will make it easier to call the API from your language of choice, including JavaScript, Node.js, Python and Java.

How to migrate

Most methods in the V1 API have an equivalent method in the V2 API. Update your code to use the new endpoints and request format, and to handle the updated responses.

Use case Old API endpoint New API endpoint
Get an item GET https://www.googleapis.com/chromewebstore/v1.1/items/itemId GET https://chromewebstore.googleapis.com/v2/publishers/PUBLISHER_ID/items/EXTENSION_ID:fetchStatus
Update an item PUT https://www.googleapis.com/upload/chromewebstore/v1.1/items/itemId POST https://chromewebstore.googleapis.com/upload/v2/publishers/PUBLISHER_ID/items/EXTENSION_ID:upload
Publish an item POST https://www.googleapis.com/chromewebstore/v1.1/items/itemId/publish POST https://chromewebstore.googleapis.com/v2/publishers/PUBLISHER_ID/items/EXTENSION_ID:publish

You can find example requests in the Use the Chrome Web Store API tutorial and the full documentation for the new methods here.

The new API does not support creating new items. This functionality was rarely used, and had limited utility given that additional metadata still had to be provided in the Developer Dashboard.

Additionally, we no longer support changing the visibility of an item using the API. This is to make sure that any visibility changes are confirmed by the developer in the Developer Dashboard.

Migration timeline

We plan to support the old API until 15th October 2026, at which point you will need to move to the V2 API to continue making requests.

Wrap up

We're really excited to share these changes with you. As always, if you have any feedback, do let us know in the chromium-extensions mailing list.