Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Accounting.js | 4,454 | 1,075 | 302 | 5 years ago | 3 | July 16, 2014 | 121 | mit | JavaScript | |
A lightweight JavaScript library for number, money and currency formatting - fully localisable, zero dependencies. | ||||||||||
Money | 2,580 | 5,634 | 294 | 18 hours ago | 97 | May 09, 2021 | mit | Ruby | ||
A Ruby Library for dealing with money and currency conversion. | ||||||||||
Fixer | 2,548 | 12 | 7 months ago | 10 | December 31, 2017 | 18 | mit | Ruby | ||
A foreign exchange rates and currency conversion API | ||||||||||
Money.js | 1,356 | 246 | 47 | 4 years ago | 4 | July 16, 2014 | 27 | mit | CSS | |
money.js is a tiny (1kb) javascript currency conversion library, for web & nodeJS | ||||||||||
Money | 1,290 | 8 | 20 | a month ago | 22 | October 10, 2021 | 10 | mit | PHP | |
A money and currency library for PHP | ||||||||||
Swap | 1,258 | 80 | 12 | 3 months ago | 30 | December 28, 2020 | mit | PHP | ||
:currency_exchange: Currency exchange rates library | ||||||||||
Rate.sx | 918 | 3 months ago | 26 | mit | Python | |||||
:moneybag: curl cryptocurrencies exchange rates | ||||||||||
Alfred Convert | 645 | a year ago | 15 | other | Python | |||||
Convert between different units in Alfred | ||||||||||
Money | 468 | 13 | 7 | a month ago | 131 | August 26, 2022 | 1 | other | Elixir | |
Elixir implementation of Money with Currency | ||||||||||
Cashify | 392 | a month ago | n,ull | mit | TypeScript | |||||
💸 Lightweight currency conversion library, successor of money.js |
Swap allows you to retrieve currency exchange rates from various services such as Fixer, Currency Data, Exchange Rates Data or Abstract and optionally cache the results. It is integrated to other libraries like moneyphp/money and provides a Symfony Bundle and a Laravel Package.
![]() |
Fixer is a simple and lightweight API for foreign exchange rates that supports up to 170 world currencies. |
![]() |
Currency Data provides reliable exchange rates and currency conversions for your business up to 168 world currencies. |
![]() |
Exchange Rates Data provides reliable exchange rates and currency conversions for your business with over 15 data sources. |
![]() |
Abstract provides simple exchange rates for developers and a dozen of APIs covering thousands of use cases. |
$ composer require php-http/curl-client nyholm/psr7 php-http/message florianv/swap
use Swap\Builder;
// Build Swap
$swap = (new Builder())
// Use the Fixer service as first level provider
->add('apilayer_fixer', ['api_key' => 'Get your key here: https://fixer.io/'])
// Use the Currency Data service as first fallback
->add('apilayer_currency_data', ['api_key' => 'Get your key here: https://apilayer.com/marketplace/currency_data-api'])
// Use the Exchange Rates Data service as second fallback
->add('apilayer_exchange_rates_data', ['api_key' => 'Get your key here: https://apilayer.com/marketplace/exchangerates_data-api'])
// Use the Abstract Api service as third fallback
->add('abstract_api', ['api_key' => 'Get your key here: https://app.abstractapi.com/users/signup'])
->build();
// Get the latest EUR/USD rate
$rate = $swap->latest('EUR/USD');
// 1.129
$rate->getValue();
// 2016-08-26
$rate->getDate()->format('Y-m-d');
// Get the EUR/USD rate 15 days ago
$rate = $swap->historical('EUR/USD', (new \DateTime())->modify('-15 days'));
We recommend to use the services that support our project, providing a free plan up to 100 requests per month.
The documentation for the current branch can be found here.
Here is the list of the currently implemented services:
Service | Base Currency | Quote Currency | Historical |
---|---|---|---|
Fixer | EUR (free, no SSL), * (paid) | * | Yes |
Currency Data | USD (free), * (paid) | * | Yes |
Exchange Rates Data | USD (free), * (paid) | * | Yes |
Abstract | * | * | Yes |
coinlayer | * Crypto (Limited standard currencies) | * Crypto (Limited standard currencies) | Yes |
Fixer | EUR (free, no SSL), * (paid) | * | Yes |
currencylayer | USD (free), * (paid) | * | Yes |
exchangeratesapi | USD (free), * (paid) | * | Yes |
European Central Bank | EUR | * | Yes |
National Bank of Georgia | * | GEL | Yes |
National Bank of the Republic of Belarus | * | BYN (from 01-07-2016), BYR (01-01-2000 - 30-06-2016), BYB (25-05-1992 - 31-12-1999) |
Yes |
National Bank of Romania | RON, AED, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EGP, EUR, GBP, HRK, HUF, INR, JPY, KRW, MDL, MXN, NOK, NZD, PLN, RSD, RUB, SEK, TRY, UAH, USD, XAU, XDR, ZAR | RON, AED, AUD, BGN, BRL, CAD, CHF, CNY, CZK, DKK, EGP, EUR, GBP, HRK, HUF, INR, JPY, KRW, MDL, MXN, NOK, NZD, PLN, RSD, RUB, SEK, TRY, UAH, USD, XAU, XDR, ZAR | Yes |
National Bank of Ukranie | * | UAH | Yes |
Central Bank of the Republic of Turkey | * | TRY | Yes |
Central Bank of the Republic of Uzbekistan | * | UZS | Yes |
Central Bank of the Czech Republic | * | CZK | Yes |
Central Bank of Russia | * | RUB | Yes |
Bulgarian National Bank | * | BGN | Yes |
WebserviceX | * | * | No |
1Forge | * (free but limited or paid) | * (free but limited or paid) | No |
Cryptonator | * Crypto (Limited standard currencies) | * Crypto (Limited standard currencies) | No |
CurrencyDataFeed | * (free but limited or paid) | * (free but limited or paid) | No |
Open Exchange Rates | USD (free), * (paid) | * | Yes |
Xignite | * | * | Yes |
Currency Converter API | * | * | Yes (free but limited or paid) |
xChangeApi.com | * | * | Yes |
fastFOREX.io | USD (free), * (paid) | * | No |
exchangerate.host | * | * | Yes |
Array | * | * | Yes |
Additionally, you can add your own services as long as they implement the ExchangeRateService
interface.
The MIT License (MIT). Please see LICENSE for more information.