Общая информация о REST API
- Базовый URL: https://api-adapter.dzengi.com
- Базовый URL, демо-аккаунт: https://demo-api-adapter.dzengi.com
- Все эндпоинты возвращают либо данные в формате JSON, либо диапазон.
- Данные возвращаются согласно следующему принципу: сначала самые ранние, затем последние.
- Все поля со значением времени и относящиеся ко временным рамкам отображаются в миллисекундах.
- В настоящий момент все имеющиеся на платформе токенизированные активы, за исключением токенизированных облигаций, токенов компаний и токенизированных акций гонконгского рынка доступны для запросов через API в его первой версии (v1). Вторая версия API (v2) позволяет осуществлять запросы, касающиеся токенизированных акций гонконгского рынка.
- Список токенизированных активов, доступных для торговли в режиме "торговля с левереджем" через API в его первой версии (v1) можно найти здесь.
- При выставлении рыночных, лимитных или стоп-заявок для параметра quantity присуща логика round_down в случае упоминания большего количества знаков после запятой, чем предусмотрено для данного токена. Допустимое количество знаков после запятой можно найти в ответе на запрос exchangeInfo, параметр quotePrecision.
- В случае параметра price и наличия большего количества знаков после запятой, чем это допустимо для данного токена, логика round_up является определяющей. Допустимое количество знаков после запятой можно найти в ответе на запрос exchangeInfo, параметр quotePrecision.
Пожалуйста, обратитесь к нашему Swagger API, раздел REST API для получения нужной вам информации.
Устранение неполадок
Код состояния HTTP
- Код состояния HTTP 4XX используется в случае запросов, носящих вредоносный характер; проблема находится на стороне отправителя.
- Код состояния HTTP 403 используется в случае превышения WAF (Web Application Firewall) лимита.
- Код состояния HTTP 429 используется в случае превышения лимита направляемых запросов.
- Код состояния HTTP 418 используется в случае, если IP является автоматически заблокированным по причине продолжения направления запросов после получения кода 429.
- Код состояния HTTP 5XX используется в случае возникновения внутренних ошибок; проблема находится на стороне Dzengi.com. Важно! Данная ошибка НЕ означает, что операция не была совершена успешно. Статус исполнения НЕИЗВЕСТЕН и может быть успешным.
Коды ошибок
- Любой эндпоинт может вернуть ERROR.
Пример:
- Специфические коды ошибок и сообщения определены в отдельном разделе.
Общая информация об эндпоинтах
- Для методов
GET
параметры должны быть направлены в видеquery string
. - Для методов
POST
,PUT
, иDELETE
параметры должны быть направлены в видеquery string
илиrequest body
с содержанием типаapplication/x-www-form-urlencoded
. Вы можете миксовать параметры междуquery string
илиrequest body
в случае наличия такой необходимости. - Параметры могут быть направлены в любом порядке.
- Если параметры направлены как в виде
query string
, так и в видеrequest body
, то будет использован параметрquery string
Тип безопасности эндпоинта
- Каждый эндпоинт содержит тип безопасности, который определяет способ общения с ним. Он указан рядом с NAME эндпоинта. Если тип безопасности не обозначен, значит предполагается, что он имеет значение NONE.
- API ключи передаются в REST API через заголовок
X-MBX-APIKEY
. - API ключи и секретные ключи зависят от конкретных условий.
- API ключи могут быть сконфигурированы таким образом, чтобы обладать доступом только к определенным видам безопасных эндпоинтов. Например, один API ключ может использовать только для TRADE (торговли), в то время как иной API ключ может предоставить доступ ко всему функционалу, исключая TRADE (торговлю).
- Дефолтно API ключи могут предоставить доступ ко всему функционалу.
Тип безопасности | Описание |
---|---|
NONE | Доступ к эндпоинту открыт. |
TRADE | Эндпоинт требует отправки валидного API ключа и подписи. |
USER_DATA | Эндпоинт требует отправки валидного API ключа и подписи. |
USER_STREAM | Эндпоинт требует отправки валидного API ключа. |
MARKET_DATA | Эндпоинт требует отправки валидного API ключа. |
- Эндпоинты
TRADE
иUSER_DATA
являютсяSIGNED
эндпоинтами.
Безопасность эндпоинта SIGNED (TRADE, USER_DATA, и MARGIN)
SIGNED
запросы требуют наличие дополнительного параметра,signature
, для отправки вquery string
илиrequest body
.- Эндпоинты используют подписи вида
HMAC SHA256
.HMAC SHA256 signature
является подписанной ключомHMAC SHA256
операцией. Используйте ВашsecretKey
в качестве ключа иtotalParams
в качестве значения для операции вида HMAC. signature
не зависит от конкретных условий.totalParams
определяется какquery string
связанный сrequest body
.
Безопасность тайминга
SIGNED
запросы также требуют отправку параметра,timestamp
, который измеряется в миллисекундах и обозначает время, когда была создана и отправлена заявка.- Дополнительный параметр,
recvWindow
, может быть отправлен для уточнения количества миллисекунд (послеtimestamp
), в течение которых запрос считается валидным. ЕслиrecvWindow
не отправлен, то дефолтное значение является следующим: 5000.
Логика является следующей:
Торговля полностью зависит от времени. Соединение с сетью может быть нестабильным или же ненадежным, что может привести к запросам, которые занимают различные промежутки времени прежде, чем достигнут сервера. С recvWindow
Вы можете обозначить, что запрос должен быть обработан в течение определенного количества миллисекунд, в противном случае запрос должен быть отклонен сервером.
Рекомендуется использовать маленькое значение recvWindow
(5000 или менее). Значение не может быть больше 60 000.
Пример SIGNED эндпоинта для POST /api/v1/order
Пошаговый пример того, как направлять валидные подписанные данные через командную строку Linux с использованием echo, openssl и curl.
Ключ | Значение |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
Параметр | Значение |
---|---|
symbol | LTC/BTC |
side | BUY |
type | LIMIT |
timeInforce | GTC |
quantity | 1 |
price | 0,1 |
recvWindow | 5000 |
timestamp | 1499827319559 |
Просим Вас заметить, что некоторые символы должны иметь формат urlencode. Например символ “/” будет записан как “%2F”.
Пример SIGNED эндпоинта для POST /api/v1/order (режим “торговля с левереджем”)
Пошаговый пример того, как направлять валидные подписанные данные через командную строку Linux с использованием echo, openssl и curl.
Ключ | Значение |
---|---|
apiKey | vmPUZE6mv9SD5VNHk4HlWFsOr6aKE2zvsw0MuIgwCIPy6utIco14y7Ju91duEh8A |
secretKey | NhqPtmdSJYdKjVHjA7PZj4Mge3R5YNiP1e3UZjInClVN65XAbvqqM6A7H5fATj0j |
Параметр | Значение |
---|---|
symbol | BTC/USD_LEVERAGE |
side | BUY |
type | MARKET |
timeInforce | GTC |
quantity | 0.01 |
quantity | 2 |
accountId | 2376109060084932 |
takeProfit | 8000 |
stopLoss | 6000 |
recvWindow | 60000 |
timestamp | 1586942164000 |
Просим Вас заметить, что некоторые символы должны иметь формат urlencode. Например символ “/” будет записан как “%2F”.
Терминология
base asset
относится к активу, который являетсяquantity
символа.quote asset
относится к активу, который являетсяprice
символа.
Определения ENUM
Статус заявки (status):
- NEW
- FILLED
- CANCELED
- REJECTED
Типы заявок (orderTypes, type):
- LIMIT
- MARKET
- STOP
Направление заявки (side):
- BUY
- SELL
Срок действия (timeInForce):
- GTC
- IOC
- FOK
Периоды / интервалы свечей на графиках:
m -> минуты; h -> часы; d -> дни; w -> недели
- 1m
- 5m
- 15m
- 30m
- 1h
- 4h
- 1d
- 1w
параметр 'type' /klines:
- heikin-ashi