Naslag
API
Een openbare, alleen-lezen JSON-API om door de bibliotheek op de website te bladeren.
Deze API is live nu de bibliotheek op deze website staat. Zie Website.
Overzicht
Een openbare JSON-API, alleen lezen, om door gedeelde nummers te bladeren. Geen authenticatie. CORS staat open (*). Limiet: 120 verzoeken per minuut per IP; daarboven krijg je een 429 met een Retry-After-header. Geslaagde antwoorden worden een minuut gecachet.
Alleen gepubliceerde nummers komen terug. Een onbekend id, of een nummer dat niet gepubliceerd is, geeft 404:
{ "error": { "code": "not_found", "message": "No published song with that id." } }GET /api/v1/songs
Nummers opvragen en zoeken.
Queryparameters:
| Parameter | Betekenis |
|---|---|
q | Vrij zoeken op tekst (naam, auteur, notities) |
style | Filter op JAM-stijl: pop, rock, blues, jazz, hiphop, funk, metal |
feel | Filter op de feel-tag |
difficulty | easy, medium, hard (hoofdletters maken niet uit) |
sort | newest (standaard), downloads, rating, bars |
page | Paginanummer, vanaf 1, standaard 1 |
per_page | Resultaten per pagina, standaard 20, maximaal 50 |
Op de toonsoort kun je niet filteren; key wordt alleen teruggegeven, niet gelezen.
Vorm van het antwoord:
{
"songs": [
{
"id": "d_OxIkOTen",
"name": "Amber Skyline",
"author": "NØISE",
"style": "rock",
"feel": "straight",
"key": "Am",
"difficulty": "medium",
"bars": 32,
"ratingAvg": 4.5,
"ratingCount": 2,
"downloadCount": 17,
"updatedAt": "2026-05-01T12:00:00.000Z"
}
],
"page": 1,
"per_page": 20,
"total": 137
}author en key zijn null als het nummer ze niet heeft. id is het publieke id van het nummer, hetzelfde als in de URL van de pagina van het nummer.
GET /api/v1/songs/{id}
Alle metadata van één nummer: de velden hierboven plus notes (de beschrijving), kit, bpm, tuning, form (de secties op volgorde, bijvoorbeeld INTRO · VERSE ×2 · CHORUS), playsOnce, sourceUuid (het nummer waarop het is gebouwd, als dat er is) en createdAt.
GET /api/v1/songs/{id}/chart
Het akkoordenschema als leesbare data, in dezelfde vorm die build_song van de MCP-server verwacht: maten als arrays, akkoorden als symbolen, grepen als tags.
{
"id": "d_OxIkOTen",
"songUuid": "6F1A0E9C-3D4E-4B11-9A0B-1C2D3E4F5A6B",
"song": {
"name": "Amber Skyline",
"key": "Am",
"bpm": 120,
"sections": [
{ "name": "VERSE", "repeats": 2, "bars": ["Am", "F", "C", "G"] }
]
},
"notes": []
}songUuid is het id in het document zelf, voor de afstamming als je erop voortbouwt; notes zegt in gewone woorden wat er in het bewaarde nummer zit dat deze vorm niet kan uitdrukken.
GET /api/v1/songs/{id}/file
Het .noisesong-bestand van het nummer (Content-Type: application/x-noise-song+json), klaar om te downloaden of aan een noise://-link te hangen. Zie Het .noisesong-bestand en de noise://-link. Een download telt één keer per IP per dag.