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

Старт в Боевом контуре

подсказка

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

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

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

Уже сделано?

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

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

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

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

Подробнее

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


Шаг 2. Привязка торгового аккаунта

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

подсказка

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

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

  1. Перейдите на страницу Токены для доступа к API
  2. Укажите логин и пароль от торгового аккаунта в соответствующих полях и нажмите кнопку Привязать

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

Подробнее

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


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

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

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

подсказка

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

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

  1. Перейдите на страницу Токены для доступа к API
  2. Создайте новый Refresh токен нажатием кнопки Выписать токен
  3. Просмотреть созданный токен можно, найдя его в списке ниже и нажав кнопку Показать

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

Подробнее

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


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

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

подсказка

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

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

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

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

https://oauth.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. Для боевого контура этот сервер доступен по адресу api.alor.ru. URL запроса должен содержать фактические значения кода биржи вместо параметра {exchange} и кода финансового инструмента вместо {symbol}.

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

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

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

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

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

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

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

https://api.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. Для боевого контура этот сервер доступен по адресу api.alor.ru. Условия заявки указываются в передаваемом указанной конечной точке теле сообщения.

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

https://api.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, не затрагивая при этом возможные особенности и ограничения каждого из интерфейсов. Для более эффективного использования запросов рекомендуем ознакомиться со следующими материалами: