# Get a product price in a currency (/api/foreign-exchange/get-product-price)

`GET https://api.comecero.com/api/v1/fx/product`

Gets a product's price in one currency. When you set a price in that currency, you get it. Otherwise your default price is converted at today's rate with your markup and rounding. Pass a `cart_id` or `invoice_id` to use the rate saved on that cart or invoice. Any token may call this, including a limited token. No permission is needed.

## Parameters

- `product_id` (query, required): The product to price.
- `currency` (query, required): The ISO 4217 code of the currency to price it in.
- `quantity` (query): The quantity, so a volume price applies. The default is 1.
- `cart_id` (query): Use the exchange rate saved on this cart.
- `invoice_id` (query): Use the exchange rate saved on this invoice.
- `formatted` (query): When `true`, the object also has a `formatted` child with amounts and dates as display text in the shopper's language and currency (for example `$19.99` or `November 7, 2026`). The default is `false`. See [Localized formatting](https://docs.comecero.com/docs/basic-concepts/localized-formatting).
- `show` (query): Comma-separated fields to return; all others are left out. Use dot notation for child fields (`customer.email`). You cannot send `show` and `hide` together (`400`). See [Customizing output](https://docs.comecero.com/docs/basic-concepts/customizing-output).
- `hide` (query): Comma-separated fields to leave out of the response. Use dot notation for child fields (`customer.email`). You cannot send `show` and `hide` together (`400`). See [Customizing output](https://docs.comecero.com/docs/basic-concepts/customizing-output).

Responses: 200, 400, 401, 403, 404, 500.

Full schemas: operation `get_product_price` in /openapi.json.