API обміну валют для розробників

CurrencyRateAPI забезпечує блискавично швидкий доступ до актуальних та історичних курсів обміну валют, отриманих безпосередньо від надійних центральних банків, включаючи Європейський центральний банк.

Створений для розробників, наш RESTful API надає чисті JSON-відповіді та підтримує легку інтеграцію з веб-сайтами, додатками або внутрішніми системами за лічені хвилини — без зайвих складнощів.

GET https://currencyrateapi.com/api/latest?
    base=USD HTTP/1.1

{
    "success": true,
    "base": "usd",
    "date": "2026-01-18",
    "rates": {
        "GBP": 0.8820,
        "JPY": 132.36,
        "EUR": 0.8133
    },
    "last_update_unix": 1737214206
}

Використання API

Використайте цей запит, щоб отримати повний список підтримуваних валют з відповідними 3-літерними кодами

GET https://currencyrateapi.com/api/codes HTTP/1.1

Скористайтеся цим запитом, щоб отримати найновіші обмінні курси фунтів стерлінгів та японських єн відносно долара США.

GET https://currencyrateapi.com/api/latest?base=USD&codes=GBP,JPY HTTP/1.1

Скористайтеся цим запитом, щоб отримати історичні курси обміну доларів США, євро та канадських доларів відносно фунта стерлінгів станом на 25 травня 2020 року

GET https://currencyrateapi.com/api/2020-05-25?base=GBP&codes=USD,EUR,CAD HTTP/1.1

Мови програмування

CurrencyRateAPI можна інтегрувати в будь-який проект і він підтримує всі основні мови програмування.
Розроблений для гнучкості та простоти використання, наш API природно вписується у веб-, мобільні та бекенд-додатки — незалежно від вашого технологічного стеку.
$baseCurrency = 'USD';
$codes = 'EUR,CAD,JPY';

$url = 'https://currencyrateapi.com/api/latest?codes=' . $codes .
       '&base=' . $baseCurrency;

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$jsonResponse = curl_exec($ch);
curl_close($ch);

$objResponse = json_decode($jsonResponse);
echo "1 " . $baseCurrency . " is " . $objResponse->rates->EUR . " Euros";
/* Outputs 1 USD is 0.8133 Euros */
base = 'USD'
codes = 'EUR,CAD,JPY'

url = (
    f'https://currencyrateapi.com/api/latest?codes={codes}'
    f'&base={base}'
)

response = requests.get(url)
data = response.json()

print(f"1 {base} is {data['rates']['EUR']} Euros")
const base = 'USD';
const codes = 'EUR,CAD,JPY';

const url = `https://currencyrateapi.com/api/latest?codes=${codes}` +
            `&base=${base}`;

(async () => {
  try {
    const res = await fetch(url);
    const data = await res.json();
    console.log(
      `1 ${base} is ${data.rates.EUR} Euros`
    );
  } catch (err) {
    console.error('Error:', err);
  }
})();
base = 'USD'
codes = 'EUR,CAD,JPY'

url = URI(
  "https://currencyrateapi.com/api/latest?codes=#{codes}" \
  "&base=#{base}"
)

response = Net::HTTP.get(url)
data = JSON.parse(response)

puts "1 #{base} is #{data['rates']['EUR']} Euros"
String base = "USD";
String codes = "EUR,CAD,JPY";
String url = "https://currencyrateapi.com/api/latest?codes=" +
             codes + "&base=" + base;

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
    .uri(URI.create(url))
    .build();

HttpResponse<String> response =
    client.send(request, HttpResponse.BodyHandlers.ofString());

JSONObject data = new JSONObject(response.body());
System.out.println(
    "1 " + base + " is " +
    data.getJSONObject("rates").getDouble("EUR") + " Euros"
);
base := "USD"
codes := "EUR,CAD,JPY"
url := "https://currencyrateapi.com/api/latest?codes=" +
       codes + "&base=" + base

resp, err := http.Get(url)
if err != nil {
    panic(err)
}
defer resp.Body.Close()

var data struct {
    Rates map[string]float64 `json:"rates"`
}

if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
    panic(err)
}

fmt.Printf(
    "1 %s is %.6f Euros\n",
    base, data.Rates["EUR"],
)
string base = "USD";
string codes = "EUR,CAD,JPY";

string url =
    $"https://currencyrateapi.com/api/latest?codes={codes}" +
    $"&base={base}";

using HttpClient client = new HttpClient();
string response = await client.GetStringAsync(url);

using JsonDocument doc = JsonDocument.Parse(response);
double eur = doc.RootElement
                .GetProperty("rates")
                .GetProperty("EUR")
                .GetDouble();

Console.WriteLine($"1 {base} is {eur} Euros");

Часті запитання

Найпоширеніші запитання про CurrencyRateAPI, обмеження використання, час безвідмовної роботи та як розпочати роботу з ключем API
Що таке CurrencyRateAPI і як він працює?
API курсів валют – це швидкий та надійний RESTful сервіс, який надає точні обмінні курси для 1131 світових валют у форматі JSON. Розроблений як для розробників, стартапів, так і для вже існуючих компаній, він пропонує простий та ефективний інтерфейс для доступу до фінансових даних у режимі реального часу та історичних даних – незалежно від того, чи створюєте ви внутрішні інструменти, додатки чи платформи, орієнтовані на клієнтів.
Хто обслуговує та керує сервісом API курсів валют?
API курсів валют повністю розроблено, підтримується та експлуатується нашою командою з акцентом на забезпеченні стабільного та зручного для розробників інтерфейсу даних. Сервіс створено для задоволення потреб стартапів, малого бізнесу та корпоративних додатків, яким потрібен надійний доступ до даних про обмін валют.
Який типовий час безвідмовної роботи та доступність API?
API курсів валют забезпечує стабільну безвідмовну роботу на рівні 99,9%, що базується на 12-місячному ковзному середньому. Сервіс контролюється цілодобово, щоб забезпечити високу доступність, надійність та безперебійний доступ до даних про обмін валют.
Чи можу я отримати обмінні курси на певну дату?
Так, ви можете запитувати історичні обмінні курси за будь-яку конкретну дату, починаючи з 1999-01-04, використовуючи кінцеву точку історії. Якщо дані для запитуваної дати відсутні, API автоматично поверне курси за найближчу ранішу дату (протягом 8-денного вікна).