Documentation

tabs.garden public API docs

Use these endpoints to discover public guitar chord sheets and fetch machine-readable tab payloads.

Authentication and rate limits

Public read endpoints do not require authentication. Send normal HTTP requests and respect cache headers, ETags, and 304 responses. Private administrative endpoints are intentionally excluded from public documentation because they modify the library and require a server-side token. There is no webhook system or MCP server today; agents should use the sitemap, llms.txt, OpenAPI specification, and JSON endpoints listed here.

Endpoints

GET /api/songs returns the public song index with stable ids, titles, artists, metadata, and a file field. The response is an array and may include an ETag for conditional requests.

GET /api/tabs/{tabKey} returns a tab JSON payload. Derive tabKey from a song entry by removing the .json suffix from file. The payload includes title, artist, tuning, capo, difficulty, unique chords, and lyric-aligned tab sections when available.

const songs = await fetch("https://tabs.garden/api/songs").then((r) => r.json());
const tabKey = songs[0].file.replace(/\.json$/, "");
const tab = await fetch("https://tabs.garden/api/tabs/" + tabKey).then((r) => r.json());