SV EN
icebeats.io
Ingen låt vald
0:00 0:00

iceBeats Audio API

Dokumentation och testverktyg för bibliotek, topplistor och loggning av uppspelningar.
Base URL: https://icebeats.io

Autentisering

Externa integratörer behöver API-nyckel för topplista och loggning. Dina egna sidor på samma domän kan fortsätta utan nyckel (same-site via Origin/Referer/Host).
Kräver API key:
GET /api/stats_top.php
POST /api/track_play.php
Publikt:
GET /library.json
GET /api/health.php
X-API-Key X-API-Key: DIN_NYCKEL
Same-site requests från icebeats.io och icejockey.app kan tillåtas utan API-nyckel beroende på endpoint.

Översikt

Metod Path Åtkomst Beskrivning
GET /library.json Publik Returnerar hela biblioteket med spår och metadata.
GET /api/health.php Publik En enkel statuskontroll för API och bakomliggande delar.
GET /api/stats_top.php Skyddad Returnerar mest spelade låtar för vald period.
POST /api/track_play.php Skyddad Loggar en uppspelning för statistik och sync.

Endpoints

GET /library.json Publik
Returnerar hela biblioteket med spår och metadata.

Exempelsvar

{
  "baseUrl": "https://icebeats.io",
  "items": [
    {
      "id": "goal_horn_1",
      "title": "Goal Horn",
      "artist": "iceBeats",
      "genre": "Mål",
      "image": "/covers/goal-horn.webp",
      "url": "/tracks/goal-horn.mp3",
      "createdAt": 1740000000
    }
  ]
}
GET /api/health.php Publik
En enkel statuskontroll för API och bakomliggande delar.

Exempelsvar

{
  "ok": true,
  "checks": {
    "library": { "ok": true, "updated": 1740000000 },
    "db": { "ok": true },
    "storage": { "ok": true }
  }
}
GET /api/stats_top.php Skyddad
Returnerar mest spelade låtar för vald period.

Parametrar

Fält Krävs Beskrivning
rangeNejweek eller month
limitNej1–50
client_idNejValfritt klient-id

Exempelsvar

{
  "ok": true,
  "range": "week",
  "days": 7,
  "clientId": "arena_1",
  "updatedAt": "2026-03-06T08:00:00Z",
  "top": [
    {
      "trackId": "goal_horn_1",
      "plays": 42,
      "msTotal": 123000,
      "lastTs": 1741248000,
      "title": "Goal Horn",
      "artist": "iceBeats",
      "genre": "Mål",
      "image": "/covers/goal-horn.webp",
      "url": "/tracks/goal-horn.mp3"
    }
  ]
}
POST /api/track_play.php Skyddad
Loggar en uppspelning för statistik och sync.

Parametrar

Fält Krävs Beskrivning
track_idJaUnikt spår-id
client_idNejKlient eller integration
event_keyNejTyp av event, t.ex. goal eller library_play
played_msNejSpelad tid i millisekunder
titleNejTitel för spåret
artistNejArtistnamn
track_urlNejDelbar URL till spårsidan

Exempelsvar

{
  "ok": true,
  "trackId": "goal_horn_1",
  "logged": true
}

Snabbtest (Playground)

Fyll i API-nyckel om du vill testa skyddade endpoints.

Hämtar topplista från stats_top.php

Skickar en test-logg till track_play.php
Svar
{}

Exempel

Med API key
# top week (requires key)
curl -s "https://icebeats.io/api/stats_top.php?range=week&limit=10&client_id=arena_1" \
  -H "X-API-Key: DIN_NYCKEL"

# log play (requires key)
curl -s -X POST "https://icebeats.io/api/track_play.php" \
  -H "X-API-Key: DIN_NYCKEL" \
  -F "track_id=goal_horn_1" \
  -F "client_id=arena_1" \
  -F "event_key=goal_home" \
  -F "played_ms=5000" \
  -F "title=Goal Horn" \
  -F "artist=iceBeats" \
  -F "track_url=https://icebeats.io/track/?id=goal_horn_1"
Utan API key
# library (public)
curl -s "https://icebeats.io/library.json"

# health (public)
curl -s "https://icebeats.io/api/health.php"

Rate limiting

Externa requests begränsas per API-nyckel eller IP. Dedupla gärna loggning per track/klient.
Tips: logga bara om låten spelat minst 5 sekunder och max 1 gång/minut per track och klient.