GrooveGauge / Voor ontwikkelaars

Openbare muziek-API

Gebruik recensies en muzieklinks van GrooveGauge in je eigen project. Maak een gratis GrooveGauge-account aan en gebruik een API-sleutel om gegevens op te vragen. Je krijgt beknopte gegevens, scores en korte reviewfragmenten terug, met links naar de volledige pagina's.

Bronvermelding is verplicht: zet bij de gebruikte gegevens de naam GrooveGauge, met een klikbare link naar de oorspronkelijke recensie of artiestenpagina. Behoud de schaal van 10 voor scores. Volledige recensies, biografieën, onderzoek en contactgegevens zijn geen onderdeel van deze API.

Basis-URL: https://groovegauge.com/nl/api/v1. Download de OpenAPI-specificatie.

Account en API-sleutel

Maak een account aan of log in om je API-sleutels te beheren. Bevestig de link uit je e-mail en maak daarna een sleutel aan voor je project. De geheime sleutel wordt één keer getoond. Bewaar hem op je server en zet hem nooit in URL’s of openbare JavaScript. Trek een sleutel meteen in als deze uitlekt.

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://groovegauge.com/nl/api/v1/reviews?per_page=4"

Alle gegevensroutes, inclusief de JSON-index van de API, vereisen deze Authorization-header. Deze documentatie, het OpenAPI-bestand en OPTIONS-verzoeken blijven openbaar.

Taal en gedeelde gegevens

De API gebruikt nu taalsubmappen. Stel in je project https://groovegauge.com/nl/api/v1 in voor Nederlands of https://groovegauge.com/en/api/v1 voor Engels. Gebruik die nieuwe basis-URL rechtstreeks, in plaats van de doorverwijzingen vanaf de oude domeinen.

Gebruik groovegauge.com/nl/ voor Nederlandse reviewfragmenten en pagina's, en groovegauge.com/en/ voor Engels. De twee versies delen dezelfde artiesten, releases, ID's en scores. Namen en titels worden niet vertaald. Nederlandse lijsten bevatten alleen gepubliceerde Nederlandse versies; er verschijnt geen Engels reviewfragment als de Nederlandse tekst ontbreekt. Een artiestverwijzing kan naar de Engelse pagina leiden zolang er nog geen Nederlandse bio is. Het antwoord geeft de taal ook aan in Content-Language.

Beschikbare gegevens

EndpointInhoud
/reviews, /reviews/{id}Titel, score, fragment, artiesten, genres, release en de canonieke link naar de recensie.
/artists, /artists/{id}Naam, gecontroleerd Spotify-ID indien beschikbaar, de artiestenpagina en links naar lijsten met recensies en releases.
/releases, /releases/{id}Gegevens over albums, singles en EP's, artiesten, genres, gecontroleerde Spotify-links en maximaal drie recente reviewfragmenten. Volg reviews_url voor alle recensies.
/genres, /genres/{id}Genres die worden gebruikt bij openbare releases.
/search?q=AnathemaArtiesten, releases en recensies, elk met een eigen gepagineerde resultaatgroep.

Zoeken en paginering

Lijstendpoints ondersteunen page (standaard 1) en per_page (standaard 20, maximaal 50). Volg de volledige URL in links.next tot die null is. Zoeken geeft standaard 10 resultaten per groep, met een maximum van 20. ID's zijn GrooveGauge-ID's, behalve als een parameter uitdrukkelijk Spotify vermeldt.

Zoek met q op een artiestennaam of titel van 2 tot 120 tekens. De zoekterm moet letterlijk in de naam of titel voorkomen; hoofdletters maken geen verschil. Zoeken via Spotify kan met spotify_id, eventueel aangevuld met spotify_type=artist, album of track. Ongecontroleerde of twijfelachtige Spotify-koppelingen verschijnen niet en leveren geen zoekresultaten op. Een leeg resultaat kan dus betekenen dat we de koppeling nog moeten controleren.

Recensies en releases ondersteunen ook artist_id, genre_id en type. Bij recensies kun je daarnaast release_id gebruiken. Reviewtypes zijn album en single. Releases ondersteunen ook ep, live en compilation. Artiesten ondersteunen genre_id. Detailendpoints accepteren geen queryparameters. Onbekende parameters leveren een 400-antwoord op.

Een release houdt een eigen, vast ID en API-adres. De openbare url verwijst rechtstreeks naar onze gepubliceerde recensie als die beschikbaar is, anders naar de releasegids. De publicatiedatum van een recensie staat los van de oorspronkelijke releasedatum.

Hoeveel tekst krijg je?

Een reviewfragment is altijd hetzelfde begin van de recensie, als gewone tekst. Het bevat maximaal 400 Unicode-tekens, inclusief het weglatingsteken. Bij korte recensies geven we maximaal 60% van de zichtbare tekst terug. Teksten onder 40 tekens krijgen een leeg fragment. Er bestaan geen parameters voor volledige teksten, lengte, tekstoffsets, exports of uitbreidingen. Releases zonder recensie krijgen geen verzonnen score. Datums houden hun bekende nauwkeurigheid: bijvoorbeeld 2015 als alleen het jaar vaststaat.

Voorbeelden

curl -H "Authorization: Bearer YOUR_API_KEY" 'https://groovegauge.com/nl/api/v1/artists?q=10%20Years'
curl -H "Authorization: Bearer YOUR_API_KEY" 'https://groovegauge.com/nl/api/v1/search?spotify_id=0REMf7H0VP6DwfZ9MbuWph&spotify_type=artist'
curl -H "Authorization: Bearer YOUR_API_KEY" 'https://groovegauge.com/nl/api/v1/reviews?type=album&per_page=20&page=1'
const response = await fetch(
  'https://groovegauge.com/nl/api/v1/reviews?q=Anathema'
);
if (!response.ok) throw new Error(`GrooveGauge: ${response.status}`);
const { data, links } = await response.json();
for (const review of data) {
  const link = document.createElement('a');
  link.href = review.url;
  link.textContent = `${review.title} · ${review.score}/10 · GrooveGauge`;
  document.body.append(link);
  const excerpt = document.createElement('p');
  excerpt.textContent = review.excerpt;
  document.body.append(excerpt);
}

Limieten en fouten

Standaard zijn 60 verzoeken per UTC-minuut toegestaan, 10 per UTC-venster van vijf seconden en 5.000 per UTC-dag. Alle sleutels van een account en beide taalversies delen deze limieten. Voor iedere sleutel gelden dezelfde limieten ook afzonderlijk. Netwerkbeveiliging laat per IP-adres maximaal 1.200 verzoeken per voortschrijdende minuut en 200 per vijf seconden toe; mislukte verzoeken zonder geldige sleutel zijn beperkt tot 60 per minuut en 10 per vijf seconden. Bij overschrijding krijg je 429 en de wachttijd via Retry-After. Bekijk ook RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset, X-RateLimit-Day-Limit en X-RateLimit-Day-Remaining. Je dashboard toont de limieten van je account. De server kan gegevens 30 seconden uit een gedeelde cache leveren, maar controleert bij ieder verzoek opnieuw je sleutel, ook bij ETags. Antwoorden gebruiken Cache-Control: private, no-store.

GET en HEAD lezen gegevens. OPTIONS beschrijft de toegestane methodes. Openbare CORS is ingeschakeld zonder cookies. Fouten hebben de JSON-vorm {"error":{"code":"…","message":"…"}}: 400 voor ongeldige parameters, 404 voor ontbrekende of ongepubliceerde gegevens, 405 voor niet-ondersteunde methodes, 429 bij te veel verzoeken en 503 bij tijdelijke onbeschikbaarheid. Gebruik ID's en canonieke URL's als vaste verwijzing. Volgorde en aantallen kunnen veranderen wanneer nieuwe inhoud verschijnt.

Verbruik en privacy

Je API-dashboard toont dagtotalen, endpoints, HTTP-statussen, overschrijdingen, responstijden en cachegebruik. Details van verzoeken blijven 30 dagen bewaard, dagtotalen 366 dagen. API-logs bewaren geen autorisatieheaders, geheime sleutels of zoekteksten. IP-adressen worden alleen als hash met een geheime sleutel vastgelegd. Eerder anoniem gebruik kan niet worden teruggehaald; de statistieken beginnen zodra dit systeem is ingeschakeld.