Product Prices in different currencies have been available through the API for a long time. But the use of them has been less than ideal.

The only way to fetch the price handles has been to use the method ProductPrice_FindByProductAndCurrency. This allows you to only get a single price for a single currency. That quickly becomes very chatty and the cost of going across the network alone will slow you down.

So to make it easier to use ProductPrices with fewer requests we have exposed three new methods in the SOAP API.

ProductPrice_FindByProductListAndCurrency
This method returns handles for all defined product prices in the specified currency that matches any of the product handles in the list.

ProductPrice_FindByProductList
This method returns handles for all defined product prices in all defined currencies that matches any of the product handles in the list.

ProductPrice_FindByCurrency
This method returns handles for all defined product prices in the specified currency.

So if you wish to fetch all product prices for a specific currency for example, you would first use ProductPrice_FindByCurrency to get all ProductPriceHandles and then ProductPrice_GetDataArray to fetch the actual prices. This would be only two requests as opposed to a request for every product and then one to ProductPrice_GetDataArray.

You can find the full SOAP documentation here.