Exchange Rates API

Exchange Rates API — keyless JSON API

📈 FinanceUNMONITORED
AUTH NONECORS AGENT ?HTTPS COMMERCIAL ?

Exchange Rates API. The Exchange Rates API is a developer-friendly data service providing official Reserve Bank of Australia (RBA) exchange rate data through clean, modern REST API endpoints. We transform publicly available RBA data into instant JSON responses.

HOW IT'S SCORED ⓘ
Status badge · for your READMEshipapis health badge: — · unmonitored
ON PROBE SCHEDULE

We probe a documented GET and expect 2xx JSON — full uptime and health score. Open provider docs ↗

Uptime historystarts after first probe

On our probe schedule. Uptime charts appear after the first check lands.

Example responsefrom provider docs — not verified by us
GET https://docs.exchangeratesapi.com.au/openapi.json

{
  "openapi": "3.1.0",
  "info": {
    "title": "RBA Exchange Rates API",
    "description": "Official Reserve Bank of Australia (RBA) exchange rate data through a modern REST API. Transforms publicly available RBA data into clean JSON endpoints for Australian businesses and developers who need reliable AUD exchange rates.",
    "version": "1.0.0",
    "license": {
      "name": "MIT"
    },
    "contact": {
      "url": "https://www.exchangeratesapi.com.au"
    }
  },
  "servers": [
    {
      "url": "https://api.exchangeratesapi.com.au",
      "description": "Production API"
    }
  ],
  "paths": {
    "/": {
      "get": {
        "operationId": "getApiRoot",
        "summary": "API Root",
        "description": "Returns basic API information and documentation link",
        "responses": {
          "200": {
            "description": "API information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RootResponse"
                },
                "example": {
                  "success": true,
                  "message": "RBA Exchange Rates API",
                  "documentation": "https://docs.exchangeratesapi.com.au",
                  "version": "1.0.0"
                }
              }
            }
          }
        }
      }
    },
    "/status": {
      "get": {
        "operationId": "getApiStatus",
        "summary": "API Status",
        "description": "Returns operational status of the API including last update time and data freshness",
        "responses": {
          "200": {
            "description": "API status information",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                },
                "example": {
                  "status": "operational",
                  "last_update": "2025-09-01T16:00:00Z",
                  "stale": false,
                  "next_update_expected": "2025-09-02T06:00:00Z"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StatusResponse"
                }
              }
            }
          }
        }
      }
    },
    "/symbols": {
      "get": {
        "operationId": "getSupportedCurrencies",
        "summary": "Supported Currencies",
        "description": "List all supported currencies with their names, symbols, and countries",
        "responses": {
          "200": {
            "description": "List of supported currencies",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SymbolsResponse"
                },
                "example": {
                  "success": true,
                  "symbols": {
                    "USD": {
                      "name": "US Dollar",
                      "symbol": "$",
                      "country": "United States"
                    },
                    "EUR": {
                      "name": "Euro",
                      "symbol": "€",
                      "country": "European Union"
                    }
                  },
                  "count": 21,
                  "base": "AUD",
                  "note": "All rates are quoted as AUD per unit of foreign currency from the Reserve Bank of Australia"
                }
              }
            }
          }
        }
      }
    },
    "/convert": {
      "get": {
        "operationId": "convertCurrency",
        "summary": "Currency Conversion",
        "description": "Convert amounts between currencies. Requires authentication. Free tier: 300, no historical data. Starter: 5,000/month, 30 days history. Professional: 50,000/month, full history. Business: 500,000/month, full history.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "description": "Source currency code",
            "schema": {
              "$ref": "#/components/schemas/CurrencyCode"
            },
            "example": "AUD"
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "description": "Target currency code",
            "schema": {
              "$ref": "#/components/schemas/CurrencyCode"
            },
            "example": "USD"
          }
        ],
        "responses": {
          "200": {
            "description": "Conversion result",
            "headers": {
              "X-RateLimit-Limit-Monthly": {
                "description": "Monthly request limit based on plan (Free=300, Starter=5,000, Professional=50,000, Business=500,000)",
                "schema": {
                  "type": "integer"
                }
              },
              "X-RateLimit-Remaining-Monthly": {
                "description": "Remaining requests in current monthly period",
                "schema": {
                  "type": "integer"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConvertResponse"
                },
                "example": {
                  "success": true,
                  "query": {
                    "from": "AUD",
                    "to": "USD",
                    "amount": 100
                  },
                  "info": {
                    "timestamp": 1725148800,
                    "rate": 0.678234
                  },
                  "date": "2025-09-01",
                  "result": 67.8234
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "429": {
            "$ref": "#/components/responses/RateLimitExceeded"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        }
      }
    },
    "/latest": {
      "get": {
        "operationId": "getLatestRates",
        "summary": "Latest Exchange Rates",
        "description": "Get all current exchange rates from the Reserve Bank of Australia with optional filtering. Quota limits: Free=300 (one-time trial), Starter=5,000/month, Professional=50,000/month, Business=500,000/month.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "symbols",
            "in": "query",
            "required": false,
            "description": "Comma-separated list of currency codes to filter results",
            "schema": {
              "type": "string"
            },
            "example": "USD,EUR,GBP"
          },
          {
            "name": "base",
            "in": "query",
            "required": false,
            "description": "Base currency (currently only AUD supported)",
            "schema": {
              "type": "string",
              "enum": [
                "AUD"
              ]
            },
            "example": "AUD"
          }
        ],
        "responses": {
          "200": {
            "description": "Latest exchange rates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LatestRatesResponse"
                },
                "example": {
                  "success": true,
                  "timestamp": 1725148800,
                  "base": "AUD",
                  "date": "2025-09-01",
                  "rates": {
                    "USD": 0.678234,
                    "EUR": 0.612345,
                    "GBP": 0.534567
                  }
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        }
      }
    },
    "/latest/{currency}": {
      "get": {
        "operationId": "getLatestRateForCurrency",
        "summary": "Latest Rate for Currency",
        "description": "Get the current exchange rate for a specific currency. Quota limits: Free=300 (one-time trial), Starter=5,000/month, Professional=50,000/month, Business=500,000/month.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "currency",
            "in": "path",
            "required": true,
            "description": "Currency code",
            "schema": {
              "$ref": "#/components/schemas/CurrencyCode"
            },
            "example": "USD"
          }
        ],
        "responses": {
          "200": {
            "description": "Latest exchange rate for currency",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LatestRatesResponse"
                },
                "example": {
                  "success": true,
                  "timestamp": 1725148800,
                  "base": "AUD",
                  "date": "2025-09-01",
                  "rates": {
                    "USD": 0.678234
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        }
      }
    },
    "/timeseries": {
      "get": {
        "operationId": "getTimeseriesRates",
        "summary": "Historical Exchange Rates",
        "description": "Get exchange rates for a date range. Historical access: Free=blocked, Starter=30 days, Professional/Business=full history. Date range limits: Starter=7 days, Professional=90 days, Business=365 days.",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "start_date",
            "in": "query",
            "required": true,
            "description": "Start date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "example": "2025-08-01"
          },
          {
            "name": "end_date",
            "in": "query",
            "required": true,
            "description": "End date (YYYY-MM-DD)",
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "example": "2025-08-31"
          }
        ],
        "responses": {
          "200": {
            "description": "Historical exchange rates",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TimeseriesResponse"
                },
                "example": {
                  "success": true,
                  "timeseries": true,
                  "start_date": "2025-08-01",
                  "end_date": "2025-08-31",
                  "base": "AUD",
                  "rates": {
                    "2025-08-01": {
                      "USD": 0.678234,
                      "EUR": 0.612345
                    },
                    "2025-08-02": {
                      "USD": 0.679123,
                      "EUR": 0.613456
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/{date}": {
      "get": {
        "operationId": "getHistoricalRatesForDate",
        "summary": "Historical Rates for Date",
        "description": "Get all exchange rates for a specific historical date. Historical access: Free=none, Starter=30 days, Professional/Business=full history (2018+).",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "date",
            "in": "path",
            "required": true,
            "description": "Date in YYYY-MM-DD format",
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            },
            "example": "2025-08-31"
          }
        ],
        "responses": {
          "200": {
            "description": "Exchange rates for the specified date",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LatestRatesResponse"
                },
                "example": {
                  "success": true,
                  "timestamp": 1725062400,
                  "base": "AUD",
                  "date": "2025-08-31",
                  "rates": {
                    "USD": 0.678234,
                    "EUR": 0.612345,
                    "GBP": 0.534567
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "API Key",
        "description": "API key authentication using Bearer token"
      }
    },
    "schemas": {
      "CurrencyCode": {
        "type": "string",
        "enum": [
          "AUD",
          "USD"
        ],
        "description": "Three-letter currency code"
      },
      "CurrencyInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Full name of the currency"
          },
          "symbol": {
            "type": "string",
            "description": "Currency symbol"
          },
          "country": {
            "type": "string",
            "description": "Country or region"
          }
        },
        "required": [
          "name",
          "symbol"
        ]
      },
      "RatesObject": {
        "type": "object",
        "additionalProperties": {
          "type": "number",
          "minimum": 0,
          "description": "Exchange rate (AUD per unit of foreign currency) with precision varying by currency (up to 6 decimal places for most, whole numbers for IDR/VND as provided by RBA)"
        },
        "description": "Object containing currency codes as keys and exchange rates as values"
      },
      "RootResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "message": {
            "type": "string"
          },
          "documentation": {
            "type": "string",
            "format": "uri"
          },
          "version": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "message"
        ]
      },
      "StatusResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "operational",
              "degraded"
            ],
            "description": "Current API status"
          },
          "last_update": {
            "type": "string",
            "description": "Last successful data update timestamp or 'unknown'"
          },
          "stale": {
            "type": "boolean",
            "description": "Whether the data is considered stale"
          },
          "next_update_expected": {
            "type": "string",
            "description": "ISO 8601 timestamp of when next RBA update is expected"
          }
        },
        "required": [
          "status",
          "last_update"
        ]
      },
      "SymbolsResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "symbols": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/CurrencyInfo"
            }
          },
          "count": {
            "type": "integer",
            "description": "Number of supported currencies"
          },
          "base": {
            "type": "string",
            "example": "AUD"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "success",
          "symbols"
        ]
      },
      "LatestRatesResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "timestamp": {
            "type": "integer",
            "description": "Unix timestamp of the rate date"
          },
          "base": {
            "type": "string",
            "example": "AUD"
          },
          "date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "description": "Date of the rates (YYYY-MM-DD)"
          },
          "rates": {
            "$ref": "#/components/schemas/RatesObject"
          }
        },
        "required": [
          "success",
          "timestamp"
        ]
      },
      "ConvertResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "example": true
          },
          "query": {
            "type": "object",
            "properties": {
              "from": {
                "type": "string"
              },
              "to": {
                "type": "string"
              },
              "amount": {
                "type": "number"
              }
            },
            "required": [
              "from",
              "to"
            ]
          },
          "info": {
            "type": "object",
            "properties": {
              "timestamp": {
                "type": "integer",
                "description": "Unix timestamp of the rate date"
              },
              "rate": {
                "type": "number",
                "description": "Exchange rate used for conversion with precision varying by currency (up to 6 decimal places for most, whole numbers for IDR/VND as provided by RBA)"
              }
            },
            "required": [
              "rate"
            ]
          },
          "date": {
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "result": {
            "type": "number",
            "description": "Conversion result"
          }
        },
        "required": [
          "success",
          "query"
        ]
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Bad request - invalid parameters",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "success": false,
              "error": {
                "code": 400,
                "type": "bad_request",
                "info": "Invalid currency format. Use 3-letter currency code (e.g., USD)"
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Authentication required",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "success": false,
              "error": {
                "code": 401,
                "type": "unauthorized",
                "info": "Invalid or missing API key"
              }
            }
          }
        }
      },
      "NotFound": {
        "description": "Resource not found",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "success": false,
              "error": {
                "code": 404,
                "type": "not_found",
                "info": "No data available for the specified date"
              }
            }
          }
        }
      },
      "RateLimitExceeded": {
        "description": "Rate limit exceeded",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "success": false,
              "error": {
                "code": 429,
                "type": "rate_limit",
                "info": "Quota exceeded. Free=300 (one-time trial), Starter=5,000/month, Professional=50,000/month, Business=500,000/month."
              }
            }
          }
        }
      },
      "ServiceUnavailable": {
        "description": "Service temporarily unavailable",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "success": false,
              "error": {
                "code": 503,
                "type": "unavailable",
                "info": "Rates temporarily unavailable"
              }
            }
          }
        }
      },
      "MethodNotAllowed": {
        "description": "Method not allowed",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            },
            "example": {
              "success": false,
              "error": {
                "code": 405,
                "type": "method_not_allowed",
                "info": "Method POST not allowed. Only GET, HEAD, and OPTIONS are supported."
              }
            }
          }
        }
      }
    }
  }
}
Call itcurl · fetch · python
curl "https://docs.exchangeratesapi.com.au/openapi.json"
const res = await fetch("https://docs.exchangeratesapi.com.au/openapi.json");
const data = await res.json();
console.log(data);
import requests

res = requests.get("https://docs.exchangeratesapi.com.au/openapi.json")
print(res.json())

BROWSER CALLS BLOCKED (NO CORS/HTTPS) — USE THE CURL SNIPPET

Endpoints · 6On scheduleFULL DOCS ↗
On schedule — GET /openapi.json awaits first probe
GET/openapi.jsonPROBED

Exchange Rates API — keyless JSON API

GET/openapi.json?limit=5

Paginated variant with limit parameter.

GET/

API Root

GET/status

API Status

GET/symbols

Supported Currencies

GET/convert

Currency Conversion

Machine-readable spec

We probe a documented GET and expect 2xx JSON — full uptime and health score. Export includes every documented route below.

Response-shape history

Not tracked yet. Shape-change history starts once this API joins our probe schedule.

Exchange Rates API: common questions

Is Exchange Rates API free to use?

Yes — Exchange Rates API is a free finance API. Free tier: Free — limits not published. Whether the free tier allows commercial use is unclear — check the provider docs.

Does Exchange Rates API need an API key?

No — Exchange Rates API needs no API key or signup. You can call it straight away; rate limits still apply (Unpublished).

Can I call Exchange Rates API from the browser?

Not directly — Exchange Rates API doesn't send browser-friendly CORS headers, so call it from a server or proxy instead. Copy the curl or Python snippet on this page to get started.

Is Exchange Rates API up right now?

Exchange Rates API is catalogued but not yet on our probe schedule, so we don't publish a live status for it. Check the provider's own status page or docs for its current state.