Каталог Resonance

Last updated: 2026-10-29Всё, что выпущено в Resonance, — треки, артисты, альбомы, жанры и прослушивания. Без ключа и аккаунта; для личных некоммерческих проектов со ссылкой на источник.

Каталог Resonance

Всё, что выпущено в Resonance: треки, артисты, альбомы, жанры, участники, прослушивания. На этом строятся чарты, боты-рекомендатели, страницы статистики и карточки «сейчас играет». Без ключа, аккаунта и регистрации.

text
Базовый адрес   https://resonance-api.aperturesyndicate.com/api/v1/catalog

Эндпоинты

МетодЭндпоинт
GET/tracksОпубликованные треки, самые слушаемые первыми. ?q= ищет, ?genre= фильтрует
GET/tracks/:idОдин трек со всеми участниками
GET/artistsАртисты, по месячным слушателям. ?q= ищет
GET/artists/:slugАртист с альбомами, главными треками и участием в чужих треках
GET/artists/:slug/tracks/:trackSlugТрек по публичному адресу, вместе с альбомом
GET/albumsОпубликованные альбомы, новые первыми
GET/albums/:idАльбом с треками и артистом
GET/taxonomyЖанры по категориям, настроения, языки
GET/versionДешёвая сигнатура, которая меняется при каждой публикации

Списки принимают limit (1–100, по умолчанию 50) и offset и возвращают общий count.

Каталог отдаёт только метаданные. Звук, тексты песен и ссылки на скачивание в публичное API не входят — чтобы послушать, ведите человека на трек в Resonance.

Пример

bash
curl "https://resonance-api.aperturesyndicate.com/api/v1/catalog/tracks?limit=1"
json
{
  "tracks": [{
    "id": "f021f894-97cb-471e-b2f5-2b312e418e4a",
    "title": "Нежные порезы",
    "slug": "nezhnye-porezy",
    "artistSlug": "lar4ick",
    "durationMs": 102896,
    "coverUrl": "https://media.aperturesyndicate.com/…/cover-v2.jpg",
    "coverThumb": "https://media.aperturesyndicate.com/…/cover-v2.jpg.thumb.webp",
    "genres": ["hip-hop", "rap", "boom bap"],
    "language": ["ru"],
    "bpm": 92,
    "playCount": 190,
    "explicit": false,
    "artists": [
      { "slug": "lar4ick", "name": "Lar4ick", "role": "primary" },
      { "slug": "kinechu", "name": "kinechu", "role": "producer" }
    ],
    "waveform": [89, 81, 56, "…"]
  }],
  "count": 11142
}

Публичная страница трека — https://resonance.aperturesyndicate.com/artist/<artistSlug>/<slug>, артиста — https://resonance.aperturesyndicate.com/artist/<artistSlug>. Их и ставьте ссылкой на источник.

Поля трека

Поле
id, slug, titleИдентичность; slug уникален в пределах артиста
artistId, artistSlug, albumIdВладелец и альбом (у сингла albumId может быть null)
artistsВсе участники: role — primary, featured, producer и так далее
durationMs, bpmДлина и темп
coverUrl, coverThumbОбложка и маленькое превью в webp
genres, moods, languageМетки из /taxonomy
playCountВсего прослушиваний
explicitНенормативный текст
releaseDate, label, isrc, copyrightДанные релиза, если артист их указал
waveform72 значения громкости 0–100 для рисования волны
externalSource, externalUrlЗаполнены у треков из открытого каталога, который мы зеркалим, — укажите и дайте ссылку на оригинал
videoUrl, videoDurationMsКороткое видео, если оно есть у трека

Ограничения

  • 300 запросов в минуту с IP на весь каталог. Страницы кэшируются примерно на минуту, поэтому опрашивать чаще бессмысленно — смотрите /version.
  • Запросы из браузера блокирует CORS. Обращайтесь к каталогу со своего сервера и кэшируйте ответ.
  • Неправильный id отвечает 400, отсутствующий трек или артист — 404 с {"error":"not_found","code":"NOT_FOUND"}.
Каталог Resonance | AS Docs