GrooveGauge / Developers
Use GrooveGauge reviews and music links in your own projects. No API key or account is required. Responses contain compact metadata, scores and short review previews, with links to the full pages.
Attribution is required: display “GrooveGauge” with a clickable link to the original review or artist page next to the data you use. Keep the original score scale of 10. Full reviews, biographies, research and contact details are outside this API.
Base URL: https://groovegauge.com/api/v1. Download the OpenAPI specification.
| Endpoint | Returns |
|---|---|
/reviews, /reviews/{id} | Title, score, excerpt, artists, genres, release and canonical review link. |
/artists, /artists/{id} | Name, verified Spotify ID where available, canonical artist link and URLs for review/release lists. |
/releases, /releases/{id} | Album, single or EP metadata, artists, genres, verified Spotify links and up to three recent review previews. Follow reviews_url for all reviews. |
/genres, /genres/{id} | Genres used by public releases. |
/search?q=Anathema | Artists, releases and reviews, each with its own paginated result group. |
List endpoints accept page (default 1) and per_page (default 20, maximum 50). Follow the absolute links.next URL until it is null. Search defaults to 10 results per group, maximum 20. IDs are GrooveGauge IDs, unless a parameter explicitly says Spotify.
Use q for an artist name or title (2–120 characters). Matching is a literal, case-insensitive substring. Spotify search uses spotify_id, optionally with spotify_type=artist, album or track. Unverified or held Spotify IDs never appear or match. An empty result can therefore mean that we have not verified the connection yet.
Reviews and releases also accept artist_id, genre_id and type. Reviews additionally accept release_id; review types are album and single. Release types also include ep, live and compilation. Artists accept genre_id. Detail resources accept no query parameters. Unknown parameters return 400.
A review excerpt is always the same opening fragment, in plain text, with at most 400 Unicode characters including the ellipsis. Short reviews return at most 60% of their visible text; texts shorter than 40 characters return an empty excerpt. There is no full-text, length, offset, export or expansion parameter. Catalogue entries without a review have no invented score. Dates respect their known precision: a year can be 2015, rather than a made-up exact day.
curl 'https://groovegauge.com/api/v1/artists?q=10%20Years' curl 'https://groovegauge.com/api/v1/search?spotify_id=0REMf7H0VP6DwfZ9MbuWph&spotify_type=artist' curl 'https://groovegauge.com/api/v1/reviews?type=album&per_page=20&page=1'
const response = await fetch(
'https://groovegauge.com/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);
}Each IP can make 60 requests per rolling minute, with a burst limit of 10 requests per five seconds. Rate-limited requests return 429 and Retry-After in seconds. Read RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset headers. Cache responses and wait before retrying. Responses may be cached for up to 30 seconds; documentation for 60 seconds. ETags support conditional requests.
GET and HEAD read data. OPTIONS describes allowed methods. Public CORS is enabled without credentials. Errors use JSON {"error":{"code":"…","message":"…"}}: 400 for invalid parameters, 404 for missing or unpublished resources, 405 for unsupported methods, 429 for rate limits, and 503 for temporary unavailability. IDs and canonical URLs remain the integration reference; do not assume that the order or total number of records stays fixed during publication.