S Spwig Marketplace
ExchangeRatesAPI.io
Exchange Rate Provider

ExchangeRatesAPI.io

by Spwig ✓ Verified · v1.1.0
0 installs
Free

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