Referenz
API
Eine öffentliche JSON-API, nur lesend, zum Durchsehen der Songbibliothek auf dieser Website.
Diese API ist live, seit die Songbibliothek auf dieser Website ist; siehe Website.
Überblick
Eine öffentliche JSON-API, nur lesend, zum Durchsehen geteilter Songs. Keine Authentifizierung. CORS ist offen (*). Rate-Limit: 120 Anfragen/Minute/IP; darüber bekommst du eine 429 mit einem Retry-After-Header. Erfolgreiche Antworten werden eine Minute lang gecacht.
Zurück kommen nur veröffentlichte Songs. Eine unbekannte id, oder ein Song, der nicht veröffentlicht ist, antwortet mit 404:
{ "error": { "code": "not_found", "message": "No published song with that id." } }GET /api/v1/songs
Songs auflisten und suchen.
Query-Parameter:
| Parameter | Bedeutung |
|---|---|
q | Freitextsuche (Name, Autor, Notizen) |
style | Filter nach JAM-Stil: pop, rock, blues, jazz, hiphop, funk, metal |
feel | Filter nach Groove-Feel-Tag |
difficulty | easy, medium, hard (Groß- oder Kleinschreibung egal) |
sort | newest (Standard), downloads, rating, bars |
page | Seitennummer, ab 1, Standard 1 |
per_page | Ergebnisse pro Seite, Standard 20, höchstens 50 |
Einen Filter auf die Tonart gibt es nicht; key wird nur ausgegeben, nicht gelesen.
Form der Antwort:
{
"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 und key sind null, wenn der Song sie nicht trägt. id ist die öffentliche id des Songs, dieselbe wie in der URL seiner Seite.
GET /api/v1/songs/{id}
Die vollständigen Metadaten des Songs: die Felder oben plus notes (die Beschreibung), kit, bpm, tuning, form (die Teile der Reihe nach, z. B. INTRO · VERSE ×2 · CHORUS), playsOnce, sourceUuid (der Song, aus dem er gebaut wurde, falls es einen gibt) und createdAt.
GET /api/v1/songs/{id}/chart
Das Akkordschema als lesbare Daten, in derselben Form, die build_song des MCP-Servers nimmt: Takte als Arrays, Akkorde als Symbole, Griffe 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 ist die id im Dokument, für die Herkunft, wenn du darauf aufbaust; notes nennt in einfachen Worten alles im gespeicherten Song, was diese Form nicht ausdrücken kann.
GET /api/v1/songs/{id}/file
Die .noisesong-Datei des Songs (Content-Type: application/x-noise-song+json), fertig zum Laden oder für einen noise://-Link; siehe Die .noisesong-Datei und der noise://-Link. Ein Download wird einmal pro IP und Tag gezählt.