Exchange Rate API

Your reliable source for exchange rates. Fast, simple, and free.

/
-

Integration Examples

PHP Example


$client = new HttpClient();
$date = new DateTimeImmutable();
$currency = 'USD';
$baseCurrency = 'EUR';

$url = sprintf(
    'https://exrate.xakki.pro/api/v1/rate?date=%s¤cy=%s&base_currency=%s',
    $date->format('Y-m-d'),
    $currency,
    $baseCurrency
);

$response = $client->request('GET', $url, [
    'headers' => [
        'Accept' => 'application/json',
    ]
]);

if ($response->getStatusCode() === 200) {
    $data = $response->toArray();
    echo "Rate: " . $data['rate'];
}
            

Python Example


import requests
from datetime import datetime

date = datetime.now().strftime('%Y-%m-%d')
currency = 'USD'
base_currency = 'EUR'

url = f'https://exrate.xakki.pro/api/v1/rate?date={date}¤cy={currency}&base_currency={base_currency}'

response = requests.get(url, headers={'Accept': 'application/json'})

if response.status_code == 200:
    data = response.json()
    print(f"Rate: {data['rate']}")
            

Node.js Example


const fetch = require('node-fetch');

const date = new Date().toISOString().slice(0, 10);
const currency = 'USD';
const baseCurrency = 'EUR';

const url = `https://exrate.xakki.pro/api/v1/rate?date=${date}¤cy=${currency}&base_currency=${baseCurrency}`;

fetch(url, {
    headers: { 'Accept': 'application/json' }
})
    .then(res => {
        if (res.status === 200) {
            return res.json();
        }
    })
    .then(data => {
        if (data) {
            console.log(`Rate: ${data.rate}`);
        }
    });
            

Go Example


package main

import (
	"fmt"
	"net/http"
	"io/ioutil"
	"time"
	"encoding/json"
)

func main() {
	date := time.Now().Format("2006-01-02")
	currency := "USD"
	baseCurrency := "EUR"

	url := fmt.Sprintf("https://exrate.xakki.pro/api/v1/rate?date=%s¤cy=%s&base_currency=%s", date, currency, baseCurrency)

	req, _ := http.NewRequest("GET", url, nil)
	req.Header.Add("Accept", "application/json")

	client := &http.Client{}
	resp, err := client.Do(req)
	if err != nil {
		// handle error
	}
	defer resp.Body.Close()

	if resp.StatusCode == http.StatusOK {
		body, err := ioutil.ReadAll(resp.Body)
		if err != nil {
			// handle error
		}

		var result map[string]interface{}
		json.Unmarshal(body, &result)

		fmt.Printf("Rate: %v
", result["rate"])
	}
}