Аналитика
Методов в разделе: 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 в порядке запроса.
Параметры
| Поле | Тип | Описание |
|---|
metric | string обязательное | Где: query. От 1 до 8 уникальных метрик через запятую: sessions, pageviews, visitors, bounce_rate, impressions, clicks, ctr, position, ai_referrals, bot_hits, leads, deals_won, revenue. |
from | string обязательное | Где: query. Начало периода, включительно. Формат YYYY-MM-DD. |
to | string обязательное | Где: query. Конец периода, включительно; не позже последних полных суток (позднее значение обрезается и возвращается в ответе). Формат YYYY-MM-DD. |
granularity | string необязательное | Где: query. Шаг ряда; по умолчанию day. |
engine | string необязательное | Где: query. Поисковик для impressions, clicks, ctr, position; по умолчанию поисковик рынка ячейки. |
cluster | string необязательное | Где: query. Идентификатор кластера запросов; чужой или несуществующий даёт not_found. |
Тело ответа
| Поле | Тип | Описание |
|---|
data | object обязательное | |
Примеры
Запрос
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 Источники, больше сессий первыми.
Параметры
| Поле | Тип | Описание |
|---|
from | string обязательное | Где: query. Начало периода, включительно. Формат YYYY-MM-DD. |
to | string обязательное | Где: query. Конец периода, включительно; не позже последних полных суток (позднее значение обрезается и возвращается в ответе). Формат YYYY-MM-DD. |
include | string необязательное | Где: query. series добавляет ряд по дням в каждый источник. |
Тело ответа
| Поле | Тип | Описание |
|---|
data | array<TrafficSourceRow> обязательное | |
data_as_of | object обязательное | Источник → дата, по которую его данные полны. Источник без данных в объект не попадает. |
Примеры
Запрос
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 Воронка периода.
Параметры
| Поле | Тип | Описание |
|---|
from | string обязательное | Где: query. Начало периода, включительно. Формат YYYY-MM-DD. |
to | string обязательное | Где: query. Конец периода, включительно; не позже последних полных суток (позднее значение обрезается и возвращается в ответе). Формат YYYY-MM-DD. |
engine | string необязательное | Где: query. По умолчанию поисковик рынка; both доступен не на всех рынках. |
Тело ответа
| Поле | Тип | Описание |
|---|
data | object обязательное | |
data.engine | string обязательное | Значения: yandex google both |
data.from | string обязательное | Дата YYYY-MM-DD. |
data.to | string обязательное | Дата YYYY-MM-DD. |
data.steps | array<FunnelStep> обязательное | |
data.by_channel | array<object> обязательное | |
data.search_by_engine | array<object> необязательное | Только engine=both: движки раздельно. |
data.by_product | array<object> обязательное | |
data.crm | object обязательное | |
data.crm.availability | string обязательное | Значения: ok no_data |
data.crm.reason | string необязательное | |
data_as_of | object обязательное | Источник → дата, по которую его данные полны. Источник без данных в объект не попадает. |
Примеры
Запрос
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 Пять разделов видимости.
Параметры
| Поле | Тип | Описание |
|---|
from | string обязательное | Где: query. Начало периода, включительно. Формат YYYY-MM-DD. |
to | string обязательное | Где: query. Конец периода, включительно; не позже последних полных суток (позднее значение обрезается и возвращается в ответе). Формат YYYY-MM-DD. |
compare | boolean необязательное | Где: query. Добавить сравнение с предыдущим периодом; по умолчанию false. |
engine | string необязательное | Где: query. По умолчанию поисковик рынка. |
cluster | string необязательное | Где: query. Идентификатор кластера запросов; чужой или несуществующий даёт not_found. |
Тело ответа
| Поле | Тип | Описание |
|---|
data | object обязательное | |
data.from | string обязательное | Дата YYYY-MM-DD. |
data.to | string обязательное | Дата YYYY-MM-DD. |
data.engine | string обязательное | Значения: yandex google both |
data.share | object обязательное | |
data.share.availability | string обязательное | |
data.share.reason | string необязательное | |
data.share.source | string обязательное | |
data.share.data_as_of | object обязательное | Источник → дата, по которую его данные полны. Источник без данных в объект не попадает. |
data.share.data | object обязательное | |
data.distribution | object обязательное | |
data.distribution.availability | string обязательное | |
data.distribution.reason | string необязательное | |
data.distribution.source | string обязательное | |
data.distribution.data_as_of | object обязательное | Источник → дата, по которую его данные полны. Источник без данных в объект не попадает. |
data.distribution.data | object обязательное | |
data.sov | object обязательное | |
data.sov.availability | string обязательное | |
data.sov.reason | string необязательное | |
data.sov.source | string обязательное | |
data.sov.data_as_of | object обязательное | Источник → дата, по которую его данные полны. Источник без данных в объект не попадает. |
data.sov.data | object обязательное | |
data.aeo | object обязательное | |
data.aeo.availability | string обязательное | |
data.aeo.reason | string необязательное | |
data.aeo.source | string обязательное | |
data.aeo.data_as_of | object обязательное | Источник → дата, по которую его данные полны. Источник без данных в объект не попадает. |
data.aeo.data | object обязательное | |
data.regions | object обязательное | |
data.regions.availability | string обязательное | |
data.regions.reason | string необязательное | |
data.regions.source | string обязательное | |
data.regions.data_as_of | object обязательное | Источник → дата, по которую его данные полны. Источник без данных в объект не попадает. |
data.regions.data | object обязательное | |
Примеры
Запрос
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