API для разработчиковv2

Ключ в кабинете

Доступ и лимиты

До первого запроса нужны две вещи из кабинета: секретный ключ и одобренный проект.

Секретный ключ

Где взять
Кабинет → API → «Создать ключ». Ключ вида hx_secret_… показывается один раз — сохраните его сразу.
Как передавать
В каждом запросе: Authorization: Bearer hx_secret_….
Ключи прежнего вида
Ключи sk_…, выпущенные раньше, работают как прежде. Перевыпуск выдаст ключ нового вида.
Сколько ключей
Один действующий ключ на аккаунт. Перевыпуск сразу отключает старый ключ, поэтому сначала подготовьте сервер к новому.
Где хранить
Только на сервере: в переменных окружения или хранилище секретов. В браузере, мобильном приложении и репозитории ключу не место.

Проверить доступ

Ответ 200 — ключ и проект работают
curl -i https://666.exchange/api/v2/assets \
  -H "Authorization: Bearer $SK"

Проект

Проект — ваш продукт, который подключается к API: сайт, бот, приложение. К проекту привязаны заявки, вебхуки и наценка.

Создание
Кабинет → Проекты → «Добавить»: название, пара строк о продукте и адрес сайта. Сайт должен открываться по https://.
Проверка
Обычно меньше суток. Пока проект на проверке, запросы отвечают 403 project_not_approved.
Изменения
Если поменять название, описание или сайт одобренного проекта, он снова уходит на проверку и запросы по нему приостанавливаются.
Несколько проектов
Если у ключа больше одного активного проекта, указывайте нужный в заголовке X-Project: <publicId>. С одним проектом заголовок не нужен.

Наценка партнёра

Проект, одобренный для работы с клиентами, может добавлять к курсу свою наценку и получать её доход.

partnerFeePercent
Наценка в процентах в котировке и заявке, например 0.5. Значение выше допустимого потолка уменьшается до потолка.
referral
Ваша метка для отчётов, до 64 символов.
Личный проект
Без наценки: оба поля дают 403. Чтобы включить наценку, напишите в поддержку — проект проверим ещё раз.

Лимиты

Лимит считается на ключ за минуту. Создание заявки расходует его как 100 обычных запросов, остальные методы — как один.

Новый ключ
Небольшой лимит — хватит для разработки и проверки.
Рабочая нагрузка
Напишите в поддержку, сколько заявок в минуту ожидаете, — лимит увеличат.
Превышение
429 rate_limited и retryAfter — через сколько секунд повторить. Повторы раньше срока не пройдут.

Чтобы реже упираться в лимит: получайте изменения заявок вебхуками вместо частых запросов и не создавайте заявки заранее, пока клиент не готов платить.