Перейти к основному содержимому

Старт в Тестовом контуре

подсказка

Это руководство описывает взаимодействие с тестовым контуром системы, предназначенным для проверки запросов и основанного на них кода без использования ресурсов боевого торгового аккаунта. Руководство для боевого контура, позволяющего заключать настоящие сделки, описано здесь.

Шаг 1. Регистрация учётной записи разработчика

Учётная запись разработчика нужна для получения доступа к механизмам авторизации запросов к торговой системе.

Уже сделано?

Если учётная запись разработчика была зарегистрирована ранее, перейдите к следующему шагу.

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

  1. Перейдите на портал разработчика и нажмите кнопку Авторизоваться в правом верхнем углу
  2. Нажмите на ссылку Зарегистрироваться, расположенную ниже формы авторизации
  3. Заполните обязательные поля и нажмите кнопку Зарегистрироваться
  4. Подтвердите указанный при регистрации email, перейдя по ссылке из автоматически отправленного письма
  5. Перейдите на страницу авторизации и войдите в созданную учётную запись разработчика с данными, указанными при регистрации

Регистрация учётной записи разработчика выполняется единоразово и не требует повторения при каждом последующем выполнении запросов к API.

Подробнее

Детальная информация об учётной записи разработчика доступна в соответствующей статье.


Шаг 2. Получение тестового торгового аккаунта

Большинство запросов к API предполагают выполнение от имени определённого торгового аккаунта. Тестовый контур взаимодействует с игровым окружением биржи и использует в работе симуляционные данные, из-за чего и торговый аккаунт тоже должен быть тестовым.

Чтобы получить тестовый торговый аккаунт или изменить список относящихся к нему портфелей, оставьте заявку на openapi@alor.ru или свяжитесь с нами в телеграме.

Тестовый аккаунт не привязывается к учётной записи разработчика, как это происходит с настоящим торговым аккаунтом. Сохраните логин и пароль от предоставленного аккаунта на всё время тестирования запросов.


Шаг 3. Получение Refresh Токена

В качестве единственного механизма авторизации запросов к API, доступного для Тестового контура, используется авторизация запросов с помощью JWT.

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

Тестовый торговый аккаунт предназначен для проверки запросов, в связи с чем позволяет получить только один Refresh Токен одновременно без предоставления информации о дате создания и сроке действия.

Уже сделано?

Если Refresh Токен был создан ранее и срок его действия не истёк, перейдите к следующему шагу.

Чтобы получить Refresh Токен, выписанный от имени тестового торгового аккаунта, выполните следующие действия:

  1. Перейдите на страницу Токены для доступа к API
  2. Нажмите на ссылку Токены для ведения торгов в тестовом контуре можно получить здесь. в разделе "Тестовый контур" внизу страницы
  3. На открывшейся странице нажмите на ссылку Begin OAuth authorization flow
  4. Введите логин и пароль тестового торгового аккаунта, полученного от технической поддержки, в соответствующие поля и нажмите Войти
  5. Ознакомьтесь с перечнем прав доступа, предоставляемых для тестового торгового аккаунта, и нажмите Разрешить
  6. Сохраните полученные Access и Refresh Токены в безопасное место

После выполнения последнего действия можете закрыть вкладку или перейти к документации по поддерживаемым запросам.

Подробнее

Детальная информация о Refresh Токенах доступна в соответствующей статье.


Шаг 4. Получение Access Токена

Большая часть защищённых ресурсов системы требует наличия у пользователя соответствующих прав доступа. Для подтверждения их наличия при использовании механизма JWT каждый запрос должен содержать в себе токен доступа, создаваемый с помощью полученного ранее токена обновления.

Уже сделано?

Первый Access Токен для тестового торгового аккаунта создаётся автоматически при получении Refresh Токена и действителен в течение 30 минут с момента получения. Если срок его действия не истёк, перейдите к следующему шагу.

Для создания Access Токена используется POST-запрос к конечной точке /refresh сервера авторизации. Для боевого контура этот сервер доступен по адресу oauthdev.alor.ru.

Отправляемый запрос должен содержать действующий Refresh Токен, созданный с привязкой к нужному торговому аккаунту.

Пример запроса:

https://oauthdev.alor.ru/refresh?token=3ee46c97-1da6-451b-b4f6-520e774dd2a8

Где 3ee46c97-1da6-451b-b4f6-520e774dd2a8Refresh Токен.

В ответ сервер авторизации вернёт JSON объект, содержащий Access Токен:

{
"AccessToken": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImN0eSI6IkpXVCJ9.eyJzdWIiOiJMb2dpblNhbXBsZSIsImVudCI6ImNsaWVudCIsImVpbiI6IjAxMjM0IiwiY2xpZW50aWQiOiIwMTIzNDU2IiwiYXpwIjoiMDEyMzQ1Njc4OWFiY2RlZjAxMjMiLCJhZ3JlZW1lbnRzIjoiQWdyZWVtZW50U2FtcGxlMSBBZ3JlZW1lbnRTYW1wbGUyIEFncmVlbWVudFNhbXBsZTMiLCJwb3J0Zm9saW9zIjoiUG9ydGZvbGlvU2FtcGxlMSBQb3J0Zm9saW9TYW1wbGUyIFBvcnRmb2xpb1NhbXBsZTMiLCJzY29wZSI6Ik9yZGVyc1JlYWQgT3JkZXJzQ3JlYXRlIFRyYWRlcyBQZXJzb25hbCBTdGF0cyIsImV4cCI6Mjg3MTc2MzE5OSwiaWF0IjowLCJpc3MiOiJBbG9yLklkZW50aXR5IiwiYXVkIjoiQ2xpZW50IFdBUlAgV2FycEFUQ29ubmVjdG9yIHN1YnNjcmlwdGlvbnNBcGkgQ29tbWFuZEFwaSBJbnN0cnVtZW50QXBpIFRyYWRpbmdWaWV3UGxhdGZvcm0ifQ.QOQVMIAoZ6SnF5urnIzJ0EvtQd9P5Sx355069kXoID207wHOTW0wkKNMcrIKXmENEQQ_0yDjqH_kjeqWLBJuqA"
}

Полученный Access Токен действителен в течение 30 минут с момента создания. При истечении срока действия Токена процедуру создания потребуется провести повторно.

Интерактивный запрос

Для запроса на обновление Access Токена доступно интерактивное описание на странице Обновление JWT токена.

Подробнее

Детальная информация об Access Токенах доступна в соответствующей статье.


Шаг 5. Отправка запросов

Взаимодействие с АЛОР Брокер API возможно как через HTTP API (REST), так и через WebSocket API. При этом часть поддерживаемых торговой системой операций доступна в обоих вариантах взаимодействия.

Получение информации о биржевом стакане финансового инструмента

HTTP API позволяет выполнить однократный обмен данными с сервером API, получив в ответ на отправленный запрос сообщение с информацией, актуальной на момент выполнения запроса.

Получение информации о биржевом стакане интересующего финансового инструмента на выбранной бирже через HTTP API выполняется с помощью запроса к конечной точке /md/v2/orderbooks/{exchange}/{symbol} сервера API. Для боевого контура этот сервер доступен по адресу apidev.alor.ru. URL запроса должен содержать фактические значения кода биржи вместо параметра {exchange} и кода финансового инструмента вместо {symbol}.

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

Перед выполнением запроса убедитесь, что заполнены все необходимые path-, query- и header-параметры.

Пример URL запроса:

https://apidev.alor.ru/md/v2/orderbooks/MOEX/SBER

Если необходимо, укажите в URL поддерживаемые запросом query-параметры:

  • depth — Глубина стакана. Стандартное и максимальное значение: 20 (20х20)
  • format — Формат возвращаемого сервером JSON-объекта: Simple, Slim, Heavy. Стандартное значение: Simple.

Пример URL запроса с query-параметрами:

https://apidev.alor.ru/md/v2/orderbooks/MOEX/SBER?depth=1&format=Simple

Для успешного выполнения запроса необходимо указать значения для обязательных параметров заголовка:

  • Параметр Authorization должен содержать значение Bearer <Token>, где Token — Access Токен, полученный ранее.

Заполните все параметры актуальными для задачи значениями и выполните запрос. В случае успешно обработки запроса сервер в ответ вернёт JSON-объект с информацией.

{
"snapshot": true,
"bids": [
{
"price": 281.98,
"volume": 36
}
],
"asks": [
{
"price": 281.99,
"volume": 11
}
],
"timestamp": 1701105939,
"ms_timestamp": 1701105939395,
"existing": true
}

После возвращения ответа HTTP-соединение будет завершено. Для получения актуальной информации в дальнейшем потребуется выполнить запрос повторно.

Если синтаксис запроса был нарушен или указаны некорректные значения, сервер вернёт JSON-объект с соответствующими ошибке значениями.

Подробнее

Детальная информация об HTTP запросе на получение информации о биржевом стакане доступна на странице интерактивного описания запроса.


Создание рыночной заявки на приобретение выбранного инструмента

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

Перед выполнением запроса убедитесь, что заполнены все необходимые path-, query- и header-параметры.

Создание рыночной заявки на приобретение интересующего финансового инструмента на выбранной бирже через HTTP API выполняется с помощью запроса к конечной точке /commandapi/warptrans/TRADE/v2/client/orders/actions/market сервера API. Для боевого контура этот сервер доступен по адресу apidev.alor.ru. Условия заявки указываются в передаваемом указанной конечной точке теле сообщения.

Пример URL запроса:

https://apidev.alor.ru/commandapi/warptrans/TRADE/v2/client/orders/actions/market

Для успешного выполнения запроса необходимо указать значения для обязательных параметров заголовка:

  • Параметр Authorization должен содержать значение Bearer <Token>, где Token — Access Токен, полученный ранее.
  • Параметр X-ALOR-REQID должен содержать значение <ID>, где ID — сгенерированный пользователем уникальный идентификатор заявки.
Важно!

Передаваемое в заголовке X-ALOR-REQID значение должно быть уникальным для каждого запроса. При передаче ранее использовавшегося значения сервер отклонит запрос с соответствующей ошибкой.

В тело сообщения добавьте JSON-объект, содержащий условия заявки.

{
"side": "buy",
"type": "market",
"quantity": 1,
"instrument": {
"symbol": "SBER",
"exchange": "MOEX"
},
"comment": "Пользовательский комментарий",
"user": {
"portfolio": "D39004"
}
}

Заполните все параметры актуальными для задачи значениями и выполните запрос. В случае успешной обработки переданного сообщения сервер в ответ вернёт JSON-объект с номером созданной заявки.

{
"message": "success",
"orderNumber": "409...153"
}

Если синтаксис запроса был нарушен или указаны некорректные значения, сервер вернёт JSON-объект с соответствующими ошибке значениями.

В дальнейшем созданную заявку можно просмотреть, изменить или отменить с помощью соответствующих запросов.

Подробнее

Детальная информация о запросе на получение информации о создании рыночной заявки доступна на странице интерактивного описания запроса.


Что дальше?

Шаги, перечисленные выше, описывают лишь основы взаимодействия с интерфейсами HTTP и WebSocket API, не затрагивая при этом возможные особенности и ограничения каждого из интерфейсов. Кроме того, данное руководство описывает взаимодействие с тестовым контуром системы, подразумевающее определённые особенности и ограничения. Для более эффективного использования запросов рекомендуем ознакомиться со следующими материалами: