Skip to main content
GET
/
symbols
Supported Currencies
curl --request GET \
  --url https://api.exchangeratesapi.com.au/symbols
{
  "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"
}

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"
}
success
boolean
required
Always true for successful responses
symbols
object
required
Object containing currency information keyed by ISO 4217 currency code
symbols.{code}.name
string
required
Full name of the currency
symbols.{code}.symbol
string
required
Currency symbol or abbreviation used for display
symbols.{code}.country
string
required
Country or region where the currency is used
count
number
required
Total number of supported currencies
base
string
required
Base currency for all exchange rates (always “AUD”)
note
string
General information about how rates are quoted

Supported Currencies

Major Global Currencies

CodeNameSymbolCountry
USDUS Dollar$United States
EUREuroEuropean Union
GBPBritish Pound Sterling£United Kingdom
JPYJapanese Yen¥Japan
CHFSwiss FrancCHFSwitzerland
CADCanadian Dollar$Canada

Asia-Pacific Region

CodeNameSymbolCountry
CNYChinese Renminbi¥China
KRWSouth Korean WonSouth Korea
SGDSingapore Dollar$Singapore
NZDNew Zealand Dollar$New Zealand
HKDHong Kong Dollar$Hong Kong
TWDTaiwan New DollarNT$Taiwan
INRIndian RupeeIndia
THBThai Baht฿Thailand
MYRMalaysian RinggitRMMalaysia
IDRIndonesian Rupiah¹RpIndonesia
VNDVietnamese Dong¹Vietnam
PHPPhilippine PesoPhilippines
¹ 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

CodeNameSymbolNotes
AUDAustralian Dollar$Base currency
TWITrade-Weighted IndexTWIAustralia’s trade-weighted index; not available for conversion
SDRSpecial Drawing RightsSDRInternational 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:
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');
}

Response Headers

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.

2. Input Validation

Validate user-provided currency codes before making API requests.

3. Display Formatting

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.

Response

200 - application/json

List of supported currencies

success
boolean
required
Example:

true

symbols
object
required
count
integer
required

Number of supported currencies

base
string
required
Example:

"AUD"

note
string
required