The data we supply is the core of our API so making sure it's accurate & up-to-date is our priority! This page details how our exchange rates are compiled before they reach your server in a JSON response.
We collect currency conversion data from all over the world on a continual basis. Firstly, we source exchange rates from a large number of central banks that publish reference indices each day. These are computed by the central banks after consultation with marketplaces in their jurisdictions. Central bank references are particularly useful for less commonly traded pairs and currencies where a peg is used to track another currency's movements.
We then also source forex rates from commercial marketplaces where currency trading is taking place. These aren't originally available as a specific fixed midpoint rate like a central bank would announce - instead we compute this midpoint ourselves from the bid/ask spread present in the marketplace.
Before we accept data from a source we first make sure it's plausibly valid and run it through a series of historically weighted checks to make sure the new datapoint hasn't been transposed or mislabeled. Once this is done for each source we use our own algorithm to blend all the available data into one composite indicative exchange rate.
This blending takes into account data age weightings and evaluations of a source's previous accuracy. Our goal is to produce a stable assessment of the market's midpoint that isn't thrown out by any one source's potential variance.
The data refresh rates specified for each of our plans are how often we run the process of blending our available data and then pushing the results to our edge caches. While virtually every update on our fastest 5 minute update plans will include new data for a widely-traded pair like USD/EUR, it's worth noting that less common pairs of smaller currencies will not always update as often as our data refreshes.
Despite this, it's still worth being on a faster plan for these less traded currencies because the shorter your data refresh interval, the sooner you'll receive new data whenever we've collected and processed some.
Our exchange rates are classed as indicative midpoint rates. These are accurate enough for tasks like price estimations in an e-commerce store, stats on a dashboard or internal reporting spreadsheets etc. They are not suitable for trading forex because they don't give you any information about the bid/ask spreads available in different marketplaces (most importantly the one you're choosing to trade in!)
If you have any questions about our data and what it's suitable for please ask our support - we're here to help.
We collect forex data from 30+ different sources. These include central banks that publish reference rates & commercial markets where we can calculate the midpoint of where a particular currency pair's spread is trading.
We offer different rates of data refresh. Free & Open API users get new data every 24 Hours. Pro plan customers get our newest data every 60 minutes and Business & Volume customers get the latest exchange rates every 5 minutes.
We collect data for 161 world currencies. You can see the full list and further info for each currency on our Supported Currencies page. These supported codes cover 99% of UN recognized countries and territories. We currently don't offer any data for commodity prices.
Our exchange rate data isn't suitable for day trading forex. We don't supply bid/ask spreads or order depth and if you plan to trade you should start with a data source that offers these. Ideally you should also use the data from the specific market you will trade in rather than from a 3rd party.