Hacker News new | past | comments | ask | show | jobs | submit login
Currency Rates API (currencyscoop.com)
58 points by austincodesa 4 months ago | hide | past | web | favorite | 20 comments



> The real-time mid-market rate is the midpoint between demand and supply at any point in time, making it the most accurate rate.

By which they mean "the real-time mid-market rate is something that some unnamed provider made up and claims is representative of actual rates."

They give EUR/USD to two digits of precision. The actual spreads quoted by anyone who isn't trying to utterly screw you over is much, much tighter than 0.01. Different parties will have different ideas of the current and historical bids and offers.

Using a service like this is probably fine for display purposes and maybe okay for some accounting purposes as long as no one is going to audit it or care about the results being entirely correct. Using it for transactions would be a bad idea.


Amen. The forex market is very different than the stock market. FX is relationship driven. What this means is that the prices you can get are based on the relationship you negotiate with your provider.

When Forex prices flash across cspan or similar they are typically quoting the interbank offered rate. Retail traders don’t get anything close to this rate. You usually go through several intermediaries who each add a spread. There’s not best price law in fx.

Using prices from retail fx brokers usually isn’t a good idea either since their spreads are so outrageous. Oanda has reasonable rate info I’m told, but it’s more geared for professional traders.


> Using prices from retail fx brokers usually isn’t a good idea either since their spreads are so outrageous.

What's wrong with averaging them together? That should negate the spread unless they're really short of one currency and long on the other. I guess your local bank would post bad rates on some pairs because of their carrying costs, but someone like transferwise?

Back in 2009, I recall one Canadian bank having competitive rates when you wanted to sell them USD, but terrible rates when you wanted to buy their USD. I guess they were in dire need for USD and didn't want to sell what they had to their retail customers.


I guess it depends on what your requirements are. I’m not too knowledgeable on the pricing side but your price increases/decreases as you noticed aren’t linear and vary based on the amount you’re buying or selling. Buying or selling currencies from a trading partner exposes them to fluctuations in that currency so they’re going to need to be compensated to cover their trading costs like hedgeing (if your transactions are large enough) as well as some sort of profit for them.

If you’re just doing it for a retail perspective some sort of averaging scheme like you mentioned would probably be okay. If you’re dealing with large amounts regularly you’d probably want to negotiate with multiple liquidity providers to get an idea of what kind of rates you’d get for a given currency pair.


All valid concerns.

It's funny how much was based on LIBOR when it provided zero indication of depth-of-market for the banks feeding it numbers.


Yeah. As far as my limited knowledge goes on pricing, I don't believe LIBOR had a direct impact on fx rates. FX forwards and swaps are more impacted by the interest rate on treasury bills. LIBOR & EURIBOR would have an effect on interest rates on money being lent to people doing carry trades for example. But I don't think that it would affect pricing of the underlying trades afaik. Maybe a trader can chime in.


100% agree. I always get the best rate by picking up the phone and talking to my relationship manager at my bank.


Note that the Bank of Canada provides, for free, feeds of exchange rate data: https://www.bankofcanada.ca/rates/exchange/. It's only updated daily, but I think points out the difficult niche that currencyscoop would be able to go after. For anyone showing general prices on goods (like an online store), daily rates should be good enough, while anyone doing something like currency trading is going to need something much more accurate than what currencyscoop provides.


Oh that's interesting, thanks for sharing. We've always used the paid XE APIs, but only need daily accuracy so these could be worth exploring.


You can get the official EUR exchange rate for the following list of currencies from the ECB. The API is a little less convenient (either zipped csv or a slightly weird xml), but that's should be a big deal. (Including historical data since 1999-01-04, not every currency is present in every row)

https://www.ecb.europa.eu/stats/policy_and_exchange_rates/eu...

USD, JPY, BGN, CZK, DKK, GBP, HUF, PLN, RON, SEK, CHF, ISK, NOK, HRK, RUB, TRY, AUD, BRL, CAD, CNY, HKD, IDR, ILS, INR, KRW, MXN, MYR, NZD, PHP, SGD, THB, ZAR



Any serious user of FX data will want to see the bid/offer points and calculate the mid themselves. This is fine for someone creating a pretty ticker on their app, which I suppose is their target market.


I've looked into https://exchangeratesapi.io/ as a possible alternative for simple needs.


Where's the data? Do you have to register to use it?

Here's a better alternative, updated every minute: http://cryptomarketplot.com/api.json

It has the bid and ask (apparently missing given the comments below). For fiat/fiat pairs, use the BTC/fiat pair, for example:

        "id": "fiat-eur",
        "symbol": "EUR",
        "pair": "BTC/EUR",
        "name": "Euro",
        "bid_eur": "8251.26",
        "ask_eur": "8277.58",
        "last_eur": "8231.34",
(...)

        "id": "fiat-try",
        "symbol": "TRY",
        "pair": "BTC/TRY",
        "name": "Turkish Lira",
        "bid_try": "53258.52",
        "ask_try": "54173.34",
        "last_try": "51903.02",
Use the BTC/EUR and BTC/LYR to find the LYR/EUR with one division.

No rate limit, no condition to use the api. It's free for all and will remain free.


That's not how currency rates work. This requires Bitcoin to be identical in demand. For example, EUR to TRY using Bitcoin is 0.15496, vs 0.15313 according to XE. Moreover, that crypto API only features 15 fiat pairs, vs. well Currenyscoop's 159.

https://currencyscoop.com/supported-currencies


This is correct.

However, most people will not be able to trade at the XE quoted rates. Just try to go to your back and exchange. The price reported on CMP are what any random person can get, for real, using the crypto exchanges - without complicated paperwork. Without delay. With a separate bid and ask, instead of reporting a theoretical midpoint.

Also, the API is fully free. Anytime. Any volume of request. Commercial purposes included. No questions asked.

So yeah, that's currently smaller, but I think it is closer to what people and especially developers really care or need - the big fiat pairs, and true rates, without Terms-Of-Service.


I see Zendesk listed as one of the businesses that uses this. Does anyone have an idea why Zendesk would need an exchange rate API?


That's what I thought too but according to their latest quarterly report[1], ZenDesk generates revenue in Ireland, Singapore and "other" countries in Europe and Asia.

[1] https://last10k.com/sec-filings/zen/0001463172-19-000445.htm... (scroll up a bit to see geographic information)


I have no direct knowledge about Zendesk's use case however currency conversion is table stakes for any company doing international business. Purchase orders and employee travel expense reports being top of the list.


How does this compare to Open Exchange Rates?




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: