API Общего индекса ATI.SU FTL РФ
API предоставляет текущее значение Общего индекса ATI.SU и его ежедневную историю для выбранного типа кузова: открытый, закрытый, рефрижератор и все типы.
Информация актуальна для полностью загруженных автомобилей 20 т, 82 м³. При расчёте учтены ставки участников ATI.SU, а также параметры реальных сделок на Бирже.
Также у нас есть API Индекса ATI.SU по направлениям — информация об API Индекса по направлениям.
Что такое Общий индекс ATI.SU
Общий индекс ATI.SU — это аналитический инструмент. Он показывает, как меняются средние ставки на грузоперевозки по России в условных единицах.
Само по себе его текущее значение не даёт информации, но если сравнить его со значениями за предыдущие дни, то вы увидите, как меняются ставки, и что происходит на рынке.
До 1 августа 2025 года Индекс считался понедельно, с 1 августа — ежедневно.
Как получить доступ к API
Запросы к API отправляются с токеном ATI.SU в заголовке Authorization: Bearer {token}. Как получить токен — в разделе Авторизация.
Если у вас остались вопросы — напишите в техническую поддержку на api@ati.su.
Методы
Текущее состояние общего индекса
Возвращает текущее значение общего индекса Возвращает значение общего индекса ATI.SU на последнюю дату расчёта для выбранного типа кузова и его изменение в процентах за день, неделю, месяц, 3 и 6 месяцев, с начала года, за год, 3 года и всё время. Индекс пересчитывается раз в день. Значения за период отдаёт POST /index/license/v1/general_index_dynamic. post /index/license/v1/current_index
Тело запроса текущего значения общего индекса.
Тип кузова.
ref– Рефрижераторыclose– Закрытыеopen– Открытыеall– Все типы
curl 'https://api.ati.su/index/license/v1/current_index' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"CarType":"all"}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/index/license/v1/current_index", "{""CarType"":""all""}"); 200 Значение общего индекса и его изменение за периоды.
Значение общего индекса на последнюю дату расчёта и его изменение за периоды.
Значение общего индекса на последнюю дату расчёта, в условных единицах.
Изменился ли индекс относительно предыдущей даты расчёта: true — вырос, false — снизился, null — не изменился.
Тип кузова из запроса.
ref– Рефрижераторыclose– Закрытыеopen– Открытыеall– Все типы
Изменение индекса за периоды.
Изменение за день: к предыдущей дате расчёта.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
Изменение за неделю: к значению 7 дней назад.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
Изменение за месяц: к значению 28 дней назад.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
Изменение за три месяца: к значению 90 дней назад.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
Изменение за шесть месяцев: к значению 181 день назад.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
Изменение с начала года: к значению на 1 января.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
Изменение за год: к значению 365 дней назад.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
Изменение за три года: к значению 1095 дней назад.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
Изменение за всё время: к первому значению индекса.
Изменение индекса в процентах: последнее значение относительно значения на начало периода. Положительное — рост, отрицательное — падение. За день — с двумя знаками после запятой, за остальные периоды — с одним.
401 Токен не передан, невалиден или просрочен. Отвечает API Gateway, тело ответа не в формате JSON.
422 Тело запроса не прошло проверку: невалидный JSON, не передан CarType или тип кузова неизвестен.
Ошибка валидации запроса: тело не прошло проверку типов и значений.
Код ошибки, всегда validation_errors.
Причина ошибки для человека.
Ошибки валидации. В списке одна ошибка — первая найденная.
Текст ошибки: «Тип поданного параметра отличается от ожидаемого - » и сообщение валидатора.
Где ошибка и какого она типа: в location — путь к полю в теле запроса, в type — тип ошибки. У проверки порядка дат путь без имени поля: ('body',).
Динамика общего индекса
Возвращает значения общего индекса за период Возвращает значения общего индекса ATI.SU для выбранного типа кузова по датам расчёта с DateFrom по DateTo включительно. До 01.08.2025 индекс считался раз в неделю, по средам, с 01.08.2025 — каждый день. Текущее значение и его изменение за стандартные периоды отдаёт POST /index/license/v1/current_index. post /index/license/v1/general_index_dynamic
Тело запроса значений общего индекса за период.
Тип кузова. Если не передан — all.
ref– Рефрижераторыclose– Закрытыеopen– Открытыеall– Все типы
Начало периода включительно, в формате YYYY-MM-DD.
Конец периода включительно, в формате YYYY-MM-DD. Не раньше DateFrom.
curl 'https://api.ati.su/index/license/v1/general_index_dynamic' \ -X 'POST' \ -H 'Authorization: Bearer {authorizationToken}' \ -H 'Content-Type: application/json' \ --data-raw '{"CarType":"ref","DateFrom":"2026-09-01","DateTo":"2026-09-03"}'Процедура ВыполнитьHTTPЗапрос(МетодЗапроса, АдресХоста, АдресРесурса, ТекстЗапроса) Экспорт ЗаголовкиHTTP = Новый Соответствие(); ЗаголовкиHTTP.Вставить("Accept", "application/json"); ЗаголовкиHTTP.Вставить("Content-Type", "application/json"); ЗаголовкиHTTP.Вставить("Authorization", "Bearer {authorizationToken}"); HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовкиHTTP); HTTPЗапрос.УстановитьТелоИзСтроки(ТекстЗапроса, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); ЗащищенноеСоединениеSSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows, Новый СертификатыУдостоверяющихЦентровWindows);
Соединение = Новый HTTPСоединение(АдресХоста,,,,,, ЗащищенноеСоединениеSSL);
Попытка Ответ = Соединение.ВызватьHTTPМетод(МетодЗапроса, HTTPЗапрос); Сообщить("Код ответа: " + Ответ.КодСостояния); Сообщить("Ответ: " + Ответ.ПолучитьТелоКакСтроку("UTF-8")); Исключение Сообщить("Ошибка выполнения запроса!" + Символы.ПС + ОписаниеОшибки()); КонецПопытки;КонецПроцедуры
ВыполнитьHTTPЗапрос("POST", "https://api.ati.su", "/index/license/v1/general_index_dynamic", "{""CarType"":""ref"",""DateFrom"":""2026-09-01"",""DateTo"":""2026-09-03""}"); 200 Значения общего индекса по датам периода.
Значения общего индекса за период.
Тип кузова из запроса.
ref– Рефрижераторыclose– Закрытыеopen– Открытыеall– Все типы
Значения индекса по датам периода, по возрастанию даты. До 01.08.2025 индекс считался раз в неделю, по средам, с 01.08.2025 — каждый день. Даты без расчёта в ответ не попадают.
Дата расчёта индекса в формате YYYY-MM-DD.
Значение индекса на эту дату, в условных единицах.
401 Токен не передан, невалиден или просрочен. Отвечает API Gateway, тело ответа не в формате JSON.
404 За период нет ни одного значения индекса: в error — «За данный временной период у нас нет данных!», в reason — период из запроса.
Ошибка в формате ATI.SU: код или текст ошибки, причина и дополнительные сведения.
Код или текст ошибки.
Причина ошибки для человека.
Дополнительные сведения об ошибке. null, если их нет.
422 Тело запроса не прошло проверку: невалидный JSON, не передано обязательное поле, значение не того типа, неизвестный тип кузова, дата не в формате YYYY-MM-DD или конец периода раньше начала.
Ошибка валидации запроса: тело не прошло проверку типов и значений.
Код ошибки, всегда validation_errors.
Причина ошибки для человека.
Ошибки валидации. В списке одна ошибка — первая найденная.
Текст ошибки: «Тип поданного параметра отличается от ожидаемого - » и сообщение валидатора.
Где ошибка и какого она типа: в location — путь к полю в теле запроса, в type — тип ошибки. У проверки порядка дат путь без имени поля: ('body',).