Программные интерфейсы INDX
Методы:
- Balance - Текущий баланс Трейдера.
- Tools - Список инструментов.
- NP - Список активов за которые торгуют.
- ExTools - Расширенный список инструментов.
- ExToolsByNP - Cписок инструментов относительно актива за который торгуют.
- HistoryTrading - История торгов Трейдера.
- HistoryTransaction - История транзакций Трейдера.
- OfferMy - Список текущих заявок Трейдера на покупку/продажу.
- OfferList - Список текущих заявок по инструменту на покупку/продажу на бирже.
- OfferAdd - Постановка новой заявки Трейдера на покупку/продажу по инструменту на бирже.
- OfferDelete - Удаление заявки Трейдера на покупку/продажу инструмента на бирже.
- Tick - Статистика сделок за период времени.
К методам API WM идентификатор трейдера может обращаться не чаще 1 раза в секунду.
Общие параметры для всех запросов в объекте ApiContext:
| Название | Назначение | Примечание |
|---|---|---|
| Login | Логин трейдера | Получен трейдером на странице доступа к API |
| Password | Пароль трейдера | Получен трейдером на странице доступа к API (используется для формирования подписи) |
| Wmid | Wmid трейдера | WM идентификатор трейдера |
| Culture | Язык запроса | Определяет язык сообщения (ru-RU, en-EN) |
| Signature | Подпись запроса | BASE64 + SHA256, формируется из различных параметров в зависимости от метода |
| Reqn | Номер запроса | Целое без знака, макс. 18 цифр; всегда должен быть больше номера предыдущего запроса! |
Метод Balance (Текущий баланс Трейдера)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/Balance
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""}}
Параметры запроса (в ApiContext):
| Название | Назначение | Примечание |
|---|---|---|
| Reqn | Номер запроса | Целое без знака, макс. 18 цифр; всегда больше предыдущего! |
| Login | Логин трейдера | Из страницы доступа к API |
| Password | Пароль трейдера | Из страницы доступа к API (для подписи) |
| Wmid | Wmid трейдера | WM идентификатор |
| Culture | Язык запроса | ru-RU, en-EN |
| Signature | Подпись запроса BASE64 + SHA256 | Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + Reqn |
Формат ответа:
{"code":0,"desc":"Success","value":{"wmid":"","nickname":"","balance":{"price":0,"wmz":0},"portfolio":[{"id":0,"name":"","notes":0,"price":0,"type":"","kind":0,"by":0},],"profit":[{"symbolid":0,"buy":0,"sell":0}]}}
Параметры ответа:
| Название | Назначение | Примечание |
|---|---|---|
| code | Код состояния/ошибки | 0 - успешно |
| desc | Текстовое описание ошибки | Строка до 255 символов, win-1251 |
| value | Результат | Объект с данными баланса |
| value.wmid | Wmid трейдера | Строка 12 символов, win-1251 |
| value.nickname | Ник трейдера | Строка до 255 символов, win-1251 |
| value.balance | Баланс трейдера | price - цена портфеля, wmz - сумма на счету |
| value.portfolio | Портфель трейдера | Массив инструментов (id, name, notes, price, type, kind, by) |
| value.profit | Сделки трейдера | Общая сумма затрат (symbolid, buy, sell) |
Коды выполнения запроса:
| Код | Описание |
|---|---|
| 0 | Запрос выполнен успешно |
| -1 | Сервис остановлен |
| -2 | Доступ запрещен |
| -3 | Ошибочный WMID Трейдера |
| -4 | Подпись запроса сформирована не верно |
| -5 | Не корректная дата |
| -7 | Вызов веб сервиса завершился ошибкой |
| -8 | Внутренняя ошибка |
| -9, -10 | Неизвестная ошибка |
| -36, -38 | Неверное значение поля reqn |
| -37 | Не выполнено условие увеличения reqn |
• Тестовая страница: JavaScript
Метод Tools (Список инструментов биржи)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/Tools
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""}}
Параметры запроса (в ApiContext):
| Название | Назначение | Примечание |
|---|---|---|
| Reqn | Номер запроса | См. Balance |
| Login | Логин трейдера | См. Balance |
| Password | Пароль трейдера | См. Balance (для подписи) |
| Wmid | Wmid трейдера | См. Balance |
| Culture | Язык запроса | См. Balance |
| Signature | Подпись запроса BASE64 + SHA256 | Login + ';' + Password + ';' + Culture + ';' + Reqn |
Формат ответа:
{"code":0,"desc":"Success","value":[{"id":0,"name":"","price":0,"kind":0,"type":"","by":0}]}
Параметры ответа (в массиве value):
| Название | Назначение | Примечание |
|---|---|---|
| id | Номер инструмента | Для других методов |
| name | Название инструмента | Строка до 255 символов, win-1251 |
| price | Цена последней сделки | Цена за одну единицу |
| kind | Тип инструмента | (не детализировано в док.) |
| type | Тип инструмента | (не детализировано в док.) |
| by | Кем выпущен | (не детализировано в док.) |
Коды выполнения запроса:
Аналогичны методу Balance.
• Тестовая страница: JavaScript
Метод NP (Список активов, за которые торгуют)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/NP
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""}}
Параметры запроса (в ApiContext):
| Название | Назначение | Примечание |
|---|---|---|
| Reqn | Номер запроса | См. Balance |
| Login | Логин трейдера | См. Balance |
| Password | Пароль трейдера | См. Balance (для подписи) |
| Wmid | Wmid трейдера | См. Balance |
| Culture | Язык запроса | См. Balance |
| Signature | Подпись запроса BASE64 + SHA256 | Login + ';' + Password + ';' + Culture + ';' + Reqn |
Формат ответа:
{"code":0,"desc":"Success","value":[{"id":0,"name":""}]}
Параметры ответа (в массиве value):
| Название | Назначение | Примечание |
|---|---|---|
| id | Номер "инструмента" актива | (неясно, возможно, внутренний ID) |
| name | Название актива | Строка (например, WMZ, USDT) |
Коды выполнения запроса:
Аналогичны методу Balance.
• Тестовая страница: JavaScript
Метод ExTools (Расширенный список инструментов)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/ExTools
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""}}
Параметры запроса (в ApiContext):
| Название | Назначение | Примечание |
|---|---|---|
| Reqn | Номер запроса | См. Balance |
| Login | Логин трейдера | См. Balance |
| Password | Пароль трейдера | См. Balance (для подписи) |
| Wmid | Wmid трейдера | См. Balance |
| Culture | Язык запроса | См. Balance |
| Signature | Подпись запроса BASE64 + SHA256 | Login + ';' + Password + ';' + Culture + ';' + Reqn |
Формат ответа:
{"code":0,"desc":"Success","value":[{"id":0,"name":"","price":0}]}
Параметры ответа (в массиве value):
| Название | Назначение | Примечание |
|---|---|---|
| id | Номер инструмента | Для других методов |
| name | Название инструмента | Строка до 255 символов, win-1251 |
| price | Цена последней сделки | Цена за одну единицу |
Коды выполнения запроса:
Аналогичны методу Balance.
• Тестовая страница: JavaScript
Метод ExToolsByNP (Cписок инструментов относительно актива)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/ExToolsByNP
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""},"NP":""}
Параметры запроса:
| Название | Назначение | Примечание |
|---|---|---|
| ApiContext | Общие параметры | См. Balance |
| NP | Название актива | Строка: WMZ|USDT|BTC|ETH|LTH (заглавными) |
Подпись (Signature) формируется из: Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + NP + ';' + Reqn
Формат ответа:
{"code":0,"desc":"Success","value":[{"id":0,"name":"","price":0}]}
Параметры ответа (в массиве value):
| Название | Назначение | Примечание |
|---|---|---|
| id | Номер инструмента | Для других методов |
| name | Название инструмента | Строка до 255 символов, win-1251 |
| price | Цена последней сделки | Цена за одну единицу |
Коды выполнения запроса:
Аналогичны методу Balance.
• Тестовая страница: JavaScript
Метод HistoryTrading (История торгов Трейдера)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/HistoryTrading
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""},"Trading":{"ID":0,"DateStart":"","DateEnd":""}}
Параметры запроса:
| Название | Назначение | Примечание |
|---|---|---|
| ApiContext | Общие параметры | См. Balance |
| Trading.ID | Номер инструмента | 0 для всех инструментов |
| Trading.DateStart | Начальная дата | YYYYMMDD |
| Trading.DateEnd | Конечная дата | YYYYMMDD |
Подпись (Signature) формируется из: Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + Trading.ID + ';' + Trading.DateStart + ';' + Trading.DateEnd + ';' + Reqn
Формат ответа:
{"code":0,"desc":"Success","value":[{"id":0,"stamp":0,"name":"","isbid":0,"notes":0,"price":0}]}
Параметры ответа (в массиве value):
| Название | Назначение | Примечание |
|---|---|---|
| id | Номер инструмента | Макс. 18 цифр |
| stamp | Дата и время операции | Unix timestamp (секунды). Формат C#: new DateTime(1970,1,1).AddSeconds(stamp) |
| name | Наименование инструмента | Строка до 255 символов, win-1251 |
| isbid | Тип операции | 0 - покупка, 1 - продажа |
| notes | Количество | Число с плавающей точкой |
| price | Цена за единицу | Число с плавающей точкой |
Коды выполнения запроса:
Аналогичны методу Balance, плюс:
| Код | Описание |
|---|---|
| -6 | Неверный идентификатор инструмента |
| -11 | Неверный формат даты |
• Тестовая страница: JavaScript
Метод HistoryTransaction (История транзакций Трейдера)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/HistoryTransaction
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":""},"Trading":{"ID":0,"DateStart":"","DateEnd":""}}
Примечание: в документации для этого метода Reqn не указан в ApiContext, но обычно он требуется. Подпись также может требовать Reqn.
Параметры запроса:
| Название | Назначение | Примечание |
|---|---|---|
| ApiContext | Общие параметры | См. Balance (Reqn может быть не нужен, уточнить) |
| Trading.ID | Номер инструмента | 0 для всех инструментов |
| Trading.DateStart | Начальная дата | YYYYMMDD |
| Trading.DateEnd | Конечная дата | YYYYMMDD |
Подпись (Signature) формируется из: Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + Trading.ID + ';' + Trading.DateStart + ';' + Trading.DateEnd (+ ';' + Reqn если Reqn используется)
Формат ответа:
{"code":0,"desc":"Success","value":[{"id":0,"stamp":0,"name":"","type":0,"notes":0,"price":0,"amount":0}]}
Параметры ответа (в массиве value):
| Название | Назначение | Примечание |
|---|---|---|
| id | Номер инструмента | Макс. 18 цифр |
| stamp | Дата и время операции | Unix timestamp (секунды) |
| name | Наименование инструмента | Строка до 255 символов, win-1251 |
| type | Тип транзакции | (не детализировано в док.) |
| notes | Количество | Число с плавающей точкой |
| price | Цена за единицу | Число с плавающей точкой |
| amount | Сумма транзакции | Число с плавающей точкой |
Коды выполнения запроса:
Аналогичны методу Balance, плюс коды из HistoryTrading.
• Тестовая страница: JavaScript
Метод OfferMy (Список текущих заявок Трейдера)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/OfferMy
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""}}
Параметры запроса (в ApiContext):
| Название | Назначение | Примечание |
|---|---|---|
| Reqn | Номер запроса | См. Balance |
| Login | Логин трейдера | См. Balance |
| Password | Пароль трейдера | См. Balance (для подписи) |
| Wmid | Wmid трейдера | См. Balance |
| Culture | Язык запроса | См. Balance |
| Signature | Подпись запроса BASE64 + SHA256 | Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + Reqn |
Формат ответа:
{"code":0,"desc":"Success","value":[{"id":0,"stamp":0,"name":"","isbid":0,"notes":0,"price":0,"amount":0,"offerid":0}]}
Параметры ответа (в массиве value):
| Название | Назначение | Примечание |
|---|---|---|
| id | Номер инструмента | Макс. 18 цифр |
| stamp | Дата и время операции | Unix timestamp (секунды) |
| name | Наименование инструмента | Строка до 255 символов, win-1251 |
| isbid | Тип заявки | 0 - покупка, 1 - продажа |
| notes | Количество | Число с плавающей точкой |
| price | Цена за единицу | Число с плавающей точкой |
| amount | Сумма заявки | Число с плавающей точкой |
| offerid | ID заявки | Для метода OfferDelete |
Коды выполнения запроса:
Аналогичны методу Balance.
• Тестовая страница: JavaScript
Метод OfferList (Список текущих заявок по инструменту на бирже)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/OfferList
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""},"Offer":{"ID":0}}
Параметры запроса:
| Название | Назначение | Примечание |
|---|---|---|
| ApiContext | Общие параметры | См. Balance |
| Offer.ID | Номер инструмента | Обязательный параметр |
Подпись (Signature) формируется из: Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + Offer.ID + ';' + Reqn
Формат ответа:
{"code":0,"desc":"Success","value":{"buy":[{"notes":0,"price":0}],"sell":[{"notes":0,"price":0}]}}
Параметры ответа:
| Название | Назначение | Примечание |
|---|---|---|
| value.buy | Заявки на покупку | Массив объектов {notes, price} |
| value.sell | Заявки на продажу | Массив объектов {notes, price} |
| notes | Количество | Число с плавающей точкой |
| price | Цена за единицу | Число с плавающей точкой |
Коды выполнения запроса:
Аналогичны методу Balance, плюс:
| Код | Описание |
|---|---|
| -6 | Неверный идентификатор инструмента |
• Тестовая страница: JavaScript
Метод OfferAdd (Постановка новой заявки)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/OfferAdd
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""},"Offer":{"ID":0,"IsBid":0,"Notes":0,"Price":0}}
Параметры запроса:
| Название | Назначение | Примечание |
|---|---|---|
| ApiContext | Общие параметры | См. Balance |
| Offer.ID | Номер инструмента | Обязательный |
| Offer.IsBid | Тип заявки | 0 - покупка, 1 - продажа |
| Offer.Notes | Количество | Число с плавающей точкой, > 0 |
| Offer.Price | Цена за единицу | Число с плавающей точкой, > 0 |
Подпись (Signature) формируется из: Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + Offer.ID + ';' + Offer.IsBid + ';' + Offer.Notes + ';' + Offer.Price + ';' + Reqn
Формат ответа:
{"code":0,"desc":"Success","value":{"offerid":0}}
Параметры ответа:
| Название | Назначение | Примечание |
|---|---|---|
| offerid | ID созданной заявки | Для OfferDelete |
Коды выполнения запроса:
Аналогичны методу Balance, плюс:
| Код | Описание |
|---|---|
| -6 | Неверный идентификатор инструмента |
| -12 | Неверное значение поля IsBid |
| -13 | Неверное значение поля Notes |
| -14 | Неверное значение поля Price |
| -15 | Недостаточно средств |
| -16 | Недостаточно инструмента |
| -17 | Ошибка постановки заявки |
| -18 | Заявка не может быть выполнена |
| -19 | Заявка не найдена |
| -20 | Заявка уже исполнена |
| -21 | Заявка уже отменена |
| -22 | Заявка не принадлежит трейдеру |
| -23 | Ошибка удаления заявки |
| -24 | Торги по инструменту остановлены |
| -25 | Торги по инструменту не начаты |
| -26 | Торги по инструменту завершены |
| -27 | Трейдер не имеет права торговать этим инструментом |
| -28 | Трейдер не имеет права покупать этот инструмент |
| -29 | Трейдер не имеет права продавать этот инструмент |
| -30 | Трейдер не имеет права отменять заявки по этому инструменту |
| -31 | Трейдер не имеет права просматривать заявки по этому инструменту |
| -32 | Трейдер не имеет права просматривать историю торгов по этому инструменту |
| -33 | Трейдер не имеет права просматривать историю транзакций по этому инструменту |
| -34 | Трейдер не имеет права просматривать баланс |
| -35 | Трейдер не имеет права просматривать портфель |
• Тестовая страница: JavaScript
Метод OfferDelete (Удаление заявки Трейдера)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/OfferDelete
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""},"Offer":{"OfferID":0}}
Параметры запроса:
| Название | Назначение | Примечание |
|---|---|---|
| ApiContext | Общие параметры | См. Balance |
| Offer.OfferID | ID заявки | Полученный из OfferMy или OfferAdd |
Подпись (Signature) формируется из: Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + Offer.OfferID + ';' + Reqn
Формат ответа:
{"code":0,"desc":"Success"}
Коды выполнения запроса:
Аналогичны методу Balance и OfferAdd (коды -19, -20, -21, -22, -23).
• Тестовая страница: JavaScript
Метод Tick (Статистика сделок за период времени)
• URL для передачи запроса: https://api.indx.money/api/v2/trade/Tick
• Метод: POST
• Accept types: text/json
• Формат запроса: {"ApiContext":{"Login":"","Wmid":"","Culture":"","Signature":"","Reqn":""},"Tick":{"ID":0,"DateStart":"","DateEnd":""}}
Параметры запроса:
| Название | Назначение | Примечание |
|---|---|---|
| ApiContext | Общие параметры | См. Balance |
| Tick.ID | Номер инструмента | Обязательный |
| Tick.DateStart | Начальная дата | YYYYMMDD |
| Tick.DateEnd | Конечная дата | YYYYMMDD |
Подпись (Signature) формируется из: Login + ';' + Password + ';' + Culture + ';' + Wmid + ';' + Tick.ID + ';' + Tick.DateStart + ';' + Tick.DateEnd + ';' + Reqn
Формат ответа:
{"code":0,"desc":"Success","value":[{"stamp":0,"price":0,"notes":0}]}
Параметры ответа (в массиве value):
| Название | Назначение | Примечание |
|---|---|---|
| stamp | Дата и время операции | Unix timestamp (секунды) |
| price | Цена сделки | Число с плавающей точкой |
| notes | Объем сделки | Число с плавающей точкой |
Коды выполнения запроса:
Аналогичны методу Balance, плюс коды из HistoryTrading (-6, -11).
• Тестовая страница: JavaScript