Bulk pricing, without the bulk work. Edit Google Play regional prices across every country from one review-before-apply workflow.
Users
4
+4 in 30 days
Rating
0.0 / 5
unchanged in 30 days
Ratings
0
0 in 30 days
Store rank
#284K
#235K among extensions
Version
1.0.0
updated 6 Sep 2026
Users
monthly, 1 months
Latest, 16 Oct 2026:4 usersMove the mouse over the chart for any month
Ratings count
monthly, 1 months
Latest, 16 Oct 2026:0 ratingsMove the mouse over the chart for any month
The Chrome Web Store rounds user counts down to the leading digit, so the user line moves in steps. The ratings count is exact and is the better signal of real adoption.
About Pinto — bulk pricing for Google Play
Play Console gives you two options for pricing a product in 150 countries: set
one price everywhere, or edit them one at a time. Neither is what you want.
Pinto is the third option. It opens beside the prices you were already looking
at, works out the new price for every market you selected, shows you the whole
change before anything is written, and then writes it — through the Google Play
Developer API, as you.
PRICE BY ECONOMIC ZONE, IN ONE CLICK
This is the thing Play Console cannot do, and the reason Pinto exists.
A single price cannot be right in both Norway and Nigeria. Pinto groups every
supported country into five purchasing-power bands and builds a ladder from
your base market's price:
- Pick how steep it is: flat, gentle, balanced or aggressive.
- Every band is a share of your base price, and every share is editable.
- Every country stays editable too — move one between bands, or override its
price outright.
- Nothing is applied until you have reviewed it.
The bands are built from World Bank income groups and GNI per capita at
purchasing power parity, adjusted for observed app-store spend. Pinto states
that basis in the interface rather than presenting the ladder as a fact. It is
a defensible starting point, not a measurement, and it is meant to be edited.
EVERY WAY TO SET A PRICE
- Percentage — raise or lower by a percentage.
- Multiplier — multiply the current price.
- Fixed price — one amount, converted into each market's currency.
- Copy from market — take one country's price as the reference for the rest.
- Tiers — bands you define, or the purchasing-power ladder above.
- Formula — a written expression over the current price, parsed properly. No
eval, no surprises.
Currency conversion uses Google's own conversion rates, requested from the Play
API for your product. That matters more than it sounds: deriving rates from a
product's existing prices makes every re-run compound the last one, so prices
drift a little further every time you apply. Pinto's results are idempotent —
applying the same ladder twice changes nothing the second time.
ROUNDING THAT LOOKS LIKE PRICING
- Charm endings — .99, .95, .90, .49.
- Your own endings — give it the list you use.
- Whole units.
- None.
Rounding respects each currency's real minor-unit granularity, so a JPY price
never comes out with decimals it cannot have.
CHOOSING THE MARKETS
Select by search, by continent, by sub-region, by currency, or one country at a
time. Save any selection as a named group and reuse it anywhere — geography is
a poor proxy for what a price should be, and France and Romania share a
continent and very little else.
NOTHING IS WRITTEN UNTIL YOU SAY SO
The Review screen splits your change into four groups: changing, warnings,
blocked, unchanged. Every row shows the old price, the new price and the
difference. Warnings name themselves — a change of more than 50%, a currency
Pinto has no decimal rule for. Blocked rows are never sent, and each one says
why.
The review screen renders the exact values the apply engine sends. There is no
second code path where the numbers could differ from what you approved.
There is also a dry run: record the operation in history without sending
anything to Google Play.
WHEN GOOGLE REJECTS SOMETHING
The Play API writes a product's prices all or nothing, so one bad country
fails the whole batch and the error does not say which country. Pinto binary-
searches the rejected batch to name the failing markets, applies the rest, and
then reads the prices back from Google to confirm what actually landed — rather
than reporting success because the request returned.
You get a per-country result: what was written, what was refused, and the
reason.
UNDO
Prices are captured immediately before every write. If a run goes wrong, restore
them exactly as they were — from the snapshot, not from a guess. History keeps
the last 50 operations locally, each with its snapshot.
PRESETS, HISTORY, CSV
- Save a strategy as a preset, export it, import it, share it with a colleague.
- Export any change set to CSV before applying it, for the spreadsheet someone
will inevitably ask for.
- History records every operation with its per-country outcome.
LEARN IT IN THE APP
A Guide tab walks through the workflow, the strategies, the safety rails and the
error messages Google actually returns. Available in English and French, along
with the rest of the interface.
PRIVACY
Pinto has no server. There is no Pinto backend, no analytics, no telemetry and
no third-party service. Your data goes from your browser to Google and nowhere
else. The developer receives nothing — there is no endpoint to receive it.
- The OAuth access token is held in session memory and erased when Chrome
closes.
- Pinto never requests and never stores a refresh token.
- Presets, history, groups and settings are stored locally in your browser.
- The operation log records region codes, product ids and API status codes. It
does not record prices.
Removing the extension deletes everything Pinto stored.
Full policy: https://github.com/gabriel-TheCode/pinto/blob/main/PRIVACY.md
WHAT YOU NEED BEFORE INSTALLING
Read this part before you install, because Pinto will not work without it.
1. A Play Console account with permission to edit prices.
2. The Google Play Android Developer API enabled for the Google Cloud project
linked to your Play Console.
3. Your own OAuth client ID, created in that Google Cloud project and pasted
into Pinto's settings once.
The third step is the awkward one, and it is deliberate. Pinto has no server, so
it cannot hold a shared client ID on your behalf; using your own also means the
API access is yours, scoped to your own console, and revocable by you at
myaccount.google.com/permissions.
The in-app guide walks through all three. It takes about five minutes, once.
PERMISSIONS, AND WHY
- storage — saves your presets, history with price snapshots for undo, custom
groups and s…