Списки отслеживания
Получайте списки отслеживания проекта, их элементы и показатели
Списки отслеживания — это то, что вы собираете в разделе Отслеживание в приложении: интересы, категории, издатели, тренды и упоминания. Методы возвращают сами списки, их элементы и те же показатели, которые вы видите на страницах отслеживания. Методы только читают данные: создавать списки и добавлять элементы можно в приложении.
#Виды списков
Параметр kind повторяет пункты меню Отслеживание. Названия в приложении и значения в API соответствуют друг другу так:
entity— Интересы. В приложении раздел называется «Интересы», в API вид называетсяentity. Элемент — идентификатор интереса или его название.category— Категории. Элемент — путь категории, например/Finance/Investing/Stocks & Bonds. Регистр важен.publisher— Издатели. Элемент — домен в нижнем регистре безwww..trend— Тренды. Элемент — идентификатор тренда.mention— Упоминания. Элементы — ключевые слова с типом совпадения, а не объекты каталога.
#Списки проекта
/v1/tracking/listsAPI keyВозвращает списки проекта, отсортированные по updated_at от новых к старым, и счётчики usage — те же числа, что показывают бейджи меню Отслеживание.
kindstringнеобязательный- Оставить списки одного вида:
entity,category,publisher,trendилиmention. Без параметра возвращаются все виды. project_idstring (UUID)необязательный- Только для внутренних ключей. Ключ проекта этот параметр игнорирует.
limitintegerнеобязательныйпо умолчанию50- Размер страницы от
1до200. offsetintegerнеобязательныйпо умолчанию0- Число пропущенных списков.
curl -s "https://dstrends.com/api/v1/tracking/lists?kind=entity&limit=2" \
-H "X-API-Key: $DTR_API_KEY"{
"lists": [
{
"id": "6f1d2c33-8a41-4b0e-9f77-1c2d3e4f5a60",
"kind": "entity",
"name": "Финансы",
"color_index": 2,
"item_count": 18,
"created_at": "2026-06-02T09:11:00Z",
"updated_at": "2026-09-10T18:40:00Z"
},
{
"id": "b7e40a91-2c58-4d66-8f10-77aa31bc0d42",
"kind": "mention",
"name": "Бренд",
"color_index": 0,
"item_count": 516,
"countries": ["RU", "US"],
"langs": ["RU", "EN"],
"search_scope": "title",
"active": true,
"matches_count": 12840,
"new_publications_24h": 17,
"last_scanned_at": "2026-09-11T07:00:00Z",
"scan_status": "succeeded",
"created_at": "2026-05-14T12:03:00Z",
"updated_at": "2026-09-11T07:00:00Z"
}
],
"usage": {
"entity": { "used": 18, "limit": 1800 },
"category": { "used": 30, "limit": 1010 },
"publisher": { "used": 11, "limit": 1010 },
"trend": { "used": 3, "limit": null },
"mention": { "used": 516, "limit": 1500 }
},
"total": 7,
"limit": 2,
"offset": 0
}usage.<kind>.used считает уникальные элементы вида по всем спискам проекта, а для mention — число ключевых слов с учётом типа совпадения в активных списках. limit берётся из тарифа проекта; у трендов лимита нет, поэтому там null. Поля countries, langs, search_scope, active, matches_count, new_publications_24h, last_scanned_at и scan_status приходят только у списков вида mention.
#Список и его элементы
/v1/tracking/lists/{list_id}API keylist_idstring (UUID)обязательный- Идентификатор списка.
Элементов в списке немного, поэтому они возвращаются целиком, без постраничной выдачи, в порядке добавления от новых к старым.
curl -s "https://dstrends.com/api/v1/tracking/lists/6f1d2c33-8a41-4b0e-9f77-1c2d3e4f5a60" \
-H "X-API-Key: $DTR_API_KEY"{
"id": "6f1d2c33-8a41-4b0e-9f77-1c2d3e4f5a60",
"kind": "entity",
"name": "Финансы",
"color_index": 2,
"item_count": 18,
"created_at": "2026-06-02T09:11:00Z",
"updated_at": "2026-09-10T18:40:00Z",
"items": [
{
"key": "c6e08b32-9a71-4a1d-9c55-0b7de4f21a08",
"name": "Центральный банк",
"type": "organization",
"added_at": "2026-09-10T18:40:00Z"
},
{
"key": "Chuvashia",
"name": "Chuvashia",
"type": null,
"added_at": "2026-08-21T10:02:00Z"
}
]
}type заполняется только у интересов и может быть null. Список другого проекта или несуществующий идентификатор вернут 404.
#Список упоминаний
Для вида mention тот же метод возвращает ключевые слова, тип совпадения и параметры сканирования:
{
"id": "b7e40a91-2c58-4d66-8f10-77aa31bc0d42",
"kind": "mention",
"name": "Бренд",
"color_index": 0,
"countries": ["RU", "US"],
"langs": ["RU", "EN"],
"search_scope": "title",
"active": true,
"mentions": ["дискавер трендс", "discover trends"],
"match_types": ["exact", "phrase"],
"items": [
{
"key": "8a11c0de-5f22-4f8e-9d31-6b2f0a7c1e44",
"name": "discover trends",
"type": "exact",
"added_at": "2026-05-14T12:03:00Z",
"position": 0,
"matches_count": 3120
}
],
"item_count": 516,
"matches_count": 12840,
"new_publications_24h": 17,
"extraction_started_at": "2026-05-14T12:05:00Z",
"last_scanned_at": "2026-09-11T07:00:00Z",
"next_scan_at": "2026-09-11T08:00:00Z",
"scan_status": "succeeded",
"scan_error": null,
"created_at": "2026-05-14T12:03:00Z",
"updated_at": "2026-09-11T07:00:00Z"
}У элементов списка упоминаний key — идентификатор ключевого слова, name — его текст, type — тип совпадения (broad, phrase или exact). Одно и то же слово с двумя типами совпадения — два элемента.
#Данные списка
/v1/tracking/lists/{list_id}/metricsAPI keyПоказатели по элементам списка за выбранный период: те же строки, что в таблице списка в приложении. Один вызов возвращает одну страницу элементов.
list_idstring (UUID)обязательный- Идентификатор списка.
countrystringнеобязательныйпо умолчаниюall- Код страны, например
ruилиus. Значениеallберёт все рынки ключа. langstringнеобязательныйпо умолчаниюall- Код языка. Значение
allне ограничивает язык. periodstringнеобязательныйпо умолчанию24h24h,7d,30dилиcustom. Дляcustomнужныdate_fromиdate_to.date_fromstring (ISO 8601)необязательный- Начало периода в UTC, например
2026-09-01T00:00:00Z. date_tostring (ISO 8601)необязательный- Конец периода в UTC.
grainstringнеобязательныйпо умолчаниюday- Шаг спарклайна:
hourилиday. limitintegerнеобязательныйпо умолчанию50- Размер страницы элементов от
1до200. offsetintegerнеобязательныйпо умолчанию0- Число пропущенных элементов.
curl -s "https://dstrends.com/api/v1/tracking/lists/6f1d2c33-8a41-4b0e-9f77-1c2d3e4f5a60/metrics?country=ru&period=7d&grain=day&limit=2" \
-H "X-API-Key: $DTR_API_KEY"{
"list_id": "6f1d2c33-8a41-4b0e-9f77-1c2d3e4f5a60",
"kind": "entity",
"scope": {
"country": "ru",
"markets": ["ru"],
"lang": "all",
"from": "2026-09-04T00:00:00Z",
"to": "2026-09-11T00:00:00Z",
"grain": "day",
"prev_from": "2026-08-28T00:00:00Z",
"prev_to": "2026-09-04T00:00:00Z"
},
"items": [
{
"key": "c6e08b32-9a71-4a1d-9c55-0b7de4f21a08",
"name": "Центральный банк",
"resolved_id": "c6e08b32-9a71-4a1d-9c55-0b7de4f21a08",
"resolved_type": "organization",
"impressions": 1284500,
"publications_count": 41,
"publishers_count": 12,
"trends_count": 3,
"avg_position": 3.2,
"delta_pct": 18.4,
"rank_delta": 2,
"lived_hours": 96,
"avg_lifespan_hours": 31.5,
"impressions_spark": [0, 12, 44, 80, 51, 33, 27],
"publications_spark": [0, 1, 4, 9, 6, 3, 2],
"related": ["Ключевая ставка", "Инфляция"],
"last_seen": "2026-09-10T21:15:00Z"
}
],
"summary": {
"scope": "page",
"impressions": 1902300,
"publications_count": 63,
"delta_pct": 11.2,
"impressions_spark": [0, 18, 61, 112, 77, 48, 39]
},
"total": 18,
"limit": 2,
"offset": 0
}Спарклайны сжаты до 24 точек — так же, как в приложении. Элемент без данных за период возвращается со значениями 0, а не пропускается: строки всегда совпадают со страницей элементов списка.
summary считается по текущей странице, о чём говорит поле summary.scope со значением page. Сводка по всему списку — в методе /rollup.
#Отличия по видам
categoryиpublisherвозвращают тот же набор полей; у издателей вместоrelatedприходитtop_entities.trendдобавляет в каждую строку объектforecastс полямиpct_next24h,pct_next7d,pct_next30d,predicted_total_reach,predicted_end_atиconfidence. Полеdelta_pctдля трендов равноnull.mentionвозвращает строки по ключевым словам (name,publications_count,impressions), а вsummary.timeseries— массив[{ts, urls, impressions}]с шагомgrain.
#Сводка по списку
/v1/tracking/lists/{list_id}/rollupAPI keyАгрегаты по всем элементам списка сразу — то, что показывают боковые панели страницы списка: издания, тренды, связанные объекты, группы и типы.
list_idstring (UUID)обязательный- Идентификатор списка.
countrystringнеобязательныйпо умолчаниюall- Код страны или
all. langstringнеобязательныйпо умолчаниюall- Код языка или
all. periodstringнеобязательныйпо умолчанию24h24h,7d,30dилиcustom.date_fromstring (ISO 8601)необязательный- Начало периода для
period=custom. date_tostring (ISO 8601)необязательный- Конец периода для
period=custom.
curl -s "https://dstrends.com/api/v1/tracking/lists/6f1d2c33-8a41-4b0e-9f77-1c2d3e4f5a60/rollup?country=all&period=7d" \
-H "X-API-Key: $DTR_API_KEY"{
"list_id": "6f1d2c33-8a41-4b0e-9f77-1c2d3e4f5a60",
"kind": "entity",
"scope": {
"country": "all",
"markets": ["ru", "us"],
"lang": "all",
"from": "2026-09-04T00:00:00Z",
"to": "2026-09-11T00:00:00Z"
},
"publishers": [
{ "name": "rbc.ru", "pubs": 24, "imps": 640200, "delta_pct": 9.1 }
],
"trends": [
{
"id": "20405197-c10b-4a7e-9f03-5d8e1c2b3a44",
"name": "Заседание ЦБ по ставке",
"pubs": 12,
"imps": 310400,
"delta_pct": 22.7
}
],
"related": [
{ "name": "Инфляция", "entity_id": "0f2a...", "pubs": 8, "imps": 120300 }
],
"groups": [],
"types": [{ "name": "organization", "pubs": 31 }]
}У вида mention метод возвращает срезы publishers, entities и categories, у вида publisher блок publishers пустой, а у вида trend вместо срезов приходит top_articles — публикации трендов списка с полем cabinet_url.
#Совпадения упоминаний
/v1/tracking/lists/{list_id}/matchesAPI keyПубликации, в которых нашлись ключевые слова списка. Метод работает только для вида mention; для остальных видов он вернёт 400 с кодом kind_mismatch.
list_idstring (UUID)обязательный- Идентификатор списка упоминаний.
countrystringнеобязательныйпо умолчаниюall- Код страны. Значение
allберёт страны списка, разрешённые ключу. langstringнеобязательныйпо умолчаниюall- Код языка. Язык вне списка вернёт пустой результат.
date_fromstring (ISO 8601)необязательный- Начало периода по дате первого показа публикации.
date_tostring (ISO 8601)необязательный- Конец периода.
mentionstringнеобязательный- Ключевое слово. Параметр можно повторять, чтобы оставить несколько слов.
match_typesstringнеобязательный- Типы совпадения через запятую:
broad,phrase,exact. scopestringнеобязательныйпо умолчаниюall- Где искать совпадение:
title,body,bothилиall. qstringнеобязательный- Подстрока в заголовке публикации.
limitintegerнеобязательныйпо умолчанию200- Число публикаций от
1до1000. Ограничение считается по публикациям, а не по совпадениям.
curl -s "https://dstrends.com/api/v1/tracking/lists/b7e40a91-2c58-4d66-8f10-77aa31bc0d42/matches?country=ru&scope=title&limit=2" \
-H "X-API-Key: $DTR_API_KEY"{
"list_id": "b7e40a91-2c58-4d66-8f10-77aa31bc0d42",
"publications": [
{
"id": "e4db50a5-77a2-4fa0-bdd7-4f2386e671f3",
"url": "https://www.example.ru/news/cbr-rate",
"title": "ЦБ сохранил ставку",
"publisher": "Пример",
"domain": "example.ru",
"country": "RU",
"lang": "RU",
"first_seen_at": "2026-09-10T09:12:00Z",
"article_first_seen_at": "2026-09-10T08:40:00Z",
"snippet": "…аналитики Discover Trends отметили…",
"cabinet_url": "https://app.d2tr.com/article/e4db50a5-77a2-4fa0-bdd7-4f2386e671f3"
}
],
"hits": {
"e4db50a5-77a2-4fa0-bdd7-4f2386e671f3": {
"count": 2,
"mentions": [
{
"term_id": "8a11c0de-5f22-4f8e-9d31-6b2f0a7c1e44",
"raw_text": "discover trends",
"match_type": "exact",
"field": "title",
"matched_text": "Discover Trends"
}
]
}
},
"summary": {
"matches": 2,
"publications": 1,
"mentions": { "discover trends": 2 }
}
}#Глубина истории
Период ограничен глубиной истории тарифа проекта — той же, что действует в приложении. На тарифе Start доступны последние 30 дней, на старших тарифах ограничения нет. Слишком ранний date_from не вызывает ошибку: он молча сдвигается, а фактическое окно возвращается в scope.from и scope.to. Сверяйтесь с этими полями, а не с тем, что вы отправили.
#Ссылки в приложение
Публикации в /matches и в top_articles содержат готовую ссылку cabinet_url вида https://app.d2tr.com/article/<id>. Значение собирается из того же идентификатора публикации, который возвращают методы /v1/articles и лента /v2/feed, поэтому его можно построить и самостоятельно.
#Рынки
Явная страна в country проверяется по рынкам ключа: недоступный рынок вернёт 403. Значение all берёт все рынки ключа, и они перечислены в scope.markets — так цифры совпадают с тем, что вы видите в приложении. Ключ, у которого рынков нет, вернёт 403 с кодом market_not_entitled. Подробнее — в разделе «Доступ к рынкам».
#Ошибки
Общие правила описаны в разделе «Ошибки и лимиты». У списков отслеживания есть свои коды в поле detail:
400kind_mismatch: метод не подходит виду списка, например/matchesдля списка интересов.403project_key_required: ключ не привязан к проекту.403market_not_entitled: у ключа нет доступных рынков.404: список не найден или принадлежит другому проекту.422list_too_large: в сводке больше500элементов.429: превышён лимит запросов тарифа.503computing: расчёт ещё идёт, повторите запрос черезRetry-Afterсекунд.
{
"detail": {
"code": "project_key_required",
"message": "Use a project API key (dt_live_…) from Project → API Access"
}
}