API & Integrations
Gigmeister data can be accessed programmatically via REST API and Model Context Protocol (MCP). MCP is available to band members, and available MCP actions follow each member’s band role permissions.
For detailed endpoint documentation with request/response schemas, see the API Reference.
REST API
Section titled “REST API”Generate API keys to access your band’s data from external tools.
Getting an API Key
Section titled “Getting an API Key”- Go to Settings > Advanced > API
- Click Generate New Key
- Give your key a name (e.g., “Automation Script”)
- Copy the key — it’s only shown once!
API keys use the format gig_xxxxxxxxxxxx.
Authentication
Section titled “Authentication”Include your API key in the Authorization header:
curl -H "Authorization: Bearer gig_your_api_key" \ https://gigmeister.app/api/songsRate Limits
Section titled “Rate Limits”- 100 requests per minute per API key
- Rate limit headers included in responses:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset
Response Format
Section titled “Response Format”All responses use a consistent envelope:
{ "ok": true, "data": { ... }}Error responses:
{ "ok": false, "error": "Description of what went wrong"}Usage Tracking
Section titled “Usage Tracking”View request counts per key from Settings > Advanced > API — broken down by endpoint, day, and month.
Endpoints
Section titled “Endpoints”| Method | Path | Description |
|---|---|---|
GET | /api/songs | List all songs |
POST | /api/songs | Create a song |
GET | /api/songs/:id | Get a song |
PATCH | /api/songs/:id | Update a song |
DELETE | /api/songs/:id | Delete a song |
POST | /api/songs/import | Bulk import (up to 100) |
GET | /api/songs/duplicates | Find potential duplicates |
POST | /api/songs/merge | Merge two duplicates |
Setlists
Section titled “Setlists”| Method | Path | Description |
|---|---|---|
GET | /api/setlists | List all setlists |
POST | /api/setlists | Create a setlist |
GET | /api/setlists/:id | Get a setlist with songs |
PATCH | /api/setlists/:id | Update a setlist |
DELETE | /api/setlists/:id | Delete a setlist |
POST | /api/setlists/:id/songs | Add songs to a setlist |
DELETE | /api/setlists/:id/songs | Remove a song |
PUT | /api/setlists/:id/songs/reorder | Reorder songs |
Song Groups
Section titled “Song Groups”| Method | Path | Description |
|---|---|---|
GET | /api/song-groups | List all groups |
POST | /api/song-groups | Create a group |
GET | /api/song-groups/:id | Get a group |
PATCH | /api/song-groups/:id | Update a group |
DELETE | /api/song-groups/:id | Delete a group |
Calendar Events
Section titled “Calendar Events”| Method | Path | Description |
|---|---|---|
GET | /api/calendar/events | List events |
POST | /api/calendar/events | Create an event |
GET | /api/calendar/events/:id | Get an event with attendance |
PATCH | /api/calendar/events/:id | Update an event |
DELETE | /api/calendar/events/:id | Delete an event |
POST | /api/calendar/events/:id/attendance | Set attendance status |
| Method | Path | Description |
|---|---|---|
GET | /api/band | Get band info |
GET | /api/band/members | List members |
Practice
Section titled “Practice”| Method | Path | Description |
|---|---|---|
GET | /api/practice/practice-sessions | Get practice history |
POST | /api/practice/practice-sessions | Log a practice session |
Shared Mailbox
Section titled “Shared Mailbox”| Method | Path | Description |
|---|---|---|
GET | /api/mail/threads | List mail threads |
GET | /api/mail/threads/:id | Get a thread with messages |
PATCH | /api/mail/threads/:id | Update thread status, tags, assignee |
POST | /api/mail/reply | Send a reply (threadId in body) |
POST | /api/mail/draft-reply | Generate an AI draft reply for a thread |
GET | /api/mail/search | Full-text search across messages |
Rider Pack
Section titled “Rider Pack”| Method | Path | Description |
|---|---|---|
GET | /api/rider-pack | Get the band’s rider pack |
PATCH | /api/rider-pack | Update rider pack sections |
DELETE | /api/rider-pack/share-token | Rotate (invalidate + regenerate) the public share token |
GET | /api/rider-pack/share/:token | Public share view (no auth) |
| Method | Path | Description |
|---|---|---|
GET | /api/midi-devices | List user MIDI devices |
POST | /api/midi-devices | Add a MIDI device |
GET | /api/midi-scenes | List MIDI scenes (presets across devices) |
POST | /api/midi-scenes | Save a MIDI scene |
OpenAPI Spec
Section titled “OpenAPI Spec”A machine-readable OpenAPI 3.0 specification is available at /api/openapi. Use it with tools like Swagger UI, Postman, or code generators.
Example: List Songs
Section titled “Example: List Songs”curl -s -H "Authorization: Bearer gig_your_api_key" \ https://gigmeister.app/api/songs | jq '.data[0]'{ "id": "uuid", "title": "Don't Stop Believin'", "artist": "Journey", "key": "E", "tempo": 119, "duration": 251, "timeSignature": "4/4", "tags": ["80s", "opener"]}Example: Create a Song
Section titled “Example: Create a Song”curl -X POST -H "Authorization: Bearer gig_your_api_key" \ -H "Content-Type: application/json" \ -d '{"title": "Sweet Child O Mine", "artist": "Guns N Roses", "key": "D", "tempo": 128}' \ https://gigmeister.app/api/songsMCP (Model Context Protocol)
Section titled “MCP (Model Context Protocol)”Connect AI assistants like Claude Desktop to Gigmeister via MCP.
What is MCP?
Section titled “What is MCP?”MCP allows AI tools to read and manage your song library, create setlists, and more through natural language. Available actions follow your band role permissions.
Configuration
Section titled “Configuration”- Go to Settings > Advanced > MCP
- Copy the MCP configuration
- Add it to your AI assistant’s MCP settings
Capabilities
Section titled “Capabilities”With MCP connected, you can ask your AI assistant to:
- “List all songs in my library”
- “Create a setlist for Saturday’s gig with these 12 songs”
- “Reorder the second set so it builds energy through to the encore”
- “Move ‘Layla’ to right before the ballads”
- “Find songs in the key of G under 90 BPM”
- “Add a new song with these chord changes”
- “Show me what the band’s been practicing this month”
Available Tools
Section titled “Available Tools”Read-only tools available to all roles:
list_songs,search_songs,get_song,resolve_songslist_setlists,get_setlistlist_song_groups,get_song_grouplist_events,get_event,list_practice_sessions,get_practice_suggestionslist_midi_devices,list_midi_mappingsanalyze_catalog,get_band,get_band_memberslist_mail_threads,get_mail_thread,search_mail
Write tools (gated by your band role):
- Songs:
create_song,update_song,delete_song,enrich_song,enrich_songs - Setlists:
create_setlist,create_setlist_with_songs,update_setlist,delete_setlist,add_song_to_setlist,bulk_add_songs_to_setlist,add_song_group_to_setlist,remove_song_from_setlist,move_song_in_setlist,reorder_setlist_songs - Groups:
create_song_group,update_song_group,delete_song_group - Calendar:
create_gig,create_rehearsal,update_event,delete_event,update_attendance,set_member_attendance,confirm_all_attendance - Practice:
log_practice - MIDI:
create_midi_device,update_midi_device,delete_midi_device - Inbox:
update_mail_thread,add_mail_note
Agent Threads
Section titled “Agent Threads”The in-app AI agent supports persistent multi-turn conversations synced across all your devices. Start a conversation on web, continue it on iOS — the full history is preserved per-band.
AI Features
Section titled “AI Features”Built-in AI features include:
| Feature | Description |
|---|---|
| Generate Setlist | Create a setlist from a text prompt |
| Chord Sheet Generation | Convert text to formatted chord sheets |
| Lyrics Lookup | Fetch lyrics for songs from LRCLIB with AI fallback |
| Song Enrichment | Auto-fill key, tempo, time signature, duration from MusicBrainz + AI |
| Medley Matching | Find songs that work well together |
| Setlist Optimization | Reorder for better flow |
| AI Agent Threads | Persistent multi-turn AI conversations synced across devices |
Access these features from the relevant screens in the app.