v1.0.0
OpenAPI 3.1.0

Orpheus runs a wedding band’s office: gigs at the centre, the products sold on each gig (ceremony, cocktail hour, reception), the ensembles that fulfil them, and the staff who fill each role.

Conventions

  • JSON in and out. Keys are camelCase. Ids are UUIDs.
  • Single records come back as { "data": … }; lists as { "data": [...], "meta": { total, limit, offset } }.
  • Every error is { "error": { code, message, status, details? } }.
  • Lists page with limit (default 50, max 200) and offset, sort with sort=-date,label, narrow with fields=…, and filter with filter[field][operator]=value.
  • Dates are YYYY-MM-DD, times HH:MM (venue-local), timestamps ISO 8601 in UTC.
  • PATCH is partial. DELETE is hard and refuses (409) while other records still reference the row.

Authentication

Send Authorization: Bearer <token>. Tokens come from POST /auth/confirm (30-day session, after a sign-in link) or POST /api-keys (long-lived). Every request is checked against the user’s roles: each resource group needs <group>.view to read and <group>.edit to write.

Production

Client Libraries