К основному содержимому
HearthPulse

Manacost Public API

Для приложений и трекеров

Версионированный доступ к данным Manacost для Hearthstone-инструментов. Доступны каталог карт с токенами, статистика по форматам, рангам и периодам, история показателей, защищённые изображения, сервисные API-ключи и вход пользователя без передачи пароля приложению.

Версияv1стабильный namespace

Доступно сейчас

Карты, токены, мета, Арена, Поля сражений, архетипы, сборки колод, история, анализ, изображения, ключи и вход приложения

Планируется

История конкретных сборок и отдельные матчи

01

Сервисный API-ключ

Передавайте выданный администратором ключ в заголовке X-API-Key. Этот вариант подходит серверным интеграциям и не представляет пользователя. Ключ показывается один раз и должен храниться как секрет.

curl "https://hearthpulse.net/api/v1/card-statistics?format=standard&rank=legend&period=1d&limit=120" \
  -H "X-API-Key: mca_live_••••••••"
02

Вход пользователя в трекере

Публичный desktop-клиент начинает Device Authorization Grant, открывает полученную ссылку в системном браузере и опрашивает token endpoint с указанным интервалом. Пароль остаётся только на сайте Manacost.

curl -X POST https://hearthpulse.net/api/v1/oauth/device/code \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data "client_id=manacost-tracker&scope=profile.read%20subscription.read%20catalog.read%20images.read%20statistics.read"

Access token действует 15 минут, refresh token — до 30 дней и меняется при каждом обновлении. Refresh token храните в системном хранилище учётных данных и никогда не записывайте в логи.

03

Точки входа

GET/api/v1/catalog/manifest

Доступные ресурсы и версия схемы

GET/api/v1/cards

Стандартный или вольный каталог, фильтры и курсорная пагинация

GET/api/v1/cards/{cardId}

Данные карты, связанные токены и пулы генерации

GET/api/v1/card-statistics

Полный срез статистики Standard или Wild с пагинацией

GET/api/v1/cards/{cardId}/statistics

Текущие показатели карты для выбранного ранга и периода

GET/api/v1/cards/{cardId}/statistics/history

История показателей карты за 7–365 дней

GET/api/v1/meta-statistics

Мета Standard или Wild по рангам, периодам и размеру выборки

GET/api/v1/archetypes/{slug}/statistics

Текущие агрегаты выбранного архетипа

GET/api/v1/archetypes/{slug}/statistics/history

История винрейта, популярности и темпа подъёма

GET/api/v1/archetypes/{slug}/analysis

Матчапы по классам и влияние карт на результат

GET/api/v1/deck-statistics

Показатели сборок, коды колод и канонические ссылки

GET/api/v1/decks/{deckId}/statistics

Статистика, код и ссылки выбранной сборки

GET/api/v1/arena/statistics/classes

Все доступные показатели классов Арены и размеры выборок

GET/api/v1/arena/statistics/cards

Полная статистика карт Арены из HSReplay, Firestone и HearthArena

GET/api/v1/arena/statistics/legendaries

Полная статистика легендарок, классов и связанных карт

GET/api/v1/arena/statistics/matchups

Матчапы классов Арены и доступные размеры выборок

GET/api/v1/battlegrounds/statistics/heroes

Герои по режиму, MMR и периоду

GET/api/v1/battlegrounds/statistics/heroes/{heroId}

Кривая таверны, сила героя, бои, композиции и финальные составы

GET/api/v1/battlegrounds/statistics/minions

Влияние, популярность и результаты существ

GET/api/v1/battlegrounds/statistics/minions/{dbfId}/history

Вся сохранённая история статистики существа

GET/api/v1/battlegrounds/statistics/spells

Полная статистика заклинаний таверны

GET/api/v1/battlegrounds/statistics/tier-lists/{kind}

Тир-листы героев, существ, заклинаний, аксессуаров и стратегий

GET/api/v1/cards/{cardId}/images/{variant}.webp

Кэшированные изображения thumb, full и tile

POST/api/v1/oauth/device/code

Начало безопасного входа desktop-приложения

POST/api/v1/oauth/token

Обмен device code и ротация refresh token

GET/api/v1/me

Минимальный профиль и права подписки

GET/api/v1/openapi.json

Машиночитаемый контракт OpenAPI 3.1

Открыть OpenAPI JSON
04

Ошибки и совместимость

Клиент должен ориентироваться на поле error.code. Сообщение предназначено для человека и может уточняться без смены версии API. Все несовместимые изменения будут выпускаться в новом namespace.