Overview
The symbols endpoint returns detailed information about all currencies supported by the Exchange Rates API. This includes currency names, symbols, country information, and notes about special currencies.
This endpoint is public and doesn’t require authentication. It’s perfect for building currency selection dropdowns and validation logic.
Request
curl https://api.exchangeratesapi.com.au/symbols
Response
{
"success" : true ,
"symbols" : {
"AUD" : {
"name" : "Australian Dollar" ,
"symbol" : "$" ,
"country" : "Australia"
},
"USD" : {
"name" : "US Dollar" ,
"symbol" : "$" ,
"country" : "United States"
},
"EUR" : {
"name" : "Euro" ,
"symbol" : "€" ,
"country" : "European Union"
},
"GBP" : {
"name" : "British Pound Sterling" ,
"symbol" : "£" ,
"country" : "United Kingdom"
},
"JPY" : {
"name" : "Japanese Yen" ,
"symbol" : "¥" ,
"country" : "Japan"
},
"TWI" : {
"name" : "Trade-Weighted Index" ,
"symbol" : "TWI" ,
"country" : "Australia"
},
"SDR" : {
"name" : "Special Drawing Rights" ,
"symbol" : "SDR" ,
"country" : "IMF"
}
},
"count" : 21 ,
"base" : "AUD" ,
"note" : "All rates are quoted as AUD per unit of foreign currency from the Reserve Bank of Australia"
}
Always true for successful responses
Object containing currency information keyed by ISO 4217 currency code
Full name of the currency
Currency symbol or abbreviation used for display
Country or region where the currency is used
Total number of supported currencies
Base currency for all exchange rates (always “AUD”)
General information about how rates are quoted
Supported Currencies
Major Global Currencies
Code Name Symbol Country USD US Dollar $ United States EUR Euro € European Union GBP British Pound Sterling £ United Kingdom JPY Japanese Yen ¥ Japan CHF Swiss Franc CHF Switzerland CAD Canadian Dollar $ Canada
Asia-Pacific Region
Code Name Symbol Country CNY Chinese Renminbi ¥ China KRW South Korean Won ₩ South Korea SGD Singapore Dollar $ Singapore NZD New Zealand Dollar $ New Zealand HKD Hong Kong Dollar $ Hong Kong TWD Taiwan New Dollar NT$ Taiwan INR Indian Rupee ₹ India THB Thai Baht ฿ Thailand MYR Malaysian Ringgit RM Malaysia IDR Indonesian Rupiah¹ Rp Indonesia VND Vietnamese Dong¹ ₫ Vietnam PHP Philippine Peso ₱ Philippines
¹ IDR and VND Precision : Indonesian Rupiah and Vietnamese Dong are provided as whole numbers (no decimal places) by the Reserve Bank of Australia source data.
Special Currencies
Code Name Symbol Notes AUD Australian Dollar $ Base currency TWI Trade-Weighted Index TWI Australia’s trade-weighted index; not available for conversion SDR Special Drawing Rights SDR International Monetary Fund reserve asset
TWI Conversion Restriction : The Trade-Weighted Index (TWI) is included in rate listings but cannot be used in conversion operations (/convert endpoint). Using TWI as from or to parameter will return a 400 error.
Building Currency Dropdowns
Use the symbols endpoint to populate currency selection interfaces:
React Example
Flask Example
Laravel Example
import { useState , useEffect } from 'react' ;
function CurrencySelect ({ onSelect , excludeTWI = false }) {
const [ currencies , setCurrencies ] = useState ([]);
const [ loading , setLoading ] = useState ( true );
useEffect (() => {
async function fetchCurrencies () {
try {
const response = await fetch ( 'https://api.exchangeratesapi.com.au/symbols' );
const data = await response . json ();
let currencyList = Object . entries ( data . symbols ). map (([ code , info ]) => ({
code ,
name: info . name ,
symbol: info . symbol ,
country: info . country ,
hasNote: !! info . note
}));
// Optionally exclude TWI for conversion interfaces
if ( excludeTWI ) {
currencyList = currencyList . filter ( c => c . code !== 'TWI' );
}
// Sort alphabetically by code
currencyList . sort (( a , b ) => a . code . localeCompare ( b . code ));
setCurrencies ( currencyList );
} catch ( error ) {
console . error ( 'Failed to fetch currencies:' , error );
} finally {
setLoading ( false );
}
}
fetchCurrencies ();
}, [ excludeTWI ]);
if ( loading ) return < div > Loading currencies... </ div > ;
return (
< select onChange = { ( e ) => onSelect ( e . target . value ) } >
< option value = "" > Select currency... </ option >
{ currencies . map (( currency ) => (
< option key = { currency . code } value = { currency . code } >
{ currency . code } - { currency . name } ( { currency . symbol } )
</ option >
)) }
</ select >
);
}
Validation Logic
Use the symbols data for input validation:
class CurrencyValidator {
constructor () {
this . supportedCurrencies = new Set ();
this . conversionBlacklist = new Set ([ 'TWI' ]); // Currencies not allowed for conversion
this . loadCurrencies ();
}
async loadCurrencies () {
try {
const response = await fetch ( 'https://api.exchangeratesapi.com.au/symbols' );
const data = await response . json ();
this . supportedCurrencies = new Set ( Object . keys ( data . symbols ));
} catch ( error ) {
console . error ( 'Failed to load currency symbols:' , error );
// Fallback to hardcoded list
this . supportedCurrencies = new Set ([ 'AUD' , 'USD' , 'EUR' , 'GBP' , 'JPY' ]);
}
}
isValidCurrency ( code ) {
return this . supportedCurrencies . has ( code . toUpperCase ());
}
canConvert ( fromCode , toCode ) {
const from = fromCode . toUpperCase ();
const to = toCode . toUpperCase ();
return this . isValidCurrency ( from ) &&
this . isValidCurrency ( to ) &&
! this . conversionBlacklist . has ( from ) &&
! this . conversionBlacklist . has ( to );
}
}
// Usage
const validator = new CurrencyValidator ();
// Validate user input
if ( ! validator . isValidCurrency ( 'XYZ' )) {
console . error ( 'XYZ is not a supported currency' );
}
// Check conversion compatibility
if ( ! validator . canConvert ( 'AUD' , 'TWI' )) {
console . error ( 'TWI cannot be used for conversion operations' );
}
HTTP/2 200 OK
Content-Type : application/json
Cache-Control : public, max-age=86400
X-Request-Id : 123e4567-e89b-12d3-a456-426614174000
X-Response-Time : 12ms
The symbols endpoint is cached for 24 hours (max-age=86400) since supported currencies rarely change. This helps improve performance and reduces unnecessary requests.
Common Use Cases
1. Currency Selection Interface
Build dropdown menus or search interfaces for currency selection.
Validate user-provided currency codes before making API requests.
Use currency symbols and names for user-friendly display of rates and amounts.
4. Feature Detection
Check if specific currencies are supported before implementing features.
5. Conversion Compatibility
Determine which currencies can be used with the /convert endpoint (excluding TWI).
Error Responses
The symbols endpoint is highly reliable, but may occasionally return errors:
{
"success" : false ,
"error" : {
"code" : 503 ,
"type" : "service_unavailable" ,
"info" : "Symbols service temporarily unavailable"
}
}
In such cases, implement fallback logic with a hardcoded list of major currencies to maintain functionality. List of supported currencies
Number of supported currencies