Разработчикам
API каталога и MCP-сервер
Каталог изданий из ваших скриптов, таблиц и ИИ-ассистентов
Обновлено:
Что доступно
Публичное API отдаёт то же, что видно в каталоге на сайте: карточки изданий с ценой, если редакция её подтвердила, сроком публикации, трафиком, DR/DA, активностью и предложениями по форматам. Только чтение: заказ оформляется на сайте по ссылке из карточки.
- REST —
https://prhits.ru/api/v1: поиск с фильтрами, карточка издания, справочники рубрик, регионов и стран. Описание в формате OpenAPI 3.1: /api/openapi.json. - MCP-сервер —
https://prhits.ru/api/mcp: тот же каталог как инструменты для Claude, Cursor и других ассистентов по протоколу Model Context Protocol.
Закупочные цены, контакты редакций и служебные поля в API не отдаются никогда. Цена в ответе — размещение без комиссии сервиса, и она есть только при priceVisible = true.
Как получить ключ
- Войдите в кабинет или зарегистрируйтесь.
- Откройте Настройки → Ключи API и нажмите «Выпустить ключ».
- Скопируйте ключ вида
prh_…: целиком он показывается один раз, в базе хранится только отпечаток.
На один кабинет — до 5 действующих ключей. Ключ передаётся в заголовке Authorization: Bearer <ключ>. Отозванный ключ перестаёт работать сразу.
Без ключа работает только поиск GET /api/v1/catalog в урезанном виде: до 10 изданий на страницу, без цен и предложений, 60 запросов в час с одного адреса.
REST: поиск по каталогу
curl "https://prhits.ru/api/v1/catalog?country=RU&category=business&maxPrice=50000&limit=5" \
-H "Authorization: Bearer prh_ВАШ_КЛЮЧ"Параметры запроса — те же фильтры, что в каталоге на сайте:
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
q | string | Поиск по названию и домену издания. | коммерсант |
country | string | Страна издания, ISO-код из GET /api/v1/countries. | RU |
category | string | Рубрика, slug из GET /api/v1/rubrics. | business |
region | string | Субъект РФ, код из GET /api/v1/regions (только вместе с country=RU или без страны). | 77 |
maxPrice | integer | Бюджет под ключ, ₽: только издания с подтверждённой ценой не выше бюджета. | 50000 |
orderable | boolean | Только издания, которые можно заказать сегодня: цена и срок подтверждены редакцией. | true |
page | integer | Страница выдачи, с 1. | 1 |
limit | integer | Размер страницы: до 50 с ключом, до 10 без ключа. | 20 |
Ответ:
{
"items": [
{
"id": "cm2abc…",
"name": "Деловой портал региона",
"url": "https://example.ru",
"country": "RU",
"category": "Бизнес; Финансы",
"currency": "RUB",
"priceVisible": true,
"price": 38000,
"priceApproved": true,
"dr": 41, "da": 38, "monthlyTraffic": 420000,
"dofollow": true, "indexable": true,
"turnaroundDays": 3, "turnaroundExact": true,
"acceptsOrders": true, "verified": true,
"live": { "items24h": 12, "items7d": 80, "visitorsYesterday": 15300, "truncated": false, "latestAt": "…", "checkedAt": "…" },
"offers": [{ "format": "article", "price": 38000, "turnaroundDays": 3, "volumeChars": 4000, "linksMax": 2, "dofollow": true, "photosMax": 3 }]
}
],
"total": 128, "page": 1, "limit": 5, "pages": 26,
"authenticated": true
}Остальные маршруты (нужен ключ):
GET /api/v1/catalog/{id}— карточка издания; страница на сайте:/catalog/{id}.GET /api/v1/rubrics— рубрики:slug,label,count.GET /api/v1/regions— субъекты РФ с изданиями:code,name,count.GET /api/v1/countries— страны изданий:code,name,count.
Поля карточки издания
| Поле | Тип | Описание |
|---|---|---|
id | string | Идентификатор издания; страница на сайте — /catalog/{id}. |
name | string | Название издания. |
url | string | Сайт издания. |
country | string | Страна, ISO-код. |
category | string | null | Сырые тематики источника через «;». Рубрики каталога — по GET /api/v1/rubrics. |
currency | string | Валюта цены, обычно RUB. |
priceVisible | boolean | Цена публична: подтверждена редакцией и ниже порога индивидуального запроса. |
price | number | Цена размещения без комиссии сервиса. Поле есть только при priceVisible = true. |
priceApproved | boolean | Цена утверждена. |
dr | integer | null | Domain Rating. |
da | integer | null | Domain Authority. |
monthlyTraffic | integer | null | Посещаемость в месяц. |
dofollow | boolean | Ссылки dofollow. |
indexable | boolean | Публикация открыта для индексации. |
turnaroundDays | integer | Срок публикации, дней. |
turnaroundExact | boolean | Срок назвала редакция (точный, не вилка). |
description | string | null | Описание издания. |
logoUrl | string | null | Логотип. |
live | object | null | Живая активность: публикации за 24 часа и 7 дней, посетители вчера; null, если данных нет. |
acceptsOrders | boolean | Редакция принимает онлайн-заказы; false — только запрос условий. |
verified | boolean | Редакция подтвердила владение сайтом. |
offers | array | Предложения по форматам (цена, срок, объём); только при priceVisible. |
Лимиты и ошибки
- 600 запросов в час на ключ (REST и MCP считаются вместе), 60 в час без ключа с одного адреса.
- Размер страницы — до 50 изданий с ключом, до 10 без ключа.
- Каждый ответ содержит заголовки
X-RateLimit-Limit,X-RateLimit-RemainingиX-RateLimit-Reset(секунды до обновления окна).
Ошибки приходят в JSON с кодом и HTTP-статусом:
{ "error": { "code": "rate_limited", "message": "Лимит 600 запросов в час исчерпан, повторите через 1840 с" } }bad_request(400) — неверный параметр; вdetails.param— какой.unauthorized(401) — ключа нет, он неизвестен или отозван.not_found(404) — издания нет в публичном каталоге.rate_limited(429) — лимит исчерпан, повторите послеRetry-Afterсекунд.internal(500) — ошибка на нашей стороне, повторите позже.
MCP-сервер для ИИ-ассистентов
Сервер реализует Model Context Protocol (версия 2025-06-18) по транспорту Streamable HTTP: JSON-RPC 2.0 методом POST на https://prhits.ru/api/mcp, ответы обычные, без потоков. Авторизация — тем же ключом в заголовке Authorization. Инструменты:
search_catalog— Поиск изданий (СМИ) в каталоге PRHITS для платных публикаций: по названию или домену, стране, рубрике, региону России, бюджету. Возвращает страницу карточек с ценой (если редакция её подтвердила), сроком, трафиком, DR/DA.get_platform— Карточка одного издания по id из search_catalog: цена (если публична), предложения по форматам, срок, трафик, активность, подтверждение редакции. Ссылка на сайт: https://prhits.ru/catalog/{id}.list_rubrics— Список рубрик каталога (slug, название, число изданий) для параметра category.list_regions— Субъекты РФ, по которым есть издания (код, название, число изданий) для параметра region.
Пример подключения в Claude Desktop (файл claude_desktop_config.json) или в Claude Code (.mcp.json проекта):
{
"mcpServers": {
"prhits": {
"type": "http",
"url": "https://prhits.ru/api/mcp",
"headers": { "Authorization": "Bearer prh_ВАШ_КЛЮЧ" }
}
}
}В Claude Code то же одной командой:
claude mcp add --transport http prhits https://prhits.ru/api/mcp --header "Authorization: Bearer prh_ВАШ_КЛЮЧ"Проверка вручную через curl:
curl https://prhits.ru/api/mcp -H "Authorization: Bearer prh_ВАШ_КЛЮЧ" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"search_catalog","arguments":{"country":"RU","category":"tech","limit":3}}}'Результат инструмента приходит и текстом (JSON в content[0].text), и структурой в structuredContent. Ошибка в параметрах возвращается как результат с isError = true, чтобы ассистент мог поправить вызов.
Условия использования
- Данные каталога — для подбора изданий и медиапланов ваших клиентов. Перепродажа выгрузки и публикация базы целиком не допускаются.
- Цена в API может отличаться от итога в заказе: комиссия сервиса и план аккаунта применяются при оформлении на сайте.
- Ключ привязан к кабинету; действия по ключу считаются действиями владельца кабинета. Храните его как пароль и отзывайте при утечке.
- Вопросы по интеграции — на странице контактов.
