Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/florianv/swap
:currency_exchange: Currency exchange rates library
https://github.com/florianv/swap
currency currency-converter currency-exchange currency-exchange-rates currency-rates exchange-rates money php
Last synced: about 9 hours ago
JSON representation
:currency_exchange: Currency exchange rates library
- Host: GitHub
- URL: https://github.com/florianv/swap
- Owner: florianv
- License: mit
- Created: 2014-05-09T13:20:05.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2024-04-11T08:44:32.000Z (8 months ago)
- Last Synced: 2024-10-29T15:34:21.485Z (about 1 month ago)
- Topics: currency, currency-converter, currency-exchange, currency-exchange-rates, currency-rates, exchange-rates, money, php
- Language: PHP
- Homepage: https://florianv.github.io/swap/
- Size: 943 KB
- Stars: 1,312
- Watchers: 36
- Forks: 138
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-php - Swap - An exchange rates library. (Table of Contents / E-commerce)
- awesome-php-cn - Swap - 一个汇率库. (目录 / 电子商务 E-commerce)
- awesome-projects - Swap - An exchange rates library. (PHP / E-commerce)
- awesome-php - Swap - An exchange rates library. (Table of Contents / E-commerce)
README
# Swap
[![Build status](http://img.shields.io/travis/florianv/swap.svg?style=flat-square)](https://travis-ci.org/florianv/swap)
[![Total Downloads](https://img.shields.io/packagist/dt/florianv/swap.svg?style=flat-square)](https://packagist.org/packages/florianv/swap)
[![Version](http://img.shields.io/packagist/v/florianv/swap.svg?style=flat-square)](https://packagist.org/packages/florianv/swap)Swap allows you to retrieve currency exchange rates from various services such as **[Fixer](https://fixer.io/)**, **[Currency Data](https://currencylayer.com)** or **[Exchange Rates Data](https://exchangeratesapi.io/)** and optionally cache the results.
It is integrated to other libraries like [moneyphp/money](https://github.com/moneyphp/money) and provides
a [Symfony Bundle](https://github.com/florianv/FlorianvSwapBundle) and a [Laravel Package](https://github.com/florianv/laravel-swap).## Sponsors
Fixer is a simple and lightweight API for foreign exchange rates that supports up to 170 world currencies.
currencylayer provides reliable exchange rates and currency conversions for your business up to 168 world currencies.
exchangerates provides reliable exchange rates and currency conversions for your business with over 15 data sources.
## QuickStart
```bash
$ composer require php-http/curl-client nyholm/psr7 php-http/message florianv/swap
``````php
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 currencylayer service as first fallback
->add('apilayer_currency_data', ['api_key' => 'Get your key here: https://currencylayer.com'])
// Use the exchangerates service as second fallback
->add('apilayer_exchange_rates_data', ['api_key' => 'Get your key here: https://exchangeratesapi.io/'])
->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](#sponsors), providing a free plan up to 100 requests per month.
## Documentation
The documentation for the current branch can be found [here](https://github.com/florianv/swap/blob/master/doc/readme.md).
## Services
Here is the list of the currently implemented services:
| Service | Base Currency | Quote Currency | Historical |
|---------------------------------------------------------------------------|----------------------|----------------|----------------|
| [Fixer](https://fixer.io/) | EUR (free, no SSL), * (paid) | * | Yes |
| [Currency Data](https://currencylayer.com) | USD (free), * (paid) | * | Yes |
| [Exchange Rates Data](https://exchangeratesapi.io/) | USD (free), * (paid) | * | Yes |
| [Abstract](https://www.abstractapi.com) | * | * | Yes |
| [coinlayer](https://coinlayer.com) | * Crypto (Limited standard currencies) | * Crypto (Limited standard currencies) | Yes |
| [Fixer](https://fixer.io) | EUR (free, no SSL), * (paid) | * | Yes |
| [Currency Data](https://currencylayer.com) | USD (free), * (paid) | * | Yes |
| [exchangeratesapi](https://exchangeratesapi.io) | USD (free), * (paid) | * | Yes |
| [European Central Bank](https://www.ecb.europa.eu/home/html/index.en.html) | EUR | * | Yes |
| [National Bank of Georgia](https://nbg.gov.ge) | * | GEL | Yes |
| [National Bank of the Republic of Belarus](https://www.nbrb.by) | * | BYN (from 01-07-2016),
BYR (01-01-2000 - 30-06-2016),
BYB (25-05-1992 - 31-12-1999) | Yes |
| [National Bank of Romania](http://www.bnr.ro) | 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](https://bank.gov.ua) | * | UAH | Yes |
| [Central Bank of the Republic of Turkey](http://www.tcmb.gov.tr) | * | TRY | Yes |
| [Central Bank of the Republic of Uzbekistan](https://cbu.uz) | * | UZS | Yes |
| [Central Bank of the Czech Republic](https://www.cnb.cz) | * | CZK | Yes |
| [Central Bank of Russia](https://cbr.ru) | * | RUB | Yes |
| [Bulgarian National Bank](http://bnb.bg) | * | BGN | Yes |
| [WebserviceX](http://www.webservicex.net) | * | * | No |
| [1Forge](https://1forge.com) | * (free but limited or paid) | * (free but limited or paid) | No |
| [Cryptonator](https://www.cryptonator.com) | * Crypto (Limited standard currencies) | * Crypto (Limited standard currencies) | No |
| [CurrencyDataFeed](https://currencydatafeed.com) | * (free but limited or paid) | * (free but limited or paid) | No |
| [Open Exchange Rates](https://openexchangerates.org) | USD (free), * (paid) | * | Yes |
| [Xignite](https://www.xignite.com) | * | * | Yes |
| [Currency Converter API](https://www.currencyconverterapi.com) | * | * | Yes (free but limited or paid) |
| [xChangeApi.com](https://xchangeapi.com) | * | * | Yes |
| [fastFOREX.io](https://www.fastforex.io) | USD (free), * (paid) | * | No |
| [exchangerate.host](https://www.exchangerate.host) | * | * | Yes |
| Array | * | * | Yes |Additionally, you can add your own services as long as they implement the `ExchangeRateService` interface.
## Integrations
- A Symfony Bundle [FlorianvSwapBundle](https://github.com/florianv/FlorianvSwapBundle)
- A Laravel Package [florianv/laravel-swap](https://github.com/florianv/laravel-swap)## Credits
- [Florian Voutzinos](https://github.com/florianv)
- [All Contributors](https://github.com/florianv/swap/contributors)## License
The MIT License (MIT). Please see [LICENSE](https://github.com/florianv/swap/blob/master/LICENSE) for more information.