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 кодами ответа.
Коды ответа
| Код | Значение |
|---|---|
| 200 | OK |
| 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 | Ключ API | string | да |
{
"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 | Ключ API | string | да |
{
"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 | да |
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 | Использовать грунтовые дороги? | bool | 1/0 | 1 | нет |
| highways | Использовать шоссе? | bool | 1/0 | 1 | нет |
| paid | Использовать платные дороги? | bool | 1/0 | 1 | нет |
| borders | Можно пересекать границы? | bool | 1/0 | 1 | нет |
| traffic | Использовать пробки? | bool | 1/0 | 1 | нет |
| key | Ключ API | string | да |
Описание параметра 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/route
Входные параметры
| Параметр | Значение | Тип | Диапазон | По умолчанию | Обязательный? |
|---|---|---|---|---|---|
| points | Координаты | json-array | да | ||
| cartype | Тип транспорта | string | [auto | truck | public | walk] | auto | нет |
| unpaved | Использовать грунтовые дороги? | bool | 1/0 | 1 | нет |
| highways | Использовать шоссе? | bool | 1/0 | 1 | нет |
| paid | Использовать платные дороги? | bool | 1/0 | 1 | нет |
| borders | Можно пересекать границы? | bool | 1/0 | 1 | нет |
| traffic | Использовать пробки? | bool | 1/0 | 1 | нет |
| key | Ключ API | string | да |
Описание параметра 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 | Использовать грунтовые дороги? | bool | 1/0 | 1 | нет |
| highways | Использовать шоссе? | bool | 1/0 | 1 | нет |
| paid | Использовать платные дороги? | bool | 1/0 | 1 | нет |
| borders | Можно пересекать границы? | bool | 1/0 | 1 | нет |
| traffic | Использовать пробки? | bool | 1/0 | 1 | нет |
| key | Ключ API | string | да |
Описание параметра 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 | Использовать грунтовые дороги? | bool | 1/0 | 1 | нет |
| highways | Использовать шоссе? | bool | 1/0 | 1 | нет |
| paid | Использовать платные дороги? | bool | 1/0 | 1 | нет |
| borders | Можно пересекать границы? | bool | 1/0 | 1 | нет |
| traffic | Использовать пробки? | bool | 1/0 | 1 | нет |
| key | Ключ API | string | да |
{
"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 | Ключ API | string | да |
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"
Выходные параметры
| Параметр | Значение | Тип |
|---|---|---|
| real_speed | Скорость в переданном треке | int |
| max_speed | Разрешенная скорость | int |
| coords | Координаты | Массив [float, float] |
| timestamp | Время | int |
GET-запрос на адрес https://api.1traffic.ru/v2/tiles/map/{z}/{x}/{y}.png?key=demo
Входные параметры
| Параметр | Значение | Тип | Диапазон | По умолчанию | Обязательный? |
|---|---|---|---|---|---|
| z | Масштаб | int | 1..17 | да | |
| y | Координаты по вертикали (широте) | int | от 0 до 2z−1 | да | |
| x | Масштаб | int | от 0 до 2z−1 | да |
Например:
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);
L.tileLayer('https://api.1traffic.ru/v2/tiles/map/{z}/{x}/{y}.png?key=demo')
GET-запрос на адрес https://api.1traffic.ru/v2/tiles/jams/{z}/{x}/{y}.png?key=demo
Входные параметры
| Параметр | Значение | Тип | Диапазон | По умолчанию | Обязательный? |
|---|---|---|---|---|---|
| z | Масштаб | int | 1..17 | да | |
| y | Координаты по вертикали (широте) | int | от 0 до 2z−1 | да | |
| x | Масштаб | int | от 0 до 2z−1 | да |
Например:
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);
L.tileLayer('https://api.1traffic.ru/v2/tiles/jams/{z}/{x}/{y}.png?key=demo')