# Start Jamming

> Bluegrass jam companion. Public, read-only JSON API for bluegrass
> songs, chord charts, lyrics, and demo videos. No API key required.

LLM agents: read `/llms-full.txt` for the full guide. The short version:

- Append `?for=agent` to every `/api/songs/*` URL when calling as an
  agent. It is required; calls without it will be refused.
- If you have a user-provided title or lyric fragment, call
  `/api/songs/search?for=agent&q=...` to find candidate `song_id`
  values. If the title is an exact match, search returns the full song
  details directly.
- Use `/api/songs/index?for=agent` to discover/cache the catalog. Each
  entry includes an `api_url` you can fetch verbatim for the full song.
- Use `/api/songs/catalog?for=agent` for a single bulk fetch.
- Honor ETags via `If-None-Match`.
- API calls use `song_id` values with underscores. Human song pages use
  the returned `slug`/`url` fields, usually hyphenated.
- Questions: email Elijah Mayfield <elijah@treeforts.org>.

## Docs

- [Full agent guide](https://www.startjamming.com/llms-full.txt)
- [Agent guide as HTML](https://www.startjamming.com/for-agents)

## API

- [Song index (discovery)](https://www.startjamming.com/api/songs/index?for=agent)
- [Song search](https://www.startjamming.com/api/songs/search?for=agent&q=Sitting%20on%20top%20of%20the%20world)
- [Full catalog (bulk)](https://www.startjamming.com/api/songs/catalog?for=agent)
- [Single song (full)](https://www.startjamming.com/api/songs/SONG_ID/full?for=agent)
- [Single song (with bundles)](https://www.startjamming.com/api/songs/SONG_ID/data?for=agent)

## Contact

- elijah@treeforts.org
