Сервер автоматически собирает статистику прослушиваний из MusicAlligator и накапливает её в базе. Через этот API вы забираете уже готовые данные — за всё время или за любой период — в разрезе трек × площадка × страна × дата. Никакого ручного парсинга с вашей стороны не нужно.
Это происходит на сервере автоматически, по расписанию:
Актуальное состояние и время последнего парсинга можно проверить без токена: https://status.bpmusic.ru или GET https://api.bpmusic.ru/api/status.
ma_….X-API-Key к каждому запросу.GET-запросы к https://api.bpmusic.ru/api и получайте статистику в JSON.
Токен передаётся в заголовке X-API-Key (рекомендуется)
или query-параметром api_key. Токены имеют права:
read — чтение статистики, write — загрузка своих строк.
| Метод | Путь | Права | Описание |
|---|---|---|---|
| GET | /api/health | — | Проверка доступности сервера |
| GET | /api/status | — | Статус сервисов и время последнего парсинга |
| GET | /api/stats/data | read | Строки статистики с фильтрами и постраничностью |
| GET | /api/stats/summary | read | Сводка: сколько записей, треков, прослушиваний, период |
| GET | /api/stats/top | read | Топ треков по прослушиваниям за период |
| GET | /api/last-parse | read | Дата последнего парсинга и история запусков |
| POST | /api/statistics | write | Загрузка своих строк статистики (внешние источники) |
Все параметры необязательны. Без параметров возвращаются все записи за всё время (постранично).
| Параметр | Пример | Описание |
|---|---|---|
| date_from | 2026-01-01 | Дата «с» (включительно), формат ГГГГ-ММ-ДД |
| date_to | 2026-09-14 | Дата «по» (включительно) |
| isrc | USRC11700463 | Один ISRC трека |
| isrcs | A,B,C | Несколько ISRC через запятую |
| platform | Spotify | Площадка (частичное совпадение, без учёта регистра) |
| country | RU | Код страны |
| source | MusicAlligator | Фильтр по источнику данных |
| limit | 1000 | Строк за раз (по умолчанию 1000, максимум 50000) |
| offset | 1000 | Сколько строк пропустить (для пагинации) |
За один запрос возвращается не больше 50000 строк. В ответе поле
total — сколько всего строк подходит под фильтр. Чтобы забрать всё,
увеличивайте offset на limit, пока не получите меньше строк, чем limit.
200 — успех.401 — токен не указан.403 — токен недействителен, отключён, просрочен или не хватает прав.429 — превышен лимит запросов (по умолчанию 300 запросов в минуту). Добавьте паузу между запросами.50000 строк за один запрос — используйте offset для пагинации.ГГГГ-ММ-ДД.