Формула ИИ для разработчиков Справочник API Каталог ошибок OpenAPI
Разделы

Аналитика

Методов в разделе: 4. Все методы

МетодПутьОписаниеОбластиСтатус
GET/analytics/timeseriesВременные рядыanalytics:readДоступно
GET/analytics/traffic-sourcesИсточники трафикаanalytics:readДоступно
GET/analytics/funnelВоронкаanalytics:readДоступно
GET/analytics/visibilityВидимостьanalytics:readДоступно
GET /analytics/timeseries Доступно

#Временные ряды

Ряды от одной до восьми метрик по дням или неделям с итогом и сравнением с предыдущим периодом. Каждый ряд несёт свою доступность и дату полноты данных; дни без данных заполнены нулями.

Области
analytics:read
Предел частоты
чтение
Идемпотентность
не требуется
Успешный ответ
200 Один ряд либо items в порядке запроса.

Параметры

ПолеТипОписание
metricstring
обязательное
Где: query. От 1 до 8 уникальных метрик через запятую: sessions, pageviews, visitors, bounce_rate, impressions, clicks, ctr, position, ai_referrals, bot_hits, leads, deals_won, revenue.
fromstring
обязательное
Где: query. Начало периода, включительно. Формат YYYY-MM-DD.
tostring
обязательное
Где: query. Конец периода, включительно; не позже последних полных суток (позднее значение обрезается и возвращается в ответе). Формат YYYY-MM-DD.
granularitystring
необязательное
Где: query. Шаг ряда; по умолчанию day.
enginestring
необязательное
Где: query. Поисковик для impressions, clicks, ctr, position; по умолчанию поисковик рынка ячейки.
clusterstring
необязательное
Где: query. Идентификатор кластера запросов; чужой или несуществующий даёт not_found.

Тело ответа

ПолеТипОписание
dataobject
обязательное

Примеры

Запрос
curl -X GET 'https://formula-cream.pro/api/public/v1/analytics/timeseries?metric=string&from=2026-09-01&to=2026-09-30' \
  -H 'Authorization: Bearer '"$API_KEY"
Ответ 200
{
  "data": {
    "metric": "sessions",
    "from": "string",
    "to": "string",
    "granularity": "day",
    "agg": "sum",
    "engine": null,
    "availability": "ok",
    "reason": null,
    "series": [
      null
    ],
    "comparison": {
      "current": null,
      "prev": null,
      "delta_pct": null,
      "data_through": null
    },
    "summary": null,
    "cluster_applied": false,
    "data_as_of": {}
  }
}
Пример ошибки
{
  "type": "https://formula-cream.pro/developers/errors#scope_missing",
  "title": "Scope is missing",
  "status": 403,
  "code": "scope_missing",
  "detail": "EXAMPLE",
  "request_id": "req_EXAMPLE"
}

Примеры иллюстративны: ключ в них условный (EXAMPLE), значения полей выдуманы.

Возможные ошибки

invalid_api_key wrong_cell integration_inactive tenant_inactive ip_not_allowed feature_not_in_plan rate_limited wallet_suspended service_unavailable internal_error scope_missing validation_failed not_found

GET /analytics/traffic-sources Доступно

#Источники трафика

Источники первого визита за период: сессии, посетители и лиды. Только агрегаты по дню и источнику; строк визитов, IP и хешей нет.

Области
analytics:read
Предел частоты
чтение
Идемпотентность
не требуется
Успешный ответ
200 Источники, больше сессий первыми.

Параметры

ПолеТипОписание
fromstring
обязательное
Где: query. Начало периода, включительно. Формат YYYY-MM-DD.
tostring
обязательное
Где: query. Конец периода, включительно; не позже последних полных суток (позднее значение обрезается и возвращается в ответе). Формат YYYY-MM-DD.
includestring
необязательное
Где: query. series добавляет ряд по дням в каждый источник.

Тело ответа

ПолеТипОписание
dataarray<TrafficSourceRow>
обязательное
data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.

Примеры

Запрос
curl -X GET 'https://formula-cream.pro/api/public/v1/analytics/traffic-sources?from=2026-09-01&to=2026-09-30' \
  -H 'Authorization: Bearer '"$API_KEY"
Ответ 200
{
  "data": [
    {
      "source": "google",
      "kind": "search",
      "sessions": 0,
      "visitors": null,
      "leads": 0,
      "series": [
        null
      ]
    }
  ],
  "data_as_of": {}
}
Пример ошибки
{
  "type": "https://formula-cream.pro/developers/errors#scope_missing",
  "title": "Scope is missing",
  "status": 403,
  "code": "scope_missing",
  "detail": "EXAMPLE",
  "request_id": "req_EXAMPLE"
}

Примеры иллюстративны: ключ в них условный (EXAMPLE), значения полей выдуманы.

Возможные ошибки

invalid_api_key wrong_cell integration_inactive tenant_inactive ip_not_allowed feature_not_in_plan rate_limited wallet_suspended service_unavailable internal_error scope_missing validation_failed

GET /analytics/funnel Доступно

#Воронка

Путь от показов в поиске до выручки: ступени со своей доступностью и датой, каналы и продукты. Расчёт общий с кабинетом. engine=both показывает движки раздельно и не складывает их.

Области
analytics:read
Предел частоты
чтение
Идемпотентность
не требуется
Успешный ответ
200 Воронка периода.

Параметры

ПолеТипОписание
fromstring
обязательное
Где: query. Начало периода, включительно. Формат YYYY-MM-DD.
tostring
обязательное
Где: query. Конец периода, включительно; не позже последних полных суток (позднее значение обрезается и возвращается в ответе). Формат YYYY-MM-DD.
enginestring
необязательное
Где: query. По умолчанию поисковик рынка; both доступен не на всех рынках.

Тело ответа

ПолеТипОписание
dataobject
обязательное
data.enginestring
обязательное

Значения: yandex google both
data.fromstring
обязательное
Дата YYYY-MM-DD.
data.tostring
обязательное
Дата YYYY-MM-DD.
data.stepsarray<FunnelStep>
обязательное
data.by_channelarray<object>
обязательное
data.search_by_enginearray<object>
необязательное
Только engine=both: движки раздельно.
data.by_productarray<object>
обязательное
data.crmobject
обязательное
data.crm.availabilitystring
обязательное

Значения: ok no_data
data.crm.reasonstring
необязательное
data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.

Примеры

Запрос
curl -X GET 'https://formula-cream.pro/api/public/v1/analytics/funnel?from=2026-09-01&to=2026-09-30' \
  -H 'Authorization: Bearer '"$API_KEY"
Ответ 200
{
  "data": {
    "engine": "yandex",
    "from": "string",
    "to": "string",
    "steps": [
      {
        "key": null,
        "availability": null,
        "sources": null,
        "unit": null,
        "current": null,
        "prev": null,
        "delta_pct": null,
        "data_through": null
      }
    ],
    "by_channel": [
      {
        "channel": "string",
        "availability": "string",
        "sources": [
          null
        ],
        "clicks": null,
        "cost": null,
        "leads": null
      }
    ],
    "search_by_engine": [
      {}
    ],
    "by_product": [
      {
        "course_slug": "string",
        "name": null,
        "sales_mode": null,
        "leads": 0,
        "leads_prev": 0,
        "deals_won": 0,
        "deals_won_prev": 0
      }
    ],
    "crm": {
      "availability": "ok",
      "reason": "string"
    }
  },
  "data_as_of": {}
}
Пример ошибки
{
  "type": "https://formula-cream.pro/developers/errors#scope_missing",
  "title": "Scope is missing",
  "status": 403,
  "code": "scope_missing",
  "detail": "EXAMPLE",
  "request_id": "req_EXAMPLE"
}

Примеры иллюстративны: ключ в них условный (EXAMPLE), значения полей выдуманы.

Возможные ошибки

invalid_api_key wrong_cell integration_inactive tenant_inactive ip_not_allowed feature_not_in_plan rate_limited wallet_suspended service_unavailable internal_error scope_missing validation_failed

GET /analytics/visibility Доступно

#Видимость

Доля видимости, распределение позиций, доля голоса (всегда без имён конкурентов), цитирование в ИИ и регионы. Каждый раздел самостоятелен: своя доступность, источник и дата.

Области
analytics:read
Предел частоты
чтение
Идемпотентность
не требуется
Успешный ответ
200 Пять разделов видимости.

Параметры

ПолеТипОписание
fromstring
обязательное
Где: query. Начало периода, включительно. Формат YYYY-MM-DD.
tostring
обязательное
Где: query. Конец периода, включительно; не позже последних полных суток (позднее значение обрезается и возвращается в ответе). Формат YYYY-MM-DD.
compareboolean
необязательное
Где: query. Добавить сравнение с предыдущим периодом; по умолчанию false.
enginestring
необязательное
Где: query. По умолчанию поисковик рынка.
clusterstring
необязательное
Где: query. Идентификатор кластера запросов; чужой или несуществующий даёт not_found.

Тело ответа

ПолеТипОписание
dataobject
обязательное
data.fromstring
обязательное
Дата YYYY-MM-DD.
data.tostring
обязательное
Дата YYYY-MM-DD.
data.enginestring
обязательное

Значения: yandex google both
data.shareobject
обязательное
data.share.availabilitystring
обязательное
data.share.reasonstring
необязательное
data.share.sourcestring
обязательное
data.share.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.share.dataobject
обязательное
data.distributionobject
обязательное
data.distribution.availabilitystring
обязательное
data.distribution.reasonstring
необязательное
data.distribution.sourcestring
обязательное
data.distribution.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.distribution.dataobject
обязательное
data.sovobject
обязательное
data.sov.availabilitystring
обязательное
data.sov.reasonstring
необязательное
data.sov.sourcestring
обязательное
data.sov.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.sov.dataobject
обязательное
data.aeoobject
обязательное
data.aeo.availabilitystring
обязательное
data.aeo.reasonstring
необязательное
data.aeo.sourcestring
обязательное
data.aeo.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.aeo.dataobject
обязательное
data.regionsobject
обязательное
data.regions.availabilitystring
обязательное
data.regions.reasonstring
необязательное
data.regions.sourcestring
обязательное
data.regions.data_as_ofobject
обязательное
Источник → дата, по которую его данные полны. Источник без данных в объект не попадает.
data.regions.dataobject
обязательное

Примеры

Запрос
curl -X GET 'https://formula-cream.pro/api/public/v1/analytics/visibility?from=2026-09-01&to=2026-09-30' \
  -H 'Authorization: Bearer '"$API_KEY"
Ответ 200
{
  "data": {
    "from": "string",
    "to": "string",
    "engine": "yandex",
    "share": {
      "availability": "string",
      "reason": "string",
      "source": "string",
      "data_as_of": {},
      "data": {}
    },
    "distribution": {
      "availability": "string",
      "reason": "string",
      "source": "string",
      "data_as_of": {},
      "data": {}
    },
    "sov": {
      "availability": "string",
      "reason": "string",
      "source": "string",
      "data_as_of": {},
      "data": {}
    },
    "aeo": {
      "availability": "string",
      "reason": "string",
      "source": "string",
      "data_as_of": {},
      "data": {}
    },
    "regions": {
      "availability": "string",
      "reason": "string",
      "source": "string",
      "data_as_of": {},
      "data": {}
    }
  }
}
Пример ошибки
{
  "type": "https://formula-cream.pro/developers/errors#scope_missing",
  "title": "Scope is missing",
  "status": 403,
  "code": "scope_missing",
  "detail": "EXAMPLE",
  "request_id": "req_EXAMPLE"
}

Примеры иллюстративны: ключ в них условный (EXAMPLE), значения полей выдуманы.

Возможные ошибки

invalid_api_key wrong_cell integration_inactive tenant_inactive ip_not_allowed feature_not_in_plan rate_limited wallet_suspended service_unavailable internal_error scope_missing validation_failed not_found