для разработчиков На сайт Rentu

Посещаемость

Вошедшие и вышедшие по дням, неделям, месяцам или часам. Разрез задаётся по всему центру, зоне или отдельной точке.

GET /api/external/v2/sc/{sc_id}/attendance   BASIC +PRO разрезы

Параметры#

ИмяТипОбяз.По умолчаниюЗначения
sc_idstring, в путидаИдентификатор центра
start_datedateдаYYYY-MM-DD
end_datedateдаYYYY-MM-DD, не раньше start_date
granularitystringнетdayday, week, month, hour
scopestringнетscsc, zone, shop
zone_idintegerпри scope=zoneИдентификатор из зон подсчёта
shop_idstringпри scope=shopИдентификатор точки этого центра

Что закрыто тарифом#

ЗначениеТариф
granularity = day, week, monthBasic
granularity = hourPRO
scope = scBasic
scope = zone или shopPRO

Гейт стоит на значении параметра, а не на маршруте: иначе Basic остался бы вовсе без посещаемости.

Ограничения периода#

Тарифное окно такое же, как везде: Basic 31 день и данные до вчера, PRO 366 дней и сегодня. Сверх этого для granularity=hour действует собственное окно в 31 день независимо от тарифа: час за год это около девяти тысяч строк в одном ответе.

Ответ#

ПолеТипОписание
datestringМетка периода. YYYY-MM-DD для дня, недели и месяца; ISO 8601 со смещением зоны центра для часа
visitors_inintegerВошедших
visitors_outintegerВышедших. Для данных, введённых вручную, всегда 0
json
{
  "success": true,
  "data": [
    {
      "date": "2026-07-30T12:00:00+03:00",
      "visitors_in": 431,
      "visitors_out": 388
    },
    {
      "date": "2026-07-30T13:00:00+03:00",
      "visitors_in": 502,
      "visitors_out": 461
    }
  ],
  "meta": {
    "granularity": "hour",
    "scope": "sc",
    "time_zone": "Europe/Moscow"
  }
}

meta возвращает применённые granularity и scope, по ним удобно проверить, что параметры дошли так, как задумано.

Пустой ответ не означает ошибку#

{"success": true, "data": []} при 200 означает, что запрошенный объект не покрыт зоной подсчёта: у центра нет зоны типа shopping_center, либо точка не попадает ни в одну зону типа sell_location. Это отличается от traffic_unavailable намеренно: там сбой, здесь оборудования просто нет.

Про часы#

Час в ответе это местный час торгового центра. Полдень в данных остаётся полднем в центре и получает его смещение, а не пересчитывается из UTC.

Ошибки#

КодHTTPКогда
plan_required403granularity=hour или scope = zone/shop на Basic
traffic_not_configured404В центре не настроена система подсчёта
not_found404Зона или точка не принадлежит этому центру
too_long_date422Почасовой разрез шире 31 дня
period_too_long422Период больше тарифного окна
fresh_data_requires_pro422На Basic запрошен сегодняшний день
traffic_unavailable503Сбой подсистемы подсчёта. Повторить с задержкой