{"openapi":"3.1.0","info":{"title":"Live Room Labs API","version":"1.0.0","description":"Read-only access to your own GigLoad and VenueLoad data with a personal access token (Settings → API access). Every operation is a database function that runs AS YOU under row-level security: the API can never show more than the app does. POST the function's arguments as JSON; the result comes back under `data`. Burst limit 60 calls/min per token; daily cap in the X-Daily-* headers."},"servers":[{"url":"https://staging-api.liveroomlabs.com"}],"security":[{"bearer":[]}],"tags":[{"name":"gigs","description":"Your gigs, series and venue calendar."},{"name":"bookings","description":"Bookings and their messages."},{"name":"listings","description":"Gig listings, applications and invitations."},{"name":"venues","description":"Venues you manage and their trusted acts."},{"name":"profile","description":"Your profile and what needs your attention."}],"paths":{"/v1/whoami":{"get":{"operationId":"whoami","summary":"Who this token is.","tags":["profile"],"responses":{"200":{"description":"The token's user, tenant, role, scopes and expiry."},"401":{"description":"Not a live token."}}}},"/v1/ops":{"get":{"operationId":"listOperations","summary":"The operations this token may call.","responses":{"200":{"description":"Names, scopes and argument schemas."},"401":{"description":"Not a live token."}}}},"/v1/ops/artist_attention":{"post":{"operationId":"artist_attention","summary":"Needs-your-attention counts for the signed-in GigLoad account: new booking requests, deposits paid, unread thread messages, new enquiries, disputed gigs, new listings for you; and the booker side.","description":"Needs-your-attention counts for the signed-in GigLoad account: new booking requests, deposits paid, unread thread messages, new enquiries, disputed gigs, new listings for you; and the booker side.","tags":["profile"],"security":[{"bearer":["profile:read"]}],"x-scope":"profile:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","nullable":true},"count":{"type":"integer","nullable":true},"kind":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/count_venue_trusted_acts":{"post":{"operationId":"count_venue_trusted_acts","summary":"How many bookable acts a venue trusts (standing trust or a confirmed gig there), for its managers.","description":"How many bookable acts a venue trusts (standing trust or a confirmed gig there), for its managers.","tags":["venues"],"security":[{"bearer":["venues:read"]}],"x-scope":"venues:read","x-read-only":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"p_venue_id":{"type":"string","format":"uuid"}},"required":["p_venue_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"integer"}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_artist_bookings":{"post":{"operationId":"get_artist_bookings","summary":"Bookings where the signed-in user is the ARTIST, with the deposit and agreed fee on each.","description":"Bookings where the signed-in user is the ARTIST, with the deposit and agreed fee on each.","tags":["bookings"],"security":[{"bearer":["bookings:read"]}],"x-scope":"bookings:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"status":{"type":"string","nullable":true},"start_time":{"type":"string","format":"date-time","nullable":true},"engagement_type":{"type":"string","nullable":true},"private_location":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"booker_name":{"type":"string","nullable":true},"booker_is_business":{"type":"boolean","nullable":true},"timezone":{"type":"string","nullable":true},"deposit_paid_at":{"type":"string","format":"date-time","nullable":true},"venue_id":{"type":"string","format":"uuid","nullable":true},"venue_name":{"type":"string","nullable":true},"deposit_amount_cents":{"type":"integer","nullable":true},"agreed_fee_cents":{"type":"integer","nullable":true},"currency":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_booker_bookings":{"post":{"operationId":"get_booker_bookings","summary":"Bookings where the signed-in user is the BOOKER (or a manager of the booking venue), with the deposit and agreed fee on each.","description":"Bookings where the signed-in user is the BOOKER (or a manager of the booking venue), with the deposit and agreed fee on each.","tags":["bookings"],"security":[{"bearer":["bookings:read"]}],"x-scope":"bookings:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"status":{"type":"string","nullable":true},"start_time":{"type":"string","format":"date-time","nullable":true},"engagement_type":{"type":"string","nullable":true},"private_location":{"type":"string","nullable":true},"notes":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"artist_name":{"type":"string","nullable":true},"deposit_amount_cents":{"type":"integer","nullable":true},"timezone":{"type":"string","nullable":true},"deposit_paid_at":{"type":"string","format":"date-time","nullable":true},"venue_id":{"type":"string","format":"uuid","nullable":true},"venue_name":{"type":"string","nullable":true},"artist_phone":{"type":"string","nullable":true},"currency":{"type":"string","nullable":true},"agreed_fee_cents":{"type":"integer","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_booking_payment_details":{"post":{"operationId":"get_booking_payment_details","summary":"Read the payment state of a booking: deposit amount, what has been paid, and what has been released.","description":"Read the payment state of a booking: deposit amount, what has been paid, and what has been released.","tags":["bookings"],"security":[{"bearer":["bookings:read"]}],"x-scope":"bookings:read","x-read-only":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"p_booking_id":{"type":"string","format":"uuid"}},"required":["p_booking_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"deposit_amount_cents":{"type":"integer","nullable":true},"artist_name":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_listing_applications":{"post":{"operationId":"get_listing_applications","summary":"Who applied to a listing, with each applicant's public profile fields, indicative quote, distance, how they were invited, and the conversation if one is open. The listing's owner only.","description":"Who applied to a listing, with each applicant's public profile fields, indicative quote, distance, how they were invited, and the conversation if one is open. The listing's owner only.","tags":["listings"],"security":[{"bearer":["listings:read"]}],"x-scope":"listings:read","x-read-only":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"p_listing_id":{"type":"string","format":"uuid"}},"required":["p_listing_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"tenant_id":{"type":"string","format":"uuid","nullable":true},"status":{"type":"string","nullable":true},"pitch":{"type":"string","nullable":true},"quote_cents":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"name":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"country_code":{"type":"string","nullable":true},"home_city":{"type":"string","nullable":true},"act_type":{"type":"string","nullable":true},"genres":{"type":"array","items":{"type":"string"},"nullable":true},"photo_url":{"type":"string","nullable":true},"price_from_cents":{"type":"integer","nullable":true},"currency_code":{"type":"string","nullable":true},"verified_bookings":{"type":"integer","nullable":true},"distance_km":{"type":"number","nullable":true},"booking_id":{"type":"string","format":"uuid","nullable":true},"booking_status":{"type":"string","nullable":true},"invite_source":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_listing_invitees":{"post":{"operationId":"get_listing_invitees","summary":"Every act told about a listing and why, for its managers.","description":"Every act told about a listing and why, for its managers.","tags":["listings"],"security":[{"bearer":["listings:read"]}],"x-scope":"listings:read","x-read-only":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"p_listing_id":{"type":"string","format":"uuid"}},"required":["p_listing_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"tenant_id":{"type":"string","format":"uuid","nullable":true},"name":{"type":"string","nullable":true},"slug":{"type":"string","nullable":true},"country_code":{"type":"string","nullable":true},"source":{"type":"string","nullable":true},"notified_at":{"type":"string","format":"date-time","nullable":true},"application_status":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_my_booking_messages":{"post":{"operationId":"get_my_booking_messages","summary":"All messages on the signed-in user's bookings, for both the artist and booker sides.","description":"All messages on the signed-in user's bookings, for both the artist and booker sides.","tags":["bookings"],"security":[{"bearer":["bookings:read"]}],"x-scope":"bookings:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"booking_id":{"type":"string","format":"uuid","nullable":true},"id":{"type":"string","format":"uuid","nullable":true},"sender_id":{"type":"string","format":"uuid","nullable":true},"body":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"sender_name":{"type":"string","nullable":true},"sender_type":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_my_gigs":{"post":{"operationId":"get_my_gigs","summary":"The signed-in artist's gigs in a date window (default: from 30 days ago), with venue, status, listing state, fee and the two-party confirmation marks.","description":"The signed-in artist's gigs in a date window (default: from 30 days ago), with venue, status, listing state, fee and the two-party confirmation marks.","tags":["gigs"],"security":[{"bearer":["gigs:read"]}],"x-scope":"gigs:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"p_from":{"type":"string","format":"date-time"},"p_to":{"type":"string","format":"date-time"}},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"start_time":{"type":"string","format":"date-time","nullable":true},"end_time":{"type":"string","format":"date-time","nullable":true},"timezone":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"listing_state":{"type":"string","nullable":true},"engagement_type":{"type":"string","nullable":true},"is_public":{"type":"boolean","nullable":true},"fee":{"type":"number","nullable":true},"currency":{"type":"string","nullable":true},"venue_id":{"type":"string","format":"uuid","nullable":true},"venue_name":{"type":"string","nullable":true},"venue_locality":{"type":"string","nullable":true},"venue_admin_area":{"type":"string","nullable":true},"venue_country":{"type":"string","nullable":true},"private_location":{"type":"string","nullable":true},"series_id":{"type":"string","format":"uuid","nullable":true},"setlist_id":{"type":"string","format":"uuid","nullable":true},"notes":{"type":"string","nullable":true},"artist_confirmed_at":{"type":"string","format":"date-time","nullable":true},"venue_confirmed_at":{"type":"string","format":"date-time","nullable":true},"disputed_at":{"type":"string","format":"date-time","nullable":true},"dispute_reason":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_my_listing_matches":{"post":{"operationId":"get_my_listing_matches","summary":"Gigs wanted: open listings (venue or private booker) that match the signed-in artist or that they were invited to, plus any they applied to, with their application and conversation if any.","description":"Gigs wanted: open listings (venue or private booker) that match the signed-in artist or that they were invited to, plus any they applied to, with their application and conversation if any.","tags":["listings"],"security":[{"bearer":["listings:read"]}],"x-scope":"listings:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"venue_name":{"type":"string","nullable":true},"venue_slug":{"type":"string","nullable":true},"venue_country":{"type":"string","nullable":true},"venue_admin_area":{"type":"string","nullable":true},"venue_locality":{"type":"string","nullable":true},"booker_name":{"type":"string","nullable":true},"place_name":{"type":"string","nullable":true},"start_time":{"type":"string","format":"date-time","nullable":true},"end_time":{"type":"string","format":"date-time","nullable":true},"timezone":{"type":"string","nullable":true},"engagement_type":{"type":"string","nullable":true},"engagement_label":{"type":"string","nullable":true},"act_types":{"type":"array","items":{"type":"string"},"nullable":true},"genres":{"type":"array","items":{"type":"string"},"nullable":true},"budget_max_cents":{"type":"integer","nullable":true},"currency":{"type":"string","nullable":true},"brief":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"visibility":{"type":"string","nullable":true},"distance_km":{"type":"number","nullable":true},"application_id":{"type":"string","format":"uuid","nullable":true},"application_status":{"type":"string","nullable":true},"quote_cents":{"type":"integer","nullable":true},"applied_at":{"type":"string","format":"date-time","nullable":true},"booking_id":{"type":"string","format":"uuid","nullable":true},"invite_source":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_my_profile":{"post":{"operationId":"get_my_profile","summary":"The signed-in artist's own profile: handle, name, location (city and state — never coordinates), visibility, booking settings, pricing floor and the public metadata (photo, links, genres). Business number and verification state are deliberately excluded.","description":"The signed-in artist's own profile: handle, name, location (city and state — never coordinates), visibility, booking settings, pricing floor and the public metadata (photo, links, genres). Business number and verification state are deliberately excluded.","tags":["profile"],"security":[{"bearer":["profile:read"]}],"x-scope":"profile:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"slug":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"performer_type":{"type":"string","nullable":true},"country_code":{"type":"string","nullable":true},"home_city":{"type":"string","nullable":true},"home_admin_area":{"type":"string","nullable":true},"listed":{"type":"boolean","nullable":true},"published":{"type":"boolean","nullable":true},"is_global":{"type":"boolean","nullable":true},"bookings_enabled":{"type":"boolean","nullable":true},"deposit_type":{"type":"string","nullable":true},"deposit_value":{"type":"integer","nullable":true},"price_from_cents":{"type":"integer","nullable":true},"metadata":{"nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_my_series":{"post":{"operationId":"get_my_series","summary":"Recurring gig series the signed-in person owns — at venues they manage, or as the artist — with occurrence counts.","description":"Recurring gig series the signed-in person owns — at venues they manage, or as the artist — with occurrence counts.","tags":["gigs"],"security":[{"bearer":["gigs:read"]}],"x-scope":"gigs:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"venue_id":{"type":"string","format":"uuid","nullable":true},"venue_name":{"type":"string","nullable":true},"tenant_id":{"type":"string","format":"uuid","nullable":true},"artist_name":{"type":"string","nullable":true},"created_by_party":{"type":"string","nullable":true},"frequency":{"type":"string","nullable":true},"weekday":{"type":"integer","nullable":true},"week_of_month":{"type":"integer","nullable":true},"start_time":{"type":"string","nullable":true},"duration_min":{"type":"integer","nullable":true},"first_date":{"type":"string","format":"date","nullable":true},"last_date":{"type":"string","format":"date","nullable":true},"title":{"type":"string","nullable":true},"default_fee":{"type":"number","nullable":true},"engagement_type":{"type":"string","nullable":true},"is_public":{"type":"boolean","nullable":true},"status":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true},"occurrences":{"type":"integer","nullable":true},"upcoming":{"type":"integer","nullable":true},"fully_confirmed":{"type":"integer","nullable":true},"disputed":{"type":"integer","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_my_trusted_venues":{"post":{"operationId":"get_my_trusted_venues","summary":"Venues the signed-in artist has marked as trusted.","description":"Venues the signed-in artist has marked as trusted.","tags":["profile"],"security":[{"bearer":["profile:read"]}],"x-scope":"profile:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"name":{"type":"string","nullable":true},"address":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_my_venues":{"post":{"operationId":"get_my_venues","summary":"Venues the signed-in user manages.","description":"Venues the signed-in user manages.","tags":["venues"],"security":[{"bearer":["venues:read"]}],"x-scope":"venues:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"name":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_venue_listings":{"post":{"operationId":"get_venue_listings","summary":"The listings the signed-in person owns — at venues they manage, or posted as a booker — open first, with visibility, who was told, the winning booking's state and applicant / in-conversation counts.","description":"The listings the signed-in person owns — at venues they manage, or posted as a booker — open first, with visibility, who was told, the winning booking's state and applicant / in-conversation counts.","tags":["listings"],"security":[{"bearer":["listings:read"]}],"x-scope":"listings:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"venue_id":{"type":"string","format":"uuid","nullable":true},"venue_name":{"type":"string","nullable":true},"booker_id":{"type":"string","format":"uuid","nullable":true},"place_name":{"type":"string","nullable":true},"start_time":{"type":"string","format":"date-time","nullable":true},"end_time":{"type":"string","format":"date-time","nullable":true},"timezone":{"type":"string","nullable":true},"engagement_type":{"type":"string","nullable":true},"act_types":{"type":"array","items":{"type":"string"},"nullable":true},"genres":{"type":"array","items":{"type":"string"},"nullable":true},"budget_min_cents":{"type":"integer","nullable":true},"budget_max_cents":{"type":"integer","nullable":true},"currency":{"type":"string","nullable":true},"brief":{"type":"string","nullable":true},"status":{"type":"string","nullable":true},"visibility":{"type":"string","nullable":true},"notify_matches":{"type":"boolean","nullable":true},"booking_id":{"type":"string","format":"uuid","nullable":true},"booking_status":{"type":"string","nullable":true},"deposit_paid":{"type":"boolean","nullable":true},"notified_count":{"type":"integer","nullable":true},"invited_count":{"type":"integer","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"applications":{"type":"integer","nullable":true},"open_applications":{"type":"integer","nullable":true},"in_conversation":{"type":"integer","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_venue_manager_booker_trust":{"post":{"operationId":"get_venue_manager_booker_trust","summary":"Which bookers a venue's managers currently trust.","description":"Which bookers a venue's managers currently trust.","tags":["venues"],"security":[{"bearer":["venues:read"]}],"x-scope":"venues:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"venue_id":{"type":"string","format":"uuid","nullable":true},"granted_at":{"type":"string","format":"date-time","nullable":true},"booker_id":{"type":"string","format":"uuid","nullable":true},"booker_name":{"type":"string","nullable":true},"booker_is_business":{"type":"boolean","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_venue_manager_gigs":{"post":{"operationId":"get_venue_manager_gigs","summary":"Gigs at the venues the signed-in manager runs.","description":"Gigs at the venues the signed-in manager runs.","tags":["gigs"],"security":[{"bearer":["gigs:read"]}],"x-scope":"gigs:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"start_time":{"type":"string","format":"date-time","nullable":true},"end_time":{"type":"string","format":"date-time","nullable":true},"listing_state":{"type":"string","nullable":true},"dispute_reason":{"type":"string","nullable":true},"venue_confirmed_via":{"type":"string","nullable":true},"venue_id":{"type":"string","format":"uuid","nullable":true},"artist_name":{"type":"string","nullable":true},"performer_tenant_id":{"type":"string","format":"uuid","nullable":true},"performer_name":{"type":"string","nullable":true},"performer_slug":{"type":"string","nullable":true},"performer_country":{"type":"string","nullable":true},"timezone":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/get_venue_manager_trust":{"post":{"operationId":"get_venue_manager_trust","summary":"The trust relationships a venue's managers hold.","description":"The trust relationships a venue's managers hold.","tags":["venues"],"security":[{"bearer":["venues:read"]}],"x-scope":"venues:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","nullable":true},"venue_id":{"type":"string","format":"uuid","nullable":true},"scope":{"type":"string","nullable":true},"granted_at":{"type":"string","format":"date-time","nullable":true},"artist_tenant_id":{"type":"string","format":"uuid","nullable":true},"artist_name":{"type":"string","nullable":true},"artist_slug":{"type":"string","nullable":true},"artist_country":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/venue_attention":{"post":{"operationId":"venue_attention","summary":"Needs-your-attention counts for the signed-in venue manager: gigs to confirm, new applicants, deposits requested, unread thread messages, new enquiries.","description":"Needs-your-attention counts for the signed-in venue manager: gigs to confirm, new applicants, deposits requested, unread thread messages, new enquiries.","tags":["profile"],"security":[{"bearer":["profile:read"]}],"x-scope":"profile:read","x-read-only":true,"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","nullable":true},"count":{"type":"integer","nullable":true},"kind":{"type":"string","nullable":true}}}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/ops/venue_calendar":{"post":{"operationId":"venue_calendar","summary":"A venue's calendar for a date range, for its managers: gigs (confirmed and pending), the venue's own open bookings as ranked holds, and blackouts.","description":"A venue's calendar for a date range, for its managers: gigs (confirmed and pending), the venue's own open bookings as ranked holds, and blackouts.","tags":["gigs"],"security":[{"bearer":["gigs:read"]}],"x-scope":"gigs:read","x-read-only":true,"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"p_venue_id":{"type":"string","format":"uuid"},"p_from":{"type":"string","format":"date"},"p_to":{"type":"string","format":"date"}},"required":["p_venue_id","p_from","p_to"],"additionalProperties":false}}}},"responses":{"200":{"description":"The function's result.","content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object"}}}}}}},"400":{"description":"Invalid input.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing, unknown, revoked or expired token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token does not hold this operation's scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited (burst) or over today's cap.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","bearerFormat":"lrl_… personal access token","description":"Settings → API access in admin.gigload.com or admin.venueload.com."}},"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","enum":["unauthenticated","forbidden","invalid_input","not_found","conflict","rate_limited","unavailable","internal"]},"message":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}