Currency
Applies toQuery APIJobs API
Two things to know before you read any price field from the REST APIs: prices are scaled integers, and they're normalized to USD. Get those two right and the rest follows.
Prices are scaled by 100
Every price is an integer, multiplied up by 100 — effectively cents. A
price_usd of 1995 is $19.95. Divide by 100 to get the real amount.
Prices are normalized to USD
When EDITED crawls a product, it converts the price from the retailer's currency
to USD using the exchange rate on the day it was crawled. That's the
price_usd field. Normalizing to USD at the crawl-date rate means a price is
comparable across markets and over time, without exchange-rate swings distorting
the trend.
If you'd rather work in a specific currency, set the currency request
parameter (both the Query and Jobs APIs accept it); it defaults to USD. This
only changes the main price fields — you always also get each price in its
original currency and in USD, which the next section covers.
Three versions of every price
Each price comes back in three parallel fields, and it's worth knowing which is which. Taking the current price as the example:
| Field | Currency |
|---|---|
price_usd | Always USD, whatever currency you request |
_price_original | The retailer's native currency, always |
_price | The currency you requested (USD by default) |
The same three-way split repeats for the other price fields — full price, first
price, advertised price, and so on. (Fields written with a leading underscore,
like _price, are calculated per request.) Each is defined in the
data dictionary.
The one that catches people out
The per-record currency field tells you the native currency — not the one
you requested. If you ask for GBP on a euro-priced retailer, _price comes
back in GBP as expected, but the currency field still reads EUR.
So don't read currency to find out what _price is in. Instead:
- read a
_price-style value as the currency you asked for (and keep track of what you requested yourself), and - read
currencyas the retailer's native currency — the one_price_originalis in.
MCP returns prices already normalized to your account's currency (see
market_data_entitlements), so there's no per-call currency parameter and no
native/USD/requested split to reconcile. The three-field pattern above is a
REST-surface detail.
Related
- Data dictionary — every price field, with its exact currency.
- Filters — scoping a query by retailer, which sets which native currencies you'll see.
- API reference — where the
currencyparameter is documented per endpoint.