docs/openapi/soundcheck.json (from npm run openapi:emit in api-events/).
Base URL
Authentication
All API requests require authentication via Clerk JWT tokens.API Services
Users
Manage user accounts, profiles, and push notification targets.Organizations
Manage organizations, members, and positions.Events
Manage events (gigs), schedules, attachments, and team assignments.Invitations
Manage event invitations.Calllists
Reusable team templates for quick event staffing.Preset Teams
Saved team configurations for recurring event types.Setlists
Manage setlists and their song arrangements.Songs
Manage the song library and attachments (sheet music, charts).Positions
Global position definitions (instruments, roles).Performance Folders
Personal folders for performers containing their materials for an event.Lead Requests
Manage booking inquiries and leads.Finance
Track event finances, income, expenses, and member payments.success, processing, requires_action, or error. When requires_action is returned, the client should complete the Stripe next-action flow and then refresh the ledger item.
Payments
Configure organization payment settings and Stripe payout funding methods.0% platform fee because Soundcheck absorbs ACH fees.
Notifications
Send and manage notifications (email, SMS, push).Subscriptions
Manage subscription plans and billing.Wrapped
Annual statistics and year-in-review data.Response format
Success response
Error response
Status codes
Pagination
List endpoints support pagination via query parameters:
Customer, inventory, sponsor, organization venue, user, organization member,
group, group member, availability request, and user engagement lists default to
10,000 rows and cap each request at 10,000 rows. Venue search defaults to 50 rows
and has the same 10,000-row maximum. Existing smaller limits on other endpoints
are unchanged.
These lists apply pagination in the database. To read a complete collection,
request a fixed page size (for example, 500), increment
offset by that size,
and stop when a response contains fewer rows than requested. Keep filters the
same across requests. Unique ID tie-breakers make ordering deterministic for
unchanged data; concurrent inserts or deletes can still shift offset pages.