Skip to content

Chrome Web Store Publish API: Automating Your Releases

The Chrome Web Store publish API lets CI upload a zip and submit it for review. Here's the setup, the order of calls.

By 3 min read
Pip in a hard hat watches a conveyor belt carry a sealed box toward a launching rocket, on a pale blue background

The short answer

The Chrome Web Store publish API lets a script upload a new extension package and submit it for review, so releases run from CI instead of the dashboard. You need an OAuth client, a refresh token and your item ID. Review still happens on Google's side, so publish means submit, not instant live.

  • Set up OAuth once; store the refresh token as a secret.
  • Upload first, then call publish.
  • Bump the manifest version every time.
  • Publish submits for review; it isn't instant.

The fifth manual release is where it goes wrong. You zip the wrong folder, or forget to bump the version, and spend twenty minutes wondering why the dashboard rejects the upload. The Chrome Web Store publish API exists to stop that, as one step in our Chrome extension development guide.

What the Chrome Web Store publish API does

Google documents it on one page, and our overview of the Chrome Web Store API covers the wider picture. In short, your script can do two things to an item you already own: upload a new package, and submit it for publishing.

It won't create the listing, write your store copy, or skip review. Those stay in the dashboard. On purpose.

An Ext Watch extension page for Session Buddy showing store users, rating and release history
One extension page on Ext Watch: store users, rating and release history for a single listing.

One-time setup

  1. Create a Google Cloud project and enable the Chrome Web Store API.
  2. Create an OAuth client and consent screen.
  3. Run the OAuth flow once to get a refresh token.
  4. Copy your extension's item ID from the dashboard.
  5. Save the client ID, client secret and refresh token as CI secrets.

Our Developer Tools category page keeps the same counts, each with the day we saw it.

The release, in order

StepCall or actionFails when
BuildZip the built folderZip contains a parent folder
VersionBump version in manifestVersion matches the live one
AuthSwap refresh token for access tokenToken revoked or expired
UploadSend the zip to the upload endpointPackage errors or bad manifest
PublishCall publish for the itemListing incomplete in dashboard

Run them strictly in that order. Check each response before the next step, because a failed upload followed by publish just resubmits the old draft.

Review is still the gate

Publishing through the API means submitting. Google's review process then runs as usual, and timing varies. See the review process for the steps.

Two habits help, and both come from watching reviews take longer on big, permission-heavy releases than on small, boring ones:

  • Ship small, frequent versions so each review has less to look at.
  • Add new permissions in their own release, with a clear reason in your listing.

A manual fallback

Keep the dashboard path written down somewhere your future self will find it at eleven at night, with the exact menu names and the folder you zip. When a build gets rejected you'll want to read the message, fix, and resubmit by hand without fighting CI at the same time.

If you also want to watch how rivals change after your releases, that's a different job. The publish API only sees your own items. We're biased, since Ext Watch tracks public listings day by day, but any dated record you keep will do.

Automate it once and the fifth release becomes boring. Boring is the goal.

Questions people ask

How do I publish a Chrome extension automatically?

Create an OAuth client, get a refresh token, then have CI upload the zip and call the publish endpoint for your item ID.

Does the publish API skip Chrome Web Store review?

No. It submits the new version. Google's review still decides when it goes live.

Can I publish a brand-new extension through the API?

Create the listing in the dashboard first. The API works on items that already exist.

Where these numbers come from

  1. developer.chrome.comChrome for Developers: Use the Chrome Web Store API
  2. developer.chrome.comChrome for Developers: Chrome Web Store review process

Part of our guide: Chrome Extension Development Guide for Founders: 5 Steps. More in Build and launch.

Nina Alvarez avatar

Building, tools and AI

Ext Watch research desk

Nina writes for builders: developer accounts, the dashboard, publish APIs, data tools and connecting AI assistants to store data over MCP. Her voice is friendly and concrete, with short code-free explanations of how the pieces fit.

1,182 new extensions in the last 30 days in Developer Tools. See them all.

Start from a niche with proven demand instead of a blank page. Updated 3 Oct 2026 from our Chrome Web Store crawl

Ask Claude about this dataPlans from $19/mo

Related

Get Ext Watch Weekly by email

New extensions worth a look, niches with an opening, and the dated numbers behind each one, from our own store crawl. The first issue is being written now. Free, one email a week at most, unsubscribe anytime.

Overview
Explore the store
Opportunities
Compare
Watchlist
Collections
Saved searches
Alerts
Reports
Plans & usage
Account settings
↑↓Navigate↵OpenEscClose⌘KToggle