ExchangeRatesAPI.io
Install directly from your Spwig admin → Don't have Spwig yet?
Screenshots
About this component
Real-time exchange rates for 168+ currencies including commodities (Gold, Silver) powered by ExchangeRatesAPI.io (APILayer)
Versions
v1.1.0
2026-08-01
- SECURITY/correctness: exchange-rate values are parsed with parse_float=Decimal so the provider's exact decimal value is preserved for pricing instead of going through a lossy float.
- Fixed: currency codes are validated and normalised (ISO-4217, upper-case) before lookup/use — a lower-case code previously failed a rate lookup even when the rate existed.
- SECURITY: raw provider response bodies are no longer echoed into returned error details.
v1.0.2
2025-10-25
# Changelog
All notable changes to the ExchangeRatesAPI.io exchange rate provider will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2025-10-24
### Added
- Initial release of ExchangeRatesAPI.io provider
- Support for 168+ currencies via ExchangeRatesAPI.io (APILayer)
- Real-time exchange rates with hourly updates (free tier)
- Automatic conversion for non-EUR base currencies
- Free tier support (250 requests/month)
- Encrypted credential storage (Fernet encryption)
- Comprehensive error handling for all APILayer error codes:
- 101: Invalid Access Key
- 103: API function does not exist
- 104: Rate limit reached
- 105: Access forbidden
- 201: Invalid base currency
- 202: Invalid currency symbols
- HTTP error handling (401, 403, 429, timeout)
- Rate sanity checking and validation
- Test connection via symbols endpoint
- Full unit and integration test coverage
- EUR base currency for free tier (automatic conversion for other bases)
- Credential validation and redaction for secure logging
- Support for get_rate() and get_rates() abstract methods
- Support for get_supported_currencies() method
- Detailed setup instructions with 4-step wizard
- Precious metals support (Gold XAU, Silver XAG, Platinum XPT, Palladium XPD)
### Technical Details
- Base URL: https://api.apilayer.com/exchangerates_data
- Authentication: apikey header parameter
- Response format: JSON with success boolean
- API error format: {"success": false, "error": {"code": 101, "info": "message"}}
- Base currency: EUR (free tier only)
- Conversion formula: GBP_USD = EUR_USD / EUR_GBP
### Dependencies
- Python >= 3.10
- Django >= 4.2
- requests >= 2.28.0
### Notes
- Free tier limited to EUR base currency
- Paid plans (Professional and above) support any base currency
- Historical data requires Basic plan or higher
- Provider automatically handles EUR-to-other-currency conversions
v1.0.1
2025-10-24
# Changelog
All notable changes to the ExchangeRatesAPI.io exchange rate provider will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2025-10-24
### Added
- Initial release of ExchangeRatesAPI.io provider
- Support for 168+ currencies via ExchangeRatesAPI.io (APILayer)
- Real-time exchange rates with hourly updates (free tier)
- Automatic conversion for non-EUR base currencies
- Free tier support (250 requests/month)
- Encrypted credential storage (Fernet encryption)
- Comprehensive error handling for all APILayer error codes:
- 101: Invalid Access Key
- 103: API function does not exist
- 104: Rate limit reached
- 105: Access forbidden
- 201: Invalid base currency
- 202: Invalid currency symbols
- HTTP error handling (401, 403, 429, timeout)
- Rate sanity checking and validation
- Test connection via symbols endpoint
- Full unit and integration test coverage
- EUR base currency for free tier (automatic conversion for other bases)
- Credential validation and redaction for secure logging
- Support for get_rate() and get_rates() abstract methods
- Support for get_supported_currencies() method
- Detailed setup instructions with 4-step wizard
- Precious metals support (Gold XAU, Silver XAG, Platinum XPT, Palladium XPD)
### Technical Details
- Base URL: https://api.apilayer.com/exchangerates_data
- Authentication: apikey header parameter
- Response format: JSON with success boolean
- API error format: {"success": false, "error": {"code": 101, "info": "message"}}
- Base currency: EUR (free tier only)
- Conversion formula: GBP_USD = EUR_USD / EUR_GBP
### Dependencies
- Python >= 3.10
- Django >= 4.2
- requests >= 2.28.0
### Notes
- Free tier limited to EUR base currency
- Paid plans (Professional and above) support any base currency
- Historical data requires Basic plan or higher
- Provider automatically handles EUR-to-other-currency conversions
v1.0.0
2025-10-24
# Changelog
All notable changes to the ExchangeRatesAPI.io exchange rate provider will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - 2025-10-24
### Added
- Initial release of ExchangeRatesAPI.io provider
- Support for 168+ currencies via ExchangeRatesAPI.io (APILayer)
- Real-time exchange rates with hourly updates (free tier)
- Automatic conversion for non-EUR base currencies
- Free tier support (250 requests/month)
- Encrypted credential storage (Fernet encryption)
- Comprehensive error handling for all APILayer error codes:
- 101: Invalid Access Key
- 103: API function does not exist
- 104: Rate limit reached
- 105: Access forbidden
- 201: Invalid base currency
- 202: Invalid currency symbols
- HTTP error handling (401, 403, 429, timeout)
- Rate sanity checking and validation
- Test connection via symbols endpoint
- Full unit and integration test coverage
- EUR base currency for free tier (automatic conversion for other bases)
- Credential validation and redaction for secure logging
- Support for get_rate() and get_rates() abstract methods
- Support for get_supported_currencies() method
- Detailed setup instructions with 4-step wizard
- Precious metals support (Gold XAU, Silver XAG, Platinum XPT, Palladium XPD)
### Technical Details
- Base URL: https://api.apilayer.com/exchangerates_data
- Authentication: apikey header parameter
- Response format: JSON with success boolean
- API error format: {"success": false, "error": {"code": 101, "info": "message"}}
- Base currency: EUR (free tier only)
- Conversion formula: GBP_USD = EUR_USD / EUR_GBP
### Dependencies
- Python >= 3.10
- Django >= 4.2
- requests >= 2.28.0
### Notes
- Free tier limited to EUR base currency
- Paid plans (Professional and above) support any base currency
- Historical data requires Basic plan or higher
- Provider automatically handles EUR-to-other-currency conversions
Ready to install ExchangeRatesAPI.io?
Install from your Spwig admin → Marketplace tab. Don't have a Spwig install yet? The commerce platform is free and open source.
Get Spwig → Browse more