Параметрический поиск актива

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

https://tr.porti.ru/xapi/market/screener?query=[[exchange,MOEX,=],[p_e,8,<],[div_yield,10,>=]]&token=⟨ТОКЕН⟩&format=json
curl --location "https://tr.porti.ru/xapi/market/screener?query=[[exchange,MOEX,=],[p_e,8,<],[div_yield,10,>=]]&token=⟨ТОКЕН⟩&format=json"
import requests url = f'https://tr.porti.ru/xapi/market/screener?query=[[exchange,MOEX,=],[p_e,8,<],[div_yield,10,>=]]&token=⟨ТОКЕН⟩&format=json' data = requests.get(url).json() print(data)
$curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => 'https://tr.porti.ru/xapi/market/screener?query=[[exchange,MOEX,=],[p_e,8,<],[div_yield,10,>=]]&token=⟨ТОКЕН⟩&format=json', CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => '', CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => true, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => 'GET', )); $data = curl_exec($curl); curl_close($curl); try { $data = json_decode($data, true, 512, JSON_THROW_ON_ERROR); var_dump($data); } catch (Exception $e) { echo 'Error. '.$e->getMessage(); }
library(httr) library(jsonlite) url <- 'https://tr.porti.ru/xapi/market/screener?query=[[exchange,MOEX,=],[p_e,8,<],[div_yield,10,>=]]&token=⟨ТОКЕН⟩&format=json' response <- GET(url) if (http_type(response) == "application/json") { content <- content(response, "text", encoding = "UTF-8") cat(content) } else { cat("Error while receiving data\n") }
Пример полученных данных с использованием этого API:
[ { code: "MOEX:TATN", title: "Татнефть", type: "company" }, { code: "MOEX:SIBN", title: "Газпромнефть", type: "company" }, { code: "MOEX:BSPB", title: "Банк Санкт-Петербург", type: "company" }, { code: "MOEX:CHMF", title: "Северсталь", type: "company" }, { code: "MOEX:MRKP", title: "МРСК Центра и Приволжья", type: "company" } ]
Параметры:
  1. token (обязательный) - токен получаемый при оформлении подписки (подписка API)
  2. query (обязательный) - строка параметрического поиска. Формат задания:
    Параметры задаются внутри квадратных скобок: []
    каждый параметр для поиска также обрамляется в квадратные скобки, и между параметрами идет разделите запятая:
    [[параметр1],[параметр2]]
    каждый параметр это строка из 3 значений разделенных запятой: [значение1, значение2,значение3]
    значение1 - код значение по которому ищутся параметры. Допустимые значения: exchange - поиск по бирже (NYSE, NASDAQ, MOEX), p_e, p_bv, p_s, div_yield, net_income, ROE, ROA, ROIC и другие (такие же как и при обычном поиске компаний
    значение2 - это значение которое будет использоваться для фильтрации
    значение3 - операция для сравнения
    в итоге получится такие значения, как пример:
    [[exchange,MOEX,=],[p_e,8,<],[div_yield,10,>=]], где присутствуют 3 параметра,
    [exchange,MOEX,=] - поиск по бирже - MOEX, то есть идет поиск только компаний на мосбирже
    [p_e,8,<] - поиск, значение у которых коэффициент P/E меньше 8
    [div_yield,10,>=] - поиск, значение у которых див доходность больше или равно 10
  3. format (не обязательный) - допустимые значения: json, csv. json - представление данных в формате json, csv - текстовый формат с разделителем.