Skip to content
Для ИИ NEW Мои токены Поддержка
Для подтверждения действия введите пароль
Чтобы продолжить, введите пароль для пользователя
For LLMs and AI agents: canonical Markdown source of this documentation page (plain-text .md — fetch this URL to use the page content in tools and RAG). For LLMs and AI agents: developers documentation index in llms.txt format — ordered list of key documentation URLs for the developers section.

API Индекса ATI.SU по направлениям

API предоставляет значение Индекса ATI.SU для 100 самых популярных направлений в РФ, входящих в общий Индекс ATI.SU.

API позволяет запросить значения Индекса ATI.SU:

  • по 100 самым популярным направлениям в РФ;
  • для полностью загруженного транспорта 20 т, 82 м3;
  • за интересующий вас период;
  • для всех типов кузовов или отдельно для рефрижератора, открытого и закрытого кузова.

Как получить доступ к API

Чтобы получить доступ к API – подключите лицензию «API Средних ставок» на странице оплаты.

Запросы к API отправляются с токеном ATI.SU в заголовке Authorization: Bearer {token}. Как получить токен — в разделе Авторизация.

Если у вас остались вопросы — напишите в техническую поддержку на api@ati.su.

Динамика индекса по направлению

Возвращает значения индекса по направлению за период Возвращает значения индекса ATI.SU по одному направлению и типу кузова по датам расчёта с DateFrom по DateTo включительно. Направление задаётся парой городов From и To из ответа GET /index/license/v1/directions. До 01.08.2025 индекс считался раз в неделю, по средам, с 01.08.2025 — каждый день.
post /index/license/v1/index_by_direction
Параметры
Параметров нет
Запрос
Модель
{...}

Тело запроса значений индекса по направлению за период.

DateFrom*: date

Начало периода включительно, в формате YYYY-MM-DD.

DateTo*: date

Конец периода включительно, в формате YYYY-MM-DD. Не раньше DateFrom.

CarType: string

Тип кузова. Если не передан — all.

  • ref – Рефрижераторы

  • close – Закрытые

  • open – Открытые

  • all – Все типы

}
Пример запроса
curl 'https://api.ati.su/index/license/v1/index_by_direction' \
-X 'POST' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json' \
--data-raw '{"DateFrom":"2026-09-01","DateTo":"2026-09-03","From":{"Id":1},"To":{"Id":3611},"CarType":"ref"}'
Ответ
200 Значения индекса направления по датам периода.
Модель
{...}

Значения индекса по направлению за период.

Data*:

Значения индекса направления по датам периода. До 01.08.2025 индекс считался раз в неделю, по средам, с 01.08.2025 — каждый день. Даты без расчёта в ответ не попадают. В ответе 200 массив не пустой: если значений за период нет, метод отвечает 404.

ANY-OF
null
}
Пример
{...}
"Data":[...]
{...},
"Date":"2026-09-01",
"Index":1390
},
{...},
"Date":"2026-09-02",
"Index":1402
},
{...}
"Date":"2026-09-03",
"Index":1411
}
]
}
401 Токен не передан, невалиден или просрочен. Отвечает API Gateway, тело ответа не в формате JSON.
Ответ без тела
402 Лицензия «API Средних ставок» у фирмы есть, но не действует на текущую дату.
Модель
{...}

Ошибка в формате ATI.SU: код или текст ошибки, причина и дополнительные сведения.

error*: string

Код или текст ошибки.

reason*: string

Причина ошибки для человека.

details*:

Дополнительные сведения об ошибке. null, если их нет.

ANY-OF
1:{}
null
}
Пример
{...}
"error":"Access error",
"reason":"Действие вашего доступа закончилось.",
"details":null
}
403 У фирмы нет лицензии «API Средних ставок».
Модель
{...}

Ошибка в формате ATI.SU: код или текст ошибки, причина и дополнительные сведения.

error*: string

Код или текст ошибки.

reason*: string

Причина ошибки для человека.

details*:

Дополнительные сведения об ошибке. null, если их нет.

ANY-OF
1:{}
null
}
Пример
{...}
"error":"Access error",
"reason":"Оплатите лицензию для получения доступа.",
"details":null
}
404 Направления нет среди направлений индекса: в error и reason — «Направление не найдено.». За период нет ни одного значения индекса: в error — «За данный временной период у нас нет данных!», в reason — период из запроса.
Модель
{...}

Ошибка в формате ATI.SU: код или текст ошибки, причина и дополнительные сведения.

error*: string

Код или текст ошибки.

reason*: string

Причина ошибки для человека.

details*:

Дополнительные сведения об ошибке. null, если их нет.

ANY-OF
1:{}
null
}
Пример
{...}
"error":"Направление не найдено.",
"reason":"Направление не найдено.",
"details":null
}
422 Тело запроса не прошло проверку: невалидный JSON, не передано обязательное поле, значение не того типа, неизвестный тип кузова, дата не в формате YYYY-MM-DD или конец периода раньше начала.
Модель
{...}

Ошибка валидации запроса: тело не прошло проверку типов и значений.

error*: string

Код ошибки, всегда validation_errors.

reason*: string

Причина ошибки для человека.

}
Пример
{...}
"error":"validation_errors",
"reason":"Произошли ошибки валидации",
"error_list":[...]
{...}
"error":"Тип поданного параметра отличается от ожидаемого - Value error, Неправильное зачение типа кузова. Возможные значения: all, close, open, ref.",
"reason":"location: , ('body', 'CarType'); type: value_error"
}
]
}
503 Не удалось проверить лицензию фирмы, повторите запрос позже.
Модель
{...}

Ошибка в формате ATI.SU: код или текст ошибки, причина и дополнительные сведения.

error*: string

Код или текст ошибки.

reason*: string

Причина ошибки для человека.

details*:

Дополнительные сведения об ошибке. null, если их нет.

ANY-OF
1:{}
null
}
Пример
{...}
"error":"billing_unavailable",
"reason":"Не удалось проверить лицензии, попробуйте позже.",
"details":null
}

Доступные направления индекса

Возвращает направления индекса Возвращает 100 самых популярных направлений РФ, по которым считается индекс ATI.SU. Вызывайте метод перед POST /index/license/v1/index_by_direction: пару городов From и To для запроса берите из этого списка.
get /index/license/v1/directions
Параметры
Параметров нет
Запрос
Пример запроса
curl 'https://api.ati.su/index/license/v1/directions' \
-X 'GET' \
-H 'Authorization: Bearer {authorizationToken}' \
-H 'Content-Type: application/json'
Ответ
200 Направления индекса.
Модель
{...}

Направления, по которым считается индекс.

}
Пример
{...}
"Directions":[...]
{...},
"From":{...},
"Id":1,
"Name":"Санкт-Петербург"
},
"To":{...}
"Id":3611,
"Name":"Москва"
}
},
{...}
"From":{...},
"Id":3611,
"Name":"Москва"
},
"To":{...}
"Id":135,
"Name":"Нижний Новгород"
}
}
]
}
401 Токен не передан, невалиден или просрочен. Отвечает API Gateway, тело ответа не в формате JSON.
Ответ без тела
402 Лицензия «API Средних ставок» у фирмы есть, но не действует на текущую дату.
Модель
{...}

Ошибка в формате ATI.SU: код или текст ошибки, причина и дополнительные сведения.

error*: string

Код или текст ошибки.

reason*: string

Причина ошибки для человека.

details*:

Дополнительные сведения об ошибке. null, если их нет.

ANY-OF
1:{}
null
}
Пример
{...}
"error":"Access error",
"reason":"Действие вашего доступа закончилось.",
"details":null
}
403 У фирмы нет лицензии «API Средних ставок».
Модель
{...}

Ошибка в формате ATI.SU: код или текст ошибки, причина и дополнительные сведения.

error*: string

Код или текст ошибки.

reason*: string

Причина ошибки для человека.

details*:

Дополнительные сведения об ошибке. null, если их нет.

ANY-OF
1:{}
null
}
Пример
{...}
"error":"Access error",
"reason":"Оплатите лицензию для получения доступа.",
"details":null
}
503 Не удалось проверить лицензию фирмы, повторите запрос позже.
Модель
{...}

Ошибка в формате ATI.SU: код или текст ошибки, причина и дополнительные сведения.

error*: string

Код или текст ошибки.

reason*: string

Причина ошибки для человека.

details*:

Дополнительные сведения об ошибке. null, если их нет.

ANY-OF
1:{}
null
}
Пример
{...}
"error":"billing_unavailable",
"reason":"Не удалось проверить лицензии, попробуйте позже.",
"details":null
}