Поддержка формата Fixer.io

Мы поддерживаем Fixer.io API. Если вы уже реализовали его в своём приложении, то можете использовать тот же модуль для CurrencyCentral.

Базовая HTTP аутентификация

Базовый url:

https://currencycentral.org/api/

Просто используйте свой ключ API для аутентификации:

https://currencycentral.org/api/latest
        ? access_key = API_KEY

Аутентификация через HTTP заголовок

Если вы не хотите передавать свой ключ API в строке запроса, то можете передавать его как Token в HTTP заголовке Authentication.

Authorization: Token API_KEY

Формат HTTP заголовка должен быть точно таким как указано выше, просто замените API_KEY на валидный ключ API. Не нужно использовать кавычек для ключа. Если указан и HTTP заголовок и URL параметр, то приоритет отдаётся параметру в URL а HTTP заголовок игнорируется.

Мы рекомендуем использовать аутентификацию через HTTP заголовок по причинам безопасности. Данные URL могут оказаться доступными для промежуточных сервисов, таких как прокси-сервера.

Пример данных API

Данные возвращаются в стандартном JSON формате. Их легко использовать в любом языке программирования.

{
    "success": true,
    "base": "EUR",
    "date": "2020-06-05",
    "rates": {
        "USD": 1.133,
        "AUD": 1.6227,
        "JPY": 123.77,
        "RUB": 77.8155,
        /* ... */
    }
}

Как показано выше ответ API всегда содержит: base — строку с трехсимвольным кодом базовой валюты, date — дату на которую кстановлен переданный официальный курс и rates — объект содержащий запрошенные обменные курсы.

Запросы

CurrencyCentral поддерживает два вида запросов.

Текущие курсы

Возвращает официальный обменный курс установленный на сегодня. Простодо добавьте latest к базовому URL:

https://currencycentral.org/api/latest

ВАЖНО: наши серверы используют часовой пояс UTC. При получении текущего курса всегда проверяйте дату в ответном JSON. Второй вариант — всегда делать запрос исторических данных с указанием текущей даты.

Курсы за прошлые даты

Вы можете получить через CurrencyCentral API исторические данные просто добавив к базовому URL дату в формате ГГГГ-ММ-ДД:

https://currencycentral.org/api/2020-02-02

Данные за прошлые дни доступны вплоть до 4 января 1999 года.

SSL соединение

На всех тарифах CurrencyCentral вам доступно 256-bit SSL шифрование. Для защищённого соединения с API через SSL просто используйте HTTPS протокол.

JSONP Callbacks

CurrencyCentral API поддерживает формат ответа JSONP Сallbacks. Используя этот функционал вы можете указать функцию обратного вызова в которую будет завёрнут API ответ. Для этого укажите имя функции в URL параметре callback:

https://currencycentral.org/api/latest
              ? access_key = API_KEY
              & callback = MY_FUNCTION

В примере выше мы запрашивает API использовать функцию обратного вызова MY_FUNCTION.

Пример JSONP ответа где данные завёрнуты функцию обратного вызова MY_FUNCTION:

/**/MY_FUNCTION({
    "success": true,
    "base": "EUR",
    "date": "2020-06-05",
    "rates": {
        "USD": 1.133,
        "AUD": 1.6227,
        "JPY": 123.77,
        "RUB": 77.8155,
        /* ... */
    }
});

Ошибки

Всегда, когда данные недостуаны или API запрос валится по любой другой причине в JSON возвращается ошибка с кодом и информацией на английском.

Пример ошибки 104, которая возвращается если привышен лимит тарифного плана по запросам в этом месяце:

{
    "success": false,
    "error": {
        "code": 104,
        "info": "Your monthly API request volume has been reached. Please upgrade your plan."
    }
}

Ниже вы найдёте информацию об ошибках на русском:

Код ошибки Описание
404 Запрашиваемого ресурса не существует.
101 Не указан API ключ или он не валидный.
102 Контракт к которому привязан ключ не активен.
103 Некорректный запрос API. Такого метода не существует.
104 Привышено максимальное количество запросов к API для вашего тарифа.
106 Запрос не вернул никаких данных.
201 Неверная базовая валюта.
202 Указаны один или несколько неверных кодов валют.
203 Контракт к которому привязан ключ не поддерживает эту валюту.
302 Указана неверная дата запроса.

Запрос текущих курсов

Запрос Latest вернёт обменный курс на сегодняшний день. Пожалуйста учитываете, что сервера настроены на часовой пояс UTC и он скорее всего отличается от вашего. Проверяйте поле date в JSON ответе, чтобы быть уверенными. Или ползуйтесь запросом курсов с указанием конкретной даты.

Формат API запроса

https://currencycentral.org/api/latest
    ? access_key = API_KEY
    & symbols = GBP,JPY,EUR

Параметры запроса

Параметр Описание
access_key [Обязательно] Ваш ключ API.
symbols [Обязательно] Список валют курсы к которым нужно вернуть. Указываются трёхбуквенные коды разделённые запятой.

Формат API ответа

{
    "success": true,
    "base": "EUR",
    "date": "2017-10-11",
    "rates": {
        "USD": 1.1856,
        "AUD": 1.5175,
        "JPY": 133.12,
        "RUB": 68.404
    },
}

Объекты в ответе

Объект Описание
success Возвращает true если запрош выполнен успешно или false если возникли ошибки.
base Возвращает трёхбуквенный код базовой валюты по которой производился запрос данных.
rates Обменные курсы.

Запрос курсов за прошлые даты

Данные за прошлые дни доступны вплоть до 4 января 1999 года. Вы можете получить через CurrencyCentral API исторические данные просто добавив к базовому URL дату в формате ГГГГ-ММ-ДД:

Формат API запроса

https://currencycentral.org/api/2020-02-02
    ? access_key = API_KEY
    & symbols = GBP,JPY,EUR

Параметры запроса

Параметр Описание
YYYY-MM-DD [Обязательно] Дата на которую необходимо вернуть официальные курсы.
access_key [Обязательно] Ваш ключ API.
symbols [Обязательно] Список валют курсы к которым нужно вернуть. Указываются трёхбуквенные коды разделённые запятой.

Формат API ответа

{
    "success": true,
    "base": "EUR",
    "date": "2020-02-02",
    "rates": {
        "USD": 1.1052,
        "AUD": 1.6494,
        "JPY": 120.35,
        "RUB": 70.3375
    },
    "historical": true
}

Объекты в ответе

Объект Описание
success Возвращает true если запрош выполнен успешно или false если возникли ошибки.
historical Возвращает true если возвращены исторические данные.
base Возвращает трёхбуквенный код базовой валюты по которой производился запрос данных.
rates Обменные курсы.