API Средних ставок

API позволяет получать данные сервиса «Средние ставки» прямо в ваше ПО, без перехода на ATI.SU.
Доступ к API — платный. Необходимо приобрести лицензию «API Средних ставок».
API Средних ставок позволяет передавать информацию о средних ставках в ₽/км или в ₽ за весь маршрут, их разбросе и динамике для самых популярных направлений по России и за рубеж, а также о количестве грузов на ATI.SU по выбранному направлению в выбранный период.
Средние ставки обновляются один раз в день. Они всегда актуальны за вчерашний день — ставки за сегодня вы увидите завтра.
Для интеграции с API потребуется разработка с вашей стороны. Мы поможем: предоставим документацию и инструкции по интеграции, а также окажем техническую поддержку.
Разберём методы API Средних ставок.

Метод получения направлений

GET all_directions — показывает все направления, которые есть в сервисе «Средние ставки». Если направления нет — значит у нас недостаточно данных, чтобы выдать по нему значения средних ставок. Можно попробовать посмотреть данные по региону в целом.
Есть 6 типов кузова: закрытый, открытый, тентованный, рефрижератор, контейнер и трал. По какому-то направлению может не быть данных по одному или нескольким типам кузова. Мы покажем только доступные типы кузова.
Сами средние ставки метод all_directions не показывает.
Чтобы настроить интеграцию, можно использовать демометоды, которые отдают нереальные данные.
Посмотреть структуру запроса и ответа метода all_directions можно здесь. Чтобы изучить, как работает демоверсия, выставите параметр demo=true.
Все примеры далее приведены на основе нереальных данных.

Примеры ответа метода all_directions

Первый пример

{
"FromCityId": 206,
"FromCity": "Рязань, РФ",
"ToCityId": 3611,
"ToCity": "Москва, РФ",
"FromRegionId": null,
"FromRegion": null,
"ToRegionId": null,
"ToRegion": null,
"CarTypes":[
  "open"
],
"RoundTrips": null
}
Из примера видно, что в сервисе «Средние ставки» есть направление Рязань — Москва с типом кузова (CarTypes) — открытый (open). Для этого направления нет данных для кругорейса (RoundTrips: null).
Второй пример

{
"FromCityId": 72,
"FromCity": "Ижевск, РФ",
"ToCityId": null,
"ToCity": null,
"FromRegionId": null,
"FromRegion": null,
"ToRegionId": 21,
"ToRegion": "Свердловская обл., РФ",
"CarTypes": [
  "close",
  "open",
  "ref",
  "tent"
],
"RoundTrips": null
}
Из примера видно, что в сервисе «Средние ставки» есть направление Ижевск — Свердловская область с типом кузова (CarTypes) — закрытый (close), открытый (open), рефрижератор (ref) и тентованный (tent). Для этого направления нет данных для кругорейса (RoundTrips) — для регионов никогда нет кругорейса.
Третий пример

{
"FromCityId": 3611,
"FromCity": "Москва, РФ",
"ToCityId": 1,
"ToCity": "Санкт-Петербург, РФ",
"FromRegionId": null,
"FromRegion": null,
"ToRegionId": null,
"ToRegion": null,
"CarTypes": [
  "close",
  "open",
  "ref",
  "tent"
],
"RoundTrips": [
  "close",
  "open",
  "ref",
  "tent"
],
}
Из примера видно, что в сервисе «Средние ставки» есть направление Москва — Санкт-Петербург с типом кузова (CarTypes) — закрытый (close), открытый (open), рефрижератор (ref) и тентованный (tent). Для этого направления есть кругорейс (RoundTrips) для типов кузова закрытый (close), открытый (open), рефрижератор (ref) и тентованный (tent).

Метод получения ставок

POST average_prices — позволяет получить средние ставки и количество грузов по направлениям, которые есть в методе all_directions.
Метод отдаёт три цены в ₽/км или в ₽ за весь маршрут: среднюю и разброс ставок — от и до. А также количество уникальных грузов на ATI.SU по выбранному направлению в выбранный период.
Ставки можно запрашивать только по конкретному направлению и типу кузова из метода all_directions. Ставки по всем направлениям сразу запросить нельзя.
В запросе можно указать период, направление, тип кузова, тип ставки (с НДС или без НДС), нужны ли цены на кругорейс.
Также можно указать дискретность — Frequency. То есть выбрать, как нужно агрегировать данные: за день (day), неделю (week), месяц (month). Неделя — это всегда с понедельника по воскресенье. Месяц — это строго календарный месяц.
Потренироваться и посмотреть разные варианты выдачи вы можете бесплатно с помощью демометода average_prices.
Все примеры далее приведены на основе нереальных данных.

Примеры ответа метода average_prices

Первый пример
Запросим ставки без НДС (WithNds: false,) для закрытого типа кузова (CarType: close) по направлению Санкт-Петербург (CityId: 1) — Москва (CityId: 3611). Период — с 1 марта (DateFrom) по 2 марта (DateTo). Дискретность (Frequency) — day.
Запрос:

{
  "From": {
    "CityId": 1
  },
  "To": {
    "CityId": 3611
  },
  "CarType": "close",
  "DateFrom": "2022-03-01",
  "DateTo": "2022-03-02",
  "Frequency": "day",
  "WithNds": false,
  "RoundTrip": false
}
Ответ:

{
  "Data": [
    {
      "DateFrom": "2022-03-01",
      "DateTo": "2022-03-01",
      "Prices": {
        "UpperPrice": 30.8,
        "BottomPrice": 20.9,
        "AveragePrice": 25.9
      },
      "PricesInRub": {
        "UpperPrice": 22050.0,
        "BottomPrice": 14960.0,
        "AveragePrice": 18540.0
      },
      "LoadsCount": 433
    },
    {
      "DateFrom": "2022-03-02",
      "DateTo": "2022-03-02",
      "Prices": {
        "UpperPrice": 31.3,
        "BottomPrice": 21.3,
        "AveragePrice": 26.3
      },
      "PricesInRub": {
        "UpperPrice": 22410.0,
        "BottomPrice": 15250.0,
        "AveragePrice": 18830.0
      },
      "LoadsCount": 394
    }
  ],
  "Distance": 716,
  "WithNDS": false
}
Из примера видно, что в ответе вы получите ставки за каждый день — 1 и 2 марта. За 1 марта по запрошенному направлению средняя ставка (Prices.AveragePrice) — 25,9 ₽/км, а за 2 марта — 26,3 ₽/км. Средняя ставка за весь маршрут (PricesInRub.AveragePrice) — 18 540 ₽ и 18 830 ₽ соответственно. Ставки указаны без НДС (WithNDS: false).
Также из примера видно, что за 1 марта на сайте было 433 уникальных груза (LoadsCount). А за 2 марта — 394 груза.
Так же, как в примере выше, если вы запрашиваете период с 1 по 20 марта с дискретностью day, в ответе вы получите ставки за каждый из 20 дней.
Второй пример
Если вы запрашиваете период с 1 по 7 марта 2022 года с дискретностью week — со вторника по понедельник, то в ответе вы получите ставки за два периода:
  • с 1 по 6 марта (со вторника по воскресенье),
  • за 7 марта (понедельник на следующей неделе).

{
  "Data": [
    {
      "DateFrom": "2022-03-01",
      "DateTo": "2022-03-06",
      "Prices": {
        "UpperPrice": 33.3,
        "BottomPrice": 23.2,
        "AveragePrice": 28.3
      },
      "PricesInRub": {
        "UpperPrice": 23840.0,
        "BottomPrice": 16610.0,
        "AveragePrice": 20260.0
      },
      "LoadsCount": 630
    },
    {
      "DateFrom": "2022-03-07",
      "DateTo": "2022-03-07",
      "Prices": {
        "UpperPrice": 34.5,
        "BottomPrice": 24.3,
        "AveragePrice": 29.4
      },
      "PricesInRub": {
        "UpperPrice": 24700.0,
        "BottomPrice": 17400.0,
        "AveragePrice": 21050.0
      },
      "LoadsCount": 128
    }
  ],
  "Distance": 716,
  "WithNDS": true
}
Из примера видно, что за неделю с 1 по 6 марта по запрошенному направлению средняя ставка (Prices.AveragePrice) — 28,3 ₽/км, а за 7 марта — 29,4 ₽/км. Средняя ставка за весь маршрут (PricesInRub.AveragePrice) — 20 260 ₽ и 21 050 ₽ соответственно. Ставки указаны с НДС (WithNDS: true).
Также из примера видно, что за период с 1 по 6 марта на сайте было 630 уникальных грузов (LoadsCount), так как некоторые могли размещаться на сайте несколько дней. За 7 марта — 128 грузов.
Если вы запрашиваете период с 7 по 13 марта 2022 года с дискретностью week, в ответе вы получите ставки только за один период, так как это неделя с понедельника по воскресенье.
Третий пример
Если вы запрашиваете период с 1 марта по 2 апреля 2022 года с дискретностью month, в ответе вы получите два периода:
  • с 1 по 31 марта,
  • с 1 по 2 апреля.

{
  "Data": [
    {
      "DateFrom": "2022-03-01",
      "DateTo": "2022-03-31",
      "Prices": {
        "UpperPrice": 33.5,
        "BottomPrice": 22.8,
        "AveragePrice": 28.2
      },
      "PricesInRub": {
        "UpperPrice": 23990.0,
        "BottomPrice": 16320.0,
        "AveragePrice": 20190.0
      },
      "LoadsCount": 1166
    },
    {
      "DateFrom": "2022-04-01",
      "DateTo": "2022-04-02",
      "Prices": {
        "UpperPrice": 32.4,
        "BottomPrice": 21.0,
        "AveragePrice": 26.7
      },
      "PricesInRub": {
        "UpperPrice": 23200.0,
        "BottomPrice": 15040.0,
        "AveragePrice": 19120.0
      },
      "LoadsCount": 397
    }
  ],
  "Distance": 716,
  "WithNDS": true
}
Из примера видно, что за месяц с 1 по 31 марта по запрошенному направлению средняя ставка (Prices.AveragePrice) 28,2 ₽/км, а с 1 по 2 апреля — 26,7 ₽/км. Средняя ставка за весь маршрут (PricesInRub.AveragePrice) — 20 190 ₽ и 19 120 ₽ соответственно. Ставки указаны с НДС (WithNDS: true).
Количество уникальных грузов (LoadsCount) с 1 по 31 марта — 1 166. С 1 по 2 апреля — 397.

Почему данные иногда меняются

Значения за предыдущие недели могут незначительно меняться. Это связано с тем, что мы опираемся на данные участников Биржи, а они могут менять ставки на уже выставленные грузы или отменять уже запланированные сделки.
Например, пользователь вчера разместил груз, а за сутки его никто не взял. Грузоотправитель поменял цену, соответственно пересчитались и ставки.
Вам помогла эта статья?