Квазар. API

версия v2.5.5 04.02.2025

Общая информация

API предназначено для получения доступа к различным сервисам. В большинстве случаев доступ предоставляется посредством HTTPS GET/POST-запросов на адрес https://api.1traffic.ru/v2/<service>?key=<key>&<params>

Обращение к сервисам посредством протокола HTTP автоматически перенаправляются на аналогичный адрес, но с протоколом HTTPS, с кодом 301.

Определение уровня доступа определяется по параметру key, являющимся обязательным для всех запросов. Поскольку при GET-запросах параметры часто видны в исходном HTML/JS коде, крайне рекомендуется использовать проксирование запросов через локальный web-сервер (например, nginx).

Для разработки и тестирования можно использовать ключ demo, на который действует ограничение по RPS (request per second), равный 1. На выданные ключи действует ограничение по RPS в 50.


Ошибки

API возвращает результат в виде JavaScript-кода* с установленными HTTP кодами ответа.

Коды ответа

КодЗначение
200OK
404Значение не найдено
403Неверный параметр key, доступ запрещен
400Неверные параметры
401Неверные параметры
500Внутренняя ошибка сервера

* Исключением является сервис тайлов, который в нормальном случае возвращает PNG-изображение.


Геокодирование

Поиск ближайшего объекта по заданным географическим координатам (широта и долгота)

GET-запрос на адрес https://api.1traffic.ru/v2/geocode

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
latШиротаfloat-89.0 ... 89.0да
lonДолготаfloat-180.0 ... 180.0да
keyКлюч APIstringда

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

Ожидаемый ответ

{
    "name":"Москва, Таллинская улица, 2",
    "parent":"Москва",
    "lat":55.799334,
    "lon":37.391886
}

Выходные параметры

ПараметрЗначениеТипДиапазонОбязательный?
nameАдресstringда
parentОбластьstringда
latШиротаfloat-89.0 ... 89.0да
lonДолготаfloat-180.0 ... 180.0да

Массовое геокодирование

Поиск ближайшего объекта по заданным географическим координатам (широта и долгота)

POST-запрос на адрес https://api.1traffic.ru/v2/geocode

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
batchМножествоboolда
keyКлюч APIstringда

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

{
 "a6a95ca5-2981-4030-b8f0-bd59fdca84b3": [55.786603125000006, 37.96082833333333],
 "f8cd321c-1f2f-4cbb-b767-361d719b3cc5": [55.73679377104378, 38.368823720538714],
}

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

Ожидаемый ответ

{
    "multiple": {
        "a6a95ca5-2981-4030-b8f0-bd59fdca84b3": {
            "name": "Леоновское шоссе",
            "parent": "Московская область",
            "lat": 55.774963,
            "lon": 37.959891,
            "type": "street"
        },
        "f8cd321c-1f2f-4cbb-b767-361d719b3cc5": {
            "name": "улица Мира",
            "parent": "Московская область",
            "lat": 55.727009,
            "lon": 38.342112,
            "type": "street"
        },...

Выходные параметры

ПараметрЗначениеТипДиапазонОбязательный?
nameАдресstringда
parentОбластьstringда
latШиротаfloat-89.0 ... 89.0да
lonДолготаfloat-180.0 ... 180.0да

Расчет оптимального маршрута A ⟹ B

GET-запрос на адрес https://api.1traffic.ru/v2/route

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
lat1Широта началаfloat-89.0 ... 89.0да
lon1Долгота началаfloat-180.0 ... 180.0да
lat2Широта финишаfloat-89.0 ... 89.0да
lon2Долгота финишаfloat-180.0 ... 180.0да
cartypeТип транспортаstring[auto | truck | public | walk]autoнет
unpavedИспользовать грунтовые дороги?bool1/01нет
highwaysИспользовать шоссе?bool1/01нет
paidИспользовать платные дороги?bool1/01нет
bordersМожно пересекать границы?bool1/01нет
trafficИспользовать пробки?bool1/01нет
keyКлюч APIstringда
Передается начальная и конечная точки маршрута.
Вычисляется оптимальный по времени маршрут.

Описание параметра cartype

ЗначениеОписание
autoАвтомобиль
truckГрузовой автомобиль
publicОбщественный транспорт
walkПешеход

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

Ожидаемый ответ

{
    "path":[[55.717975,37.38671],[55.717119,37.387163],...,[55.715761,37.380043]]
}

Выходные параметры

ПараметрЗначениеТипОбязательный?
pathНабор точекМассив [float, float]да

Расчет оптимального маршрута A ⟹ B ⟹ ... ⟹ N

POST-запрос на адрес https://api.1traffic.ru/v2/route

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
pointsКоординатыjson-arrayда
cartypeТип транспортаstring[auto | truck | public | walk]autoнет
unpavedИспользовать грунтовые дороги?bool1/01нет
highwaysИспользовать шоссе?bool1/01нет
paidИспользовать платные дороги?bool1/01нет
bordersМожно пересекать границы?bool1/01нет
trafficИспользовать пробки?bool1/01нет
keyКлюч APIstringда
Вычисляется оптимальный по времени маршрут. Расчитывается маршрут между переданными точками. Точек должно быть не более 25.

Описание параметра cartype

ЗначениеОписание
autoАвтомобиль
truckГрузовой автомобиль
publicОбщественный транспорт
walkПешеход

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

{
    'points': [[59.9402542114, 30.3559093475], [59.9402542114, 30.3559093475], [59.9402542114, 30.3559093475], [59.9402542114, 30.3559093475]]
}

Ожидаемый ответ

{
    "path":[[55.717975,37.38671],[55.717119,37.387163],...,[55.715761,37.380043]]
}

Выходные параметры

ПараметрЗначениеТипДиапазонОбязательный?
pathНабор точекМассив [float, float]да

Решение задачи коммивояжера

GET-запрос на адрес https://api.1traffic.ru/v2/tsp

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
pointsКоординаты[float,float][-89.0 ... 89.0, -180.0 ... 180.0]да
cartypeТип транспортаstring[auto | truck | public | walk]autoнет
unpavedИспользовать грунтовые дороги?bool1/01нет
highwaysИспользовать шоссе?bool1/01нет
paidИспользовать платные дороги?bool1/01нет
bordersМожно пересекать границы?bool1/01нет
trafficИспользовать пробки?bool1/01нет
keyКлюч APIstringда
Передается массив точек, состоящий из широты, долготы. Разделены ","
Минимальное количество точек — 2, максимальное - ограничено длиной HTTP GET-запроса.
Учитывается текущее состояние загрузки (пробки), рассчитывается оптимальный по времени маршрут, проходящий через все указанные точки.

Описание параметра cartype

ЗначениеОписание
autoАвтомобиль
truckГрузовой автомобиль
publicОбщественный транспорт
walkПешеход

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

Ожидаемый ответ

{
    "path":[[55.717975,37.38671],[55.717119,37.387163],...,[55.715761,37.380043]],
}

Выходные параметры

ПараметрЗначениеТипДиапазонОбязательный?
pathНабор точекМассив [float, float]да

Матрица расстояний

POST-запрос на адрес https://api.1traffic.ru/v2/matrix

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
sourcesКоординаты[float,float][-89.0 ... 89.0, -180.0 ... 180.0]да
targetsКоординаты[float,float][-89.0 ... 89.0, -180.0 ... 180.0]да
cartypeТип транспортаstring[auto | truck | public | walk]autoнет
unpavedИспользовать грунтовые дороги?bool1/01нет
highwaysИспользовать шоссе?bool1/01нет
paidИспользовать платные дороги?bool1/01нет
bordersМожно пересекать границы?bool1/01нет
trafficИспользовать пробки?bool1/01нет
keyКлюч APIstringда
Передается массив точек.
Вычисляется время и расстояние между всеми наборами переданных точек. Суммарное количество точек должно быть не более 50.

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

{
    "sources":[
        {"lat":55.796932,"lon":37.537849},
        {"lat":55.801551,"lon":37.531575}
    ],
    "targets":[
        {"lat":55.790412,"lon":37.534313},
        {"lat":55.788644,"lon":37.536507}
    ]
}
                    

Ожидаемый ответ

{
    "sources":[[{"lon":37.537849,"lat":55.796932},{"lon":37.531575,"lat":55.801551}]],
    "targets":[[{"lon":37.534313,"lat":55.790412},{"lon":37.536507,"lat":55.788644}]],
    "sources_to_targets":[
        [{
                    "distance":2.885,"time":451,"to_index":0,"from_index":0
        },{
                    "distance":1.991,"time":339,"to_index":1,"from_index":0
        }],
        [{
                    "distance":5.354,"time":713,"to_index":0,"from_index":1
        },{
                    "distance":4.46,"time":609,"to_index":1,"from_index":1
        }]
    ]
}

Выходные параметры

ПараметрЗначениеТипДиапазонОбязательный?
sourcesИсходные точкиМассив [float, float]да
targetsКонечные точкиМассив [float, float]да
sources_to_targetsСтоимость связейДистанция и времяда

Детектор нарушений

POST-запрос на адрес https://api.1traffic.ru/v2/violator

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
keyКлюч APIstringда
Передается набор точек, состоящий из широты, долготы, скорости и времени. Разделены "\n"
55.79895782470703,37.39778518676758,67,1738409236
55.79893112182617,37.39948272705078,54,1738409242
55.79903793334961,37.40183639526367,11,1738409258

Входные параметры

ПараметрТип
Широтаfloat
Долготаfloat
Скоростьint
Времяint
Сервис реконструирует из полученных данных путь следования транспортного средства и ищет на этом пути нарушения правил дорожного движения. На текущий момент определяются следующие нарушения:
Тип нарушенияПояснение
Превышение скорости12.9 КоАП РФдействует
Запрещенный разворотв разработке
Остановка в туннелев разработке
Остановка на мостув разработке
Остановка в зоне действия знака 3.27в разработке
Стоянка в зоне действия знака 3.28в разработке
Движение более 4 часов без остановкив разработке
Движение во встречном направлениив разработке

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

curl -X POST  --data-binary  @violation_test.csv "https://api.1traffic.ru/v2/violator?key=demo"
                
Файл violation_test.csv для примера можно скачать здесь

Ожидаемый ответ

Выходные параметры

ПараметрЗначениеТип
real_speedСкорость в переданном трекеint
max_speedРазрешенная скоростьint
coordsКоординатыМассив [float, float]
timestampВремяint

Тайлы карты

Передается карта России и зарубежья в виде тайлов.

Карта формируется из отдельных растровых изображений (PNG 256x256 пикселов) – тайлов. Сервис тайлов предоставляет доступ к этим изображениям, которые могут быть использованы для отображения карты на публичных сайтах и в мобильных приложениях. Обновление карты происходит ежеквартально.

GET-запрос на адрес https://api.1traffic.ru/v2/tiles/map/{z}/{x}/{y}.png?key=demo

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
zМасштабint1..17да
yКоординаты по вертикали (широте)intот 0 до 2z−1да
xМасштабintот 0 до 2z−1да

Например:

https://api.1traffic.ru/v2/tiles/map/8/154/80.png?key=demo

Ожидаемый ответ

Пример подключения тайлов с помощью библиотеки OpenLayers

var map = new OpenLayers.Map('map', options);
var layer = new OpenLayers.Layer.XYZ('1traffic', [
       'https://api.1traffic.ru/v2/tiles/map/${z}/${x}/${y}.png?key=demo',
]);
map.addLayer(layer);

Пример подключения тайлов с помощью библиотеки Leaflet

L.tileLayer('https://api.1traffic.ru/v2/tiles/map/{z}/{x}/{y}.png?key=demo')

Тайлы текущей загруженности

Передается карта пробок в России в виде тайлов.

Карта формируется из отдельных растровых изображений (PNG 256x256 пикселов) – тайлов. Сервис тайлов предоставляет доступ к этим изображениям, которые могут быть использованы для отображения карты пробок на публичных сайтах и в мобильных приложениях.
Обновление карты пробок происходит каждые 5 минут.

GET-запрос на адрес https://api.1traffic.ru/v2/tiles/jams/{z}/{x}/{y}.png?key=demo

Входные параметры

ПараметрЗначениеТипДиапазонПо умолчаниюОбязательный?
zМасштабint1..17да
yКоординаты по вертикали (широте)intот 0 до 2z−1да
xМасштабintот 0 до 2z−1да

Например:

https://api.1traffic.ru/v2/tiles/jams/8/154/80.png?key=demo

Ожидаемый ответ

Пример подключения тайлов с помощью библиотеки OpenLayers

var map = new OpenLayers.Map('map', options);
var layer = new OpenLayers.Layer.XYZ('1traffic', [
       'https://api.1traffic.ru/v2/tiles/jams/${z}/${x}/${y}.png?key=demo',
]);
map.addLayer(layer);

Пример подключения тайлов с помощью библиотеки Leaflet

L.tileLayer('https://api.1traffic.ru/v2/tiles/jams/{z}/{x}/{y}.png?key=demo')