
Fixer API is not just an exchange rate data provider. It provides a wide variety of features with smooth integration to any platform. Fixer API is powered by 15+ exchange rate data sources and delivers real-time exchange rates for 170 world currencies, and plays a significant data source role for users who need forex exchange like data.
The Fixer exchange rate API has multiple endpoints, each serving a different use case, like getting only one currency data or fetching historical data about the forex exchange rates. Moreover, you can convert from one currency to another and retrieve Time-Series data for one or multiple currencies.

Moreover, check out these tutorials that we have shown you how to integrate Fixer.io APIs into your Node.js web app or Delphi cross-platform application.
Table of Contents
Get Your Free API Access Key
Fixer.io delivers a free subscription plan with limited functionality so you can test out the API in your development environment. In addition, it is easy to employ if you want to find out for yourself. Head over to the subscription page and sign up for the Free plan.
How to Use Fixer.io API

Exchange rates delivered by the Fixer API are by default relative to EUR. All data is returned in standard JSON format and can be parsed easily using any programming language.
Example Response: Below, you will find an example API response carrying several common world currencies, all relative to the currency EUR and time-stamped at the exact time they were collected.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{ "success": true, "timestamp": 1519296206, "base": "EUR", "date": "2022-03-03", "rates": { "AUD": 1.566015, "CAD": 1.560132, "CHF": 1.154727, "CNY": 7.827874, "GBP": 0.882047, "JPY": 132.360679, "USD": 1.23396, [...] } } |
As you can see, in any development environment, you can easily integrate Fixer APIs. As represented above, the API’s response – when queried for real-time exchange rates – always includes a timestamp object containing a standard UNIX timestamp indicating the time the given exchange rate data was collected, a base object containing the three-letter currency code of the base currency, a date object including the date the given exchange rate data was gathered. A rates object containing the accurate exchange rate data.
More Features of the Fixer API
The Fixer API has several API endpoints, each providing different functionality. Please note that specific API endpoints may not be available depending on your subscription plan.
- The latest rates endpoint returns real-time exchange rate data for all available or a specific set of currencies.
- Convert endpoint allows for converting any amount from one currency to another.
- Historical rates endpoint Returns historical exchange rate data for all available or specific currencies.
- Time-Series data endpoint Yields daily historical exchange rate data between two selected dates for all known or a specific set of currencies.
- Fluctuation data endpoint Produces oscillation data between two fixed dates for all known or a specific set of currencies.
You can learn how to use all these endpoints on its documentation here.
How to Start a Python Flask Web App?
Before starting, you should install the latest Python on your machine. Then you can install Flask and initialise a new Python Flask web app.
First, you need to write these commands to the PowerShell and initialise a new Python Flask project on your machine.
1 2 3 4 |
mkdir FixerFlaskDemo cd .\FixerFlaskDemo\ touch app.py code . |
1 2 3 |
py -m venv env env\Scripts\activate pip install --upgrade pip |
After this, you can copy and paste this code. It has a fetch endpoint that receives your data and requests information from the endpoint.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
from flask import Flask, request, redirect, url_for import requests app = Flask(__name__) @app.route('/') def hello_world(): # put application's code here return 'Hello World!' ################################# # Real time rates # ################################# @app.route('/result/<string:usd_aud>/<string:usd_eur>/<string:usd_gbp>') def latest_results(usd_aud, usd_eur, usd_gbp): return "<h3>USDAUD: {}; <br>USDEUR: {}; <br>USDGBP: {}</h3>".format(usd_aud, usd_eur, usd_gbp) @app.route('/latest', methods=['GET', 'POST']) def latest(): if request.method == 'GET': return '''<h1>Please fill out the parameters</h1> <form method="POST" action="/latest"> <input type="text" name="acc_key" value="39d5f311be0b4839650bab0c13fc220d"> <input type="text" name="currencies" value="AUD,EUR,GBP"> <input type="submit" value="Request"> </form>''' else: acc_key = request.form['acc_key'] currencies = request.form['currencies'] req = requests.get('http://data.fixer.io/api/latest?access_key=' + acc_key + '&symbols=' + currencies) response = req.json() usd_aud = response['rates']['AUD'] usd_eur = response['rates']['EUR'] usd_gbp = response['rates']['GBP'] return redirect(url_for('latest_results', usd_aud=usd_aud, usd_eur=usd_eur, usd_gbp=usd_gbp)) ################################# # Conversion # ################################# @app.route('/result/<string:from_c>/<string:to_c>/<string:amount>/<string:rate>/<string:result>') def result_conversion(from_c, to_c, amount, rate, result): return "<h3>From: {}; <br>To: {}; <br>Amount: {}; <br> Result: {}; <br> Rate: {};</h3>" \ .format(from_c, to_c, amount, result, rate) @app.route('/conversion', methods=['GET', 'POST']) def conversion(): if request.method == 'GET': return '''<h1>Please fill out the parameters</h1> <form method="POST" action="/conversion"> <input type="text" name="acc_key" value="39d5f311be0b4839650bab0c13fc220d"> <input type="text" name="from" value="from"> <input type="text" name="to" value="to"> <input type="text" name="amount" value="amount"> <input type="submit" value="Request"> </form>''' else: acc_key = request.form['acc_key'] from_c = request.form['from'] to_c = request.form['to'] amount = request.form['amount'] req = requests.get( 'http://data.fixer.io/api/convert?access_key=' + acc_key + '&from=' + from_c + "&to=" + to_c + "&amount=" + amount) response = req.json() rate = response['info']['rate'] result = response['result'] return redirect( url_for('result_conversion', from_c=from_c, to_c=to_c, amount=amount, rate=rate, result=result)) if __name__ == '__main__': app.run() |
You can find the source code others from this repository [1] on GitHub. Here are the results you can see.




Head over to Fixer.io and get your free API access key!
[1] https://github.com/MuminjonGuru/FixerIOwithPythonFlask/tree/main