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

Используйте этот запрос, чтобы получить полный список поддерживаемых валют с соответствующими трехбуквенными кодами.

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

Воспользуйтесь этим запросом, чтобы получить актуальные курсы обмена GBP и JPY по отношению к USD.

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

Воспользуйтесь этим запросом, чтобы получить исторические курсы обмена USD, EUR и CAD по отношению к GBP по состоянию на 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 и как он работает?
Currency Rate API — это быстрый и надежный RESTful-сервис, предоставляющий точные обменные курсы для 1131 мировых валют в формате JSON. Разработанный как для разработчиков, стартапов, так и для состоявшихся компаний, он предлагает простой и эффективный интерфейс для доступа к финансовым данным в реальном времени и за прошедший период — независимо от того, создаете ли вы внутренние инструменты, приложения или платформы для взаимодействия с клиентами.
Кто поддерживает и эксплуатирует сервис API для определения курсов валют?
API для работы с валютными курсами полностью разработан, поддерживается и эксплуатируется нашей командой с упором на предоставление стабильного и удобного для разработчиков интерфейса данных. Сервис создан для удовлетворения потребностей стартапов, малых предприятий и корпоративных приложений, которым необходим надежный доступ к данным об обмене валют.
Каково типичное время безотказной работы и доступность API?
API для обмена валют обеспечивает стабильную доступность на уровне 99,9% на основе скользящего среднего за 12 месяцев. Сервис круглосуточно контролируется для обеспечения высокой доступности, надежности и бесперебойного доступа к данным об обмене валют.
Можно ли получить курсы валют на конкретную дату?
Да, вы можете запросить исторические курсы валют за любую конкретную дату, начиная с 04.01.1999, используя конечную точку history. Если данные за запрошенную дату отсутствуют, API автоматически вернет курсы для ближайшей более ранней даты (в пределах 8-дневного окна).