Reference
API
A public, read-only JSON API for browsing the song catalogue on this website.
This API is live now that the song catalogue is on this website — see Website.
Overview
A public, read-only JSON API for browsing shared songs. No authentication. CORS is open (*). Rate limit: 120 requests/minute/IP; over it you get a 429 with a Retry-After header. Successful answers are cached for a minute.
Only published songs are returned. An id that is unknown, or a song that is not published, answers 404:
{ "error": { "code": "not_found", "message": "No published song with that id." } }GET /api/v1/songs
List/search songs.
Query parameters:
| Param | Meaning |
|---|---|
q | Free-text search (name, author, notes) |
style | Filter by JAM style: pop, rock, blues, jazz, hiphop, funk, metal |
feel | Filter by groove feel tag |
difficulty | easy, medium, hard (case-insensitive) |
sort | newest (default), downloads, rating, bars |
page | Page number, 1-based, default 1 |
per_page | Results per page, default 20, max 50 |
There is no filter on the key; key is only reported, not read.
Response shape:
{
"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 and key are null when the song does not carry them. id is the song's public id, the same one in its page URL.
GET /api/v1/songs/{id}
Full song metadata: the fields above plus notes (the description), kit, bpm, tuning, form (the sections in order, e.g. INTRO · VERSE ×2 · CHORUS), playsOnce, sourceUuid (the song it was built from, if any) and createdAt.
GET /api/v1/songs/{id}/chart
The chord chart as readable data — the same shape the MCP server's build_song takes: bars as arrays, chords as symbols, grips as 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 the id inside the document, for lineage when you build on it; notes lists, in plain words, anything in the stored song that this shape cannot express.
GET /api/v1/songs/{id}/file
The song's .noisesong file (Content-Type: application/x-noise-song+json), ready to download or hand to a noise:// link — see The .noisesong file and the noise:// link. A download is counted once per IP per day.