docs: list unirate_api in provider tables#155
Conversation
Exchanger merged UniRateAPI support in florianv/exchanger#180. Swap auto-inherits provider services from Exchanger's Registry, so `->add('unirate_api', ['api_key' => getenv('UNIRATE_API_KEY')])` already works on master; only the docs were missing. - README.md: add row to commercial providers table (alphabetical position between `open_exchange_rates` and `webservicex`); bump provider counts 30 → 31 in tagline, providers section, and the Exchanger sibling-package line. - doc/readme.md: add `unirate_api` / `api_key` row to the commercial config table. UniRateAPI is a commercial REST API for FX (latest rates on the free tier; historical and commodities on the paid tier — same shape as the other paid providers in the table).
There was a problem hiding this comment.
Pull request overview
Updates Swap’s documentation to include the newly added UniRateAPI provider (registered upstream in Exchanger as unirate_api) and to reflect an updated total provider count.
Changes:
- Add UniRateAPI (
unirate_api) to the README commercial providers table. - Add
unirate_api/api_keyto the provider configuration reference indoc/readme.md. - Update several README references from “30 providers” to “31 providers”.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
| README.md | Adds UniRateAPI to the commercial providers list and updates stated provider counts. |
| doc/readme.md | Documents unirate_api configuration (api_key) in the commercial provider options table. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| [](https://packagist.org/packages/florianv/swap) | ||
|
|
||
| > _The easy-to-use PHP currency conversion library. Retrieve exchange rates from 30 providers, with caching and fallback. Maintained since 2014._ | ||
| > _The easy-to-use PHP currency conversion library. Retrieve exchange rates from 31 providers, with caching and fallback. Maintained since 2014._ |
| ## 📊 Providers | ||
|
|
||
| Swap supports 30 exchange rate providers. Pass the **identifier** to `Builder::add()`. | ||
| Swap supports 31 exchange rate providers. Pass the **identifier** to `Builder::add()`. |
|
|
||
| - [**Swap**](https://github.com/florianv/swap). The easy-to-use, high-level API (this package). | ||
| - [**Exchanger**](https://github.com/florianv/exchanger). Lower-level, more granular alternative; direct access to the 30 provider implementations and the `ExchangeRateService` interface. | ||
| - [**Exchanger**](https://github.com/florianv/exchanger). Lower-level, more granular alternative; direct access to the 31 provider implementations and the `ExchangeRateService` interface. |
|
Quick note on the Copilot suggestions about the The Exchanger PR that adds UniRateAPI (florianv/exchanger#180) merged 2026-05-18, but the most recent tagged Exchanger release (2.9.1, 2026-05-14) was before that, so packagist installs of Happy with either path here, whichever you prefer:
No pending changes on my end otherwise — just let me know. (Disclosure unchanged: I work on UniRateAPI, raised in the PR body.) |
Adds UniRateAPI to the documented provider lists, following florianv/exchanger#180 which landed the
UniRateApiservice and registered it under the identifierunirate_apiinExchanger\Service\Registry.Swap\Service\Registryalready pulls every entry fromExchangerRegistry::getServices(), so once Exchanger ships its next tagged release this is usable on master as-is:This PR only updates the docs.
Changes
UniRateAPIrow to the commercial provider table, alphabetical betweenopen_exchange_ratesandwebservicex; bumps the provider count30 → 31in three places (tagline, Providers section, sibling-package line for Exchanger).unirate_api/api_keyto the commercial provider configuration table.Notes
unirate_apimatches the key used in Exchanger'sRegistry::getServices()after #180./api/historical) and commodities are paid-tier only — the upstreamUniRateApi.phpmaps HTTP 403 from those endpoints toExchanger\Exception\ChainException, matching the existing fastFOREX / Fixer behaviour for plan-gated endpoints.Disclosure
I work with UniRateAPI. The implementation work (Exchanger #180) was done first; opening this docs PR now that the merge has landed so users can discover the provider through the standard table without needing to read the changelog. Happy to revise the wording or drop the count bump if you'd rather hold the count fixed until the next Exchanger release tag.