Resonance catalogue

Last updated: 2026-10-29Everything released through Resonance — tracks, artists, albums, genres and play counts. No key, no account; personal and non-commercial use with attribution.

Resonance catalogue

Everything released through Resonance: tracks, artists, albums, genres, credits, play counts. Charts, discovery bots, stats pages and "now playing" cards live off this. No key, no account, no registration.

text
Base URL   https://resonance-api.aperturesyndicate.com/api/v1/catalog

Endpoints

MethodEndpoint
GET/tracksPublished tracks, most played first. ?q= searches, ?genre= filters
GET/tracks/:idOne track with full credits
GET/artistsArtists, most monthly listeners first. ?q= searches
GET/artists/:slugArtist with albums, top tracks and appearances on other artists' tracks
GET/artists/:slug/tracks/:trackSlugTrack by its public address, with its album
GET/albumsPublished albums, newest first
GET/albums/:idAlbum with its tracks and artist
GET/taxonomyGenres by category, moods, languages
GET/versionA cheap signature that changes when something is published

Lists take limit (1–100, default 50) and offset, and return a total count.

The catalogue serves metadata only. Audio, lyrics and download links are not part of the public API — link people to the track on Resonance to listen.

Example

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
}

The public page of a track is https://resonance.aperturesyndicate.com/artist/<artistSlug>/<slug>, of an artist https://resonance.aperturesyndicate.com/artist/<artistSlug> — use them for the link back.

Track fields

Field
id, slug, titleIdentity; slug is unique within the artist
artistId, artistSlug, albumIdOwner and album (albumId may be null for a single)
artistsEveryone credited: role is primary, featured, producer and so on
durationMs, bpmLength and tempo
coverUrl, coverThumbFull cover and a small webp preview
genres, moods, languageTags from /taxonomy
playCountTotal plays
explicitExplicit lyrics
releaseDate, label, isrc, copyrightRelease data, when the artist gave it
waveform72 loudness values 0–100 for drawing a waveform
externalSource, externalUrlSet for tracks from the open catalogue we mirror — credit and link the original
videoUrl, videoDurationMsShort video, if the track has one

Limits

  • 300 requests per minute per IP, shared across the catalogue. Pages are cached for about a minute, so polling faster than that gets you nothing new — use /version.
  • Browser calls are blocked by CORS. Call the catalogue from your server and cache the result.
  • An unknown id answers 400, a missing track or artist 404 with {"error":"not_found","code":"NOT_FOUND"}.
Resonance catalogue | AS Docs