{"openapi":"3.1.0","info":{"title":"Vabu OS API","version":"v1"},"servers":[{"url":"{baseUrl}","variables":{"baseUrl":{"default":"https://api.vabu.live","description":"Your Vabu OS API host"}}}],"paths":{"/build-info":{"get":{"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{},{"type":"object","properties":{"commit":{"type":"string","const":"unknown"},"build_date":{"type":"string","const":"unknown"},"version":{"type":"string","const":"unknown"},"error":{"type":"string","const":"BUILD_INFO file not found"}},"required":["commit","build_date","version","error"]}]}}}}}}},"/v1/status":{"get":{"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"ok"}},"required":["status"]}}}}}}},"/v1/access/check":{"post":{"operationId":"access.check","tags":["AccessCheck"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"allowed":{"type":"boolean"},"reason":{"type":["string","null"]},"entitlement":{"type":["object","null"],"additionalProperties":{}}},"required":["allowed","reason","entitlement"]}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/access/sessions":{"post":{"operationId":"access.sessions.store","tags":["AccessSessions"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenSessionRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"access_session"},"entitlement":{"type":"string"},"customer":{"type":["string","null"]},"contact_hash":{"type":["string","null"]},"resource":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"variant":{"type":["string","null"]}},"required":["type","id","variant"]},"device_id":{"type":"string"},"state":{"type":"string"},"expires_at":{"type":"string"},"heartbeat_interval":{"type":"integer"},"grant":{"type":"string"}},"required":["id","object","entitlement","customer","contact_hash","resource","device_id","state","expires_at","heartbeat_interval","grant"]}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/access/sessions/{id}/heartbeat":{"post":{"operationId":"access.sessions.heartbeat","tags":["AccessSessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubjectRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"access_session"},"entitlement":{"type":"string"},"customer":{"type":["string","null"]},"contact_hash":{"type":["string","null"]},"resource":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"variant":{"type":["string","null"]}},"required":["type","id","variant"]},"device_id":{"type":"string"},"state":{"type":"string"},"expires_at":{"type":"string"},"heartbeat_interval":{"type":"integer"},"grant":{"type":"string"}},"required":["id","object","entitlement","customer","contact_hash","resource","device_id","state","expires_at","heartbeat_interval","grant"]}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/access/sessions/{id}":{"delete":{"operationId":"access.sessions.destroy","tags":["AccessSessions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"customer","in":"query","schema":{"type":"string","maxLength":255}},{"name":"contact_hash","in":"query","schema":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"access_session"},"entitlement":{"type":"string"},"customer":{"type":["string","null"]},"contact_hash":{"type":["string","null"]},"resource":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"variant":{"type":["string","null"]}},"required":["type","id","variant"]},"device_id":{"type":"string"},"state":{"type":"string"},"expires_at":{"type":"string"},"heartbeat_interval":{"type":"integer"},"grant":{"type":"string"}},"required":["id","object","entitlement","customer","contact_hash","resource","device_id","state","expires_at","heartbeat_interval","grant"]}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/activity/feed":{"get":{"operationId":"activity.feed","summary":"Get activity feed with optional filters","tags":["ActivityFeed"],"parameters":[{"name":"type","in":"query","schema":{"type":["string","null"],"enum":["purchases","events","all",null]}},{"name":"tenant_slug","in":"query","schema":{"type":["string","null"],"maxLength":50}},{"name":"organization_slug","in":"query","schema":{"type":["string","null"],"maxLength":50}},{"name":"event_slug","in":"query","schema":{"type":["string","null"],"maxLength":50}},{"name":"limit","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":50}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ActivityFeed"}},"meta":{"type":"object","properties":{"has_more":{"type":"boolean"},"cursor":{"type":["string","null"]}},"required":["has_more","cursor"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/analytics":{"get":{"operationId":"analytics.index","description":"Get analytics overview for the organizer: revenue, ticket sales, traffic, top events.\n\n`total_revenue`, `sales_trend` and each top event `revenue` are only returned to org Owners, Admins and platform admins.","summary":"GET /organizer/analytics","tags":["Analytics"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","default":"30d"}},{"name":"compare","in":"query","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"stats":{"type":"object","properties":{"total_revenue":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":"string"},"change_percentage":{"type":["number","null"]}},"required":["value","currency","change_percentage"]},"tickets_sold":{"type":"object","properties":{"value":{"type":"integer"},"change_percentage":{"type":["number","null"]}},"required":["value","change_percentage"]},"page_views":{"type":"object","properties":{"value":{"type":"integer"},"change_percentage":{"type":["number","null"]}},"required":["value","change_percentage"]},"conversion_rate":{"type":"object","properties":{"value":{"type":"number"},"change_percentage":{"type":["number","null"]}},"required":["value","change_percentage"]}},"required":["tickets_sold","page_views","conversion_rate"]},"sales_trend":{"type":"object","properties":{"labels":{"type":"array","items":{"type":"string"}},"data":{"type":"array","items":{"type":"integer"}}},"required":["labels","data"]},"traffic_sources":{"type":"array","items":{"type":"string"}},"top_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"tickets_sold":{"type":"integer"},"revenue":{"type":"number"},"conversion_rate":{"type":"integer"}},"required":["id","name","tickets_sold","conversion_rate"]}}},"required":["stats","traffic_sources","top_events"]},"meta":{"type":"object","properties":{"generated_at":{"type":"string"},"period":{"type":"string"},"cache_ttl_seconds":{"type":"integer"}},"required":["generated_at","period","cache_ttl_seconds"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/analytics/revenue":{"get":{"operationId":"analytics.revenue","summary":"GET /organizer/analytics/revenue","tags":["Analytics"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"revenue":{"type":"number"},"currency":{"type":"string","const":"KES"}},"required":["date","revenue","currency"]}},"meta":{"type":"object","description":"Server-side rollup so KPI tiles don't .reduce() the series.","properties":{"range":{"type":"string"},"period":{"type":"string"},"total_revenue":{"type":"number"}},"required":["range","period","total_revenue"]}},"required":["data","meta"]},{"type":"object","properties":{"data":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0},"meta":{"type":"object","properties":{"range":{"type":"string"},"period":{"type":"string"},"total_revenue":{"type":"integer"}},"required":["range","period","total_revenue"]}},"required":["data","meta"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/analytics/tickets":{"get":{"operationId":"analytics.tickets","summary":"GET /organizer/analytics/tickets","tags":["Analytics"],"parameters":[{"name":"event_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"tickets_sold":{"type":"integer"}},"required":["date","tickets_sold"]}},"meta":{"type":"object","properties":{"range":{"type":"string"},"period":{"type":"string"},"total_tickets":{"type":"integer"}},"required":["range","period","total_tickets"]}},"required":["data","meta"]},{"type":"object","properties":{"data":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0},"meta":{"type":"object","properties":{"range":{"type":"string"},"period":{"type":"string"},"total_tickets":{"type":"integer"}},"required":["range","period","total_tickets"]}},"required":["data","meta"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/analytics/events":{"get":{"operationId":"analytics.events","description":"`revenue` is only returned to org Owners, Admins and platform admins.","summary":"GET /organizer/analytics/events","tags":["Analytics"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"event_id":{"type":"string"},"event_name":{"type":"string"},"slug":{"type":"string"},"status":{"$ref":"#/components/schemas/EventStatus"},"tickets_sold":{"type":"integer"},"capacity":{"type":"integer"},"utilization_pct":{"type":"number"},"revenue":{"type":"number"},"currency":{"type":"string"},"checkin_rate_pct":{"type":"number"}},"required":["event_id","event_name","slug","status","tickets_sold","capacity","utilization_pct","currency","checkin_rate_pct"]}},"meta":{"type":"object","properties":{"total_events":{"type":"integer"},"limit":{"type":"integer"},"sort":{"type":"string"}},"required":["total_events","limit","sort"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/analytics/audience":{"get":{"operationId":"analytics.audience","summary":"GET /organizer/analytics/audience","tags":["Analytics"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"ticket_types":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"count":{"type":"integer"},"percentage":{"type":"number"}},"required":["name","count","percentage"]}},"avg_ticket_price":{"type":"number"},"currency":{"type":"string","const":"KES"},"total_unique_attendees":{"type":"integer"},"repeat_attendees":{"type":"integer"}},"required":["ticket_types","avg_ticket_price","currency","total_unique_attendees","repeat_attendees"]}},"required":["data"]},{"type":"object","properties":{"data":{"type":"object","properties":{"ticket_types":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0},"avg_ticket_price":{"type":"integer"},"currency":{"type":"string","const":"KES"},"total_unique_attendees":{"type":"integer"},"repeat_attendees":{"type":"integer"}},"required":["ticket_types","avg_ticket_price","currency","total_unique_attendees","repeat_attendees"]}},"required":["data"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/analytics/conversions":{"get":{"operationId":"analytics.conversions","summary":"GET /organizer/analytics/conversions","tags":["Analytics"],"parameters":[{"name":"event_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"page_views":{"type":"integer"},"unique_visitors":{"type":"integer"},"orders":{"type":"integer"},"conversion_rate_pct":{"type":"integer"},"coupon_usage":{"type":"object","properties":{"total_uses":{"type":"integer"},"total_discount":{"type":"number"},"orders_with_coupon":{"type":"integer"},"top_coupons":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"uses":{"type":"integer"},"discount_total":{"type":"number"}},"required":["code","uses","discount_total"]}}},"required":["total_uses","total_discount","orders_with_coupon","top_coupons"]}},"required":["page_views","unique_visitors","orders","conversion_rate_pct","coupon_usage"]}},"required":["data"]},{"type":"object","properties":{"data":{"type":"object","properties":{"page_views":{"type":"integer"},"unique_visitors":{"type":"integer"},"orders":{"type":"integer"},"conversion_rate_pct":{"type":"integer"},"coupon_usage":{"type":"object","properties":{"total_uses":{"type":"integer"},"total_discount":{"type":"integer"},"orders_with_coupon":{"type":"integer"},"top_coupons":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}},"required":["total_uses","total_discount","orders_with_coupon","top_coupons"]}},"required":["page_views","unique_visitors","orders","conversion_rate_pct","coupon_usage"]}},"required":["data"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/keys":{"get":{"operationId":"keys.index","tags":["ApiKeys"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApiKeyResource"}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"current_page":{"type":"string"},"total_pages":{"type":"string"},"per_page":{"type":"string"},"total":{"type":"string"}},"required":["current_page","total_pages","per_page","total"]}},"required":["pagination"]}},"required":["data","meta"]}}}}}},"post":{"operationId":"keys.store","tags":["ApiKeys"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreApiKeyRequest"}}}},"responses":{"201":{"description":"`ApiKeyResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ApiKeyResource"}},"required":["data"]}}}},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/keys/{id}":{"get":{"operationId":"keys.show","tags":["ApiKeys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`ApiKeyResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/ApiKeyResource"}},"required":["data"]}}}}}},"delete":{"operationId":"keys.destroy","tags":["ApiKeys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/v1/keys/{id}/roll":{"post":{"operationId":"keys.roll","tags":["ApiKeys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"expires_in_seconds":{"type":"integer","minimum":0,"maximum":604800}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/plus/approvals":{"get":{"operationId":"approvals.index","tags":["Approvals"],"parameters":[{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated set of `TenantAdminContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/TenantAdminContentResource"},{"type":"object","required":["trailer","items","organization"]}]}},"links":{"type":"object","properties":{"first":{"type":"string"},"last":{"type":"string"},"prev":{"type":["string","null"]},"next":{"type":"string"}},"required":["first","last","prev","next"]},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"from":{"type":["integer","null"]},"last_page":{"type":"string"},"links":{"type":"object","additionalProperties":{}},"path":{"type":["string","null"]},"per_page":{"type":"integer"},"to":{"type":["integer","null"]},"total":{"type":"string"}},"required":["current_page","from","last_page","links","path","per_page","to","total"]}},"required":["data","links","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/plus/approvals/{content}":{"get":{"operationId":"approvals.show","tags":["Approvals"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`TenantAdminContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/TenantAdminContentResource"},{"type":"object","required":["trailer","items","approvals","organization"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/tenant/admin/plus/approvals/{content}/approve":{"post":{"operationId":"approvals.approve","tags":["Approvals"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApproveContentRequest"}}}},"responses":{"200":{"description":"`TenantAdminContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/TenantAdminContentResource"},{"type":"object","required":["trailer","items","approvals"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/plus/approvals/{content}/reject":{"post":{"operationId":"approvals.reject","tags":["Approvals"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RejectContentRequest"}}}},"responses":{"200":{"description":"`TenantAdminContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TenantAdminContentResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/plus/approvals/{content}/request-changes":{"post":{"operationId":"approvals.requestChanges","tags":["Approvals"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestChangesRequest"}}}},"responses":{"200":{"description":"`TenantAdminContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TenantAdminContentResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/plus/contents/{content}/publish":{"post":{"operationId":"approvals.publish","summary":"Force-publish a previously approved content (in case auto-publish did not fire).\nStandard approval flow uses PublishContentOnApproved listener","tags":["Approvals"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`TenantAdminContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TenantAdminContentResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"Only approved content can be published."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/streams/assets":{"get":{"operationId":"streams.assets.index","tags":["Assets"],"parameters":[{"name":"metadata","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"operationId":"streams.assets.store","summary":"Create an asset from a public URL","tags":["Assets"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","format":"uri","maxLength":2048},"playback_policy":{"type":"string","enum":["public","signed"]},"generated_subtitles":{"type":"string","pattern":"^[a-z]{2}(-[A-Z]{2})?$"},"metadata":{"type":["string","null"]},"external_id":{"type":["string","null"],"maxLength":255}},"required":["url"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/streams/assets/{id}":{"get":{"operationId":"streams.assets.show","tags":["Assets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}},"patch":{"operationId":"streams.assets.update","summary":"Change `metadata` or `external_id`","tags":["Assets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"streams.assets.destroy","tags":["Assets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/streams/assets/{id}/moments":{"get":{"operationId":"streams.assets.moments","summary":"The moments that fall inside a recording of a live stream, with their offset in seconds from the\nstart of the recording: chapters for a replay. Cancelled moments are left out. Paginated like every list, newest saved\nfirst; order chapters by `offset_s`","tags":["Assets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"array","items":{"type":"array","items":{}}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"limit":{"type":"integer"},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]},"prev_cursor":{"type":["string","null"]}},"required":["limit","has_more","next_cursor","prev_cursor"]}},"required":["pagination"]}},"required":["data","meta"]},{"type":"object","properties":{"data":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}},"required":["data"]}]}}}}}}},"/v1/streams/assets/{id}/clips":{"post":{"operationId":"streams.assets.clips.store","summary":"Cut a clip from a ready asset by relative time in seconds","tags":["Assets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"start_time":{"type":"number","minimum":0},"end_time":{"type":"number"},"playback_policy":{"type":"string","enum":["public","signed"]},"generated_subtitles":{"type":"string","pattern":"^[a-z]{2}(-[A-Z]{2})?$"},"aspect":{"type":"string","enum":["9:16"]}},"required":["start_time","end_time"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/streams/clips/{id}":{"get":{"operationId":"streams.clips.show","tags":["Assets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/attendee/dashboard":{"get":{"operationId":"attendeeDashboard.index","summary":"GET /attendee/dashboard","tags":["AttendeeDashboard"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"upcoming_events":{"type":"integer"},"past_events":{"type":"integer"},"active_tickets":{"type":"integer"},"total_spent":{"type":"number"},"currency":{"type":"string","const":"KES"}},"required":["upcoming_events","past_events","active_tickets","total_spent","currency"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/events/{event}/attendees":{"get":{"operationId":"attendees.index","description":"List attendees for an event with cursor pagination.","summary":"GET /organizer/events/{event}/attendees","tags":["Attendees"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerAttendeeResource"}},"meta":{"type":"object","properties":{"next_cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"limit":{}},"required":["next_cursor","has_more","limit"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"pending":{"type":"integer","minimum":0},"confirmed":{"type":"integer","minimum":0},"cancelled":{"type":"integer","minimum":0}},"required":["all","pending","confirmed","cancelled"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"attendees.store","description":"Manually add an attendee (comped ticket).","summary":"POST /organizer/events/{event}/attendees","tags":["Attendees"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":20},"ticket_type_id":{"type":"string","format":"uuid"},"send_invite":{"type":["boolean","null"]}},"required":["first_name","last_name","email","ticket_type_id"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"confirmed"},"invite_status":{"type":"string","const":"queued"},"ticket_delivery_status":{"type":"string","const":"queued"}},"required":["id","status","invite_status","ticket_delivery_status"]}},"required":["data"]}}}},"400":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_TICKET"},"message":{"type":"string","const":"This ticket type isn't available for this event."}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/attendees/export":{"get":{"operationId":"attendees.export","description":"Export attendees as a CSV download.","summary":"GET /organizer/events/{event}/attendees/export","tags":["Attendees"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"format","in":"query","schema":{"type":"string","default":"csv"}}],"responses":{"200":{"description":"","content":{"text/csv":{"schema":{"type":"string"}}},"headers":{"Transfer-Encoding":{"required":true,"schema":{"type":"string","enum":["chunked"]}}}},"400":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_FORMAT"},"message":{"type":"string","const":"Only CSV format is supported at this time."}},"required":["code","message"]}},"required":["error"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/events/{event}/attendees/{attendee}":{"get":{"operationId":"attendees.show","description":"Get attendee details for organizer management.","summary":"GET /organizer/events/{event}/attendees/{attendee}","tags":["Attendees"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"attendee","in":"path","required":true,"description":"The attendee ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerAttendeeDetailResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/events/{event}/attendees/{attendee}/approve":{"post":{"operationId":"attendees.approve","tags":["Attendees"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"attendee","in":"path","required":true,"description":"The attendee ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerAttendeeDetailResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_STATE"},"message":{"type":"string","const":"This attendee has already been rejected."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"PAYMENT_PENDING"},"message":{"type":"string","const":"Payment must be completed before this attendee can be reviewed."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/events/{event}/attendees/{attendee}/reject":{"post":{"operationId":"attendees.reject","tags":["Attendees"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"attendee","in":"path","required":true,"description":"The attendee ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":["string","null"],"maxLength":1000}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerAttendeeDetailResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_STATE"},"message":{"type":"string","const":"This attendee has already been approved."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/attendees/{attendee}/resend":{"post":{"operationId":"attendees.resend","description":"Resend attendee ticket notification.","summary":"POST /organizer/events/{event}/attendees/{attendee}/resend","tags":["Attendees"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"attendee","in":"path","required":true,"description":"The attendee ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"sent":{"type":"boolean"}},"required":["sent"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"This attendee doesn't have an email address on file. We need one to resend the ticket."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"This attendee is still pending approval, so there is no ticket to resend yet."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"This attendee's ticket has been cancelled, so we can't resend it."}},"required":["code","message"]}},"required":["error"]}]}}}},"429":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"TOO_MANY_REQUESTS"},"message":{"type":"string","const":"A ticket was just resent to this attendee. Please wait a few minutes before trying again."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/events/{event}/book/payload":{"get":{"operationId":"booking.payload","tags":["Booking"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"ticket_id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"quantity","in":"query","required":true,"schema":{"type":"integer","minimum":1}},{"name":"event_slot_id","in":"query","schema":{"type":["string","null"],"format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"ticket":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"pricing_mode":{"type":"string","enum":["name_your_price","fixed"]},"price":{"type":["number","null"]},"flexipay_min_price":{"type":["number","null"]},"flexipay_max_price":{"type":["number","null"]},"allow_pay_later":{"type":"boolean"}},"required":["id","name","pricing_mode","price","flexipay_min_price","flexipay_max_price","allow_pay_later"]},"quantity":{"type":"integer"},"attendee_slots":{"type":"number"},"attendee_fields":{"type":"array","prefixItems":[{"type":"object","properties":{"name":{"type":"string","const":"first_name"},"label":{"type":"string","const":"First Name"},"type":{"type":"string","const":"text"},"required":{"type":"boolean"}},"required":["name","label","type","required"]},{"type":"object","properties":{"name":{"type":"string","const":"last_name"},"label":{"type":"string","const":"Last Name"},"type":{"type":"string","const":"text"},"required":{"type":"boolean"}},"required":["name","label","type","required"]},{"type":"object","properties":{"name":{"type":"string","const":"email"},"label":{"type":"string","const":"Email"},"type":{"type":"string","const":"email"},"required":{"type":"boolean"}},"required":["name","label","type","required"]},{"type":"object","properties":{"name":{"type":"string","const":"phone"},"label":{"type":"string","const":"Phone"},"type":{"type":"string","const":"text"},"required":{"type":"boolean"}},"required":["name","label","type","required"]}],"minItems":4,"maxItems":4},"extra_fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"required":{"type":"boolean"},"options":{"type":"array","items":{}}},"required":["id","name","type","required","options"]}},"supports_coupon":{"type":"boolean"},"bookable":{"type":"boolean"},"bookable_reason":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"]},"sale_window":{"type":"object","properties":{"start_sale_at":{"type":["string","null"]},"end_sale_at":{"type":["string","null"]}},"required":["start_sale_at","end_sale_at"]},"expected_payload":{"type":"object","properties":{"ticket_id":{"type":"string"},"event_slot_id":{"type":["string","null"]},"quantity":{"type":"integer"},"buyer_name":{"type":"string","const":"John Doe"},"buyer_email":{"type":"string","const":"john.doe@example.com"},"buyer_phone":{"type":"string","const":"+254700000000"},"redirect_url":{"type":"string","const":"https://example.com/return"},"coupon_code":{"type":"string","const":"OPTIONAL"},"attendees":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":"string","enum":["John","Jane"]},"last_name":{"type":"string","enum":["Doe0","Doe"]},"email":{"type":"string"},"phone":{"type":"string"},"extra_data":{"type":"string"}},"required":["first_name","last_name","email","phone","extra_data"]}}},"required":["ticket_id","event_slot_id","quantity","buyer_name","buyer_email","buyer_phone","redirect_url","coupon_code","attendees"]}},"required":["ticket","quantity","attendee_slots","attendee_fields","extra_fields","supports_coupon","bookable","bookable_reason","sale_window","expected_payload"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/events/{event}/book":{"post":{"operationId":"booking.store","tags":["Booking"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BookingStoreRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"booking":{"$ref":"#/components/schemas/Booking"},"payment":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}]}},"required":["booking","payment"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/bookings/{code}":{"get":{"operationId":"booking.show","tags":["Booking"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Booking"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/events/booking/pay-later/fixed/{code}":{"post":{"operationId":"bookingCallback.bookingPayLaterFixedCallback","tags":["BookingCallback"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"paid":{"type":"string"}},"required":["status","paid"]}}}}}}},"/v1/events/booking/pay-later/open/{code}":{"post":{"operationId":"bookingCallback.bookingPayLaterOpenCallback","tags":["BookingCallback"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"},"paid":{"type":"string"}},"required":["status","paid"]}}}}}}},"/v1/creator/orgs/{org}/capsule-profile":{"get":{"operationId":"capsuleProfile.show","tags":["CapsuleProfile"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"organization_id":{"type":"string"},"capsule_id":{"type":"string"},"name":{"type":"string"},"handle":{"type":"string"},"avatar_url":{"type":["string","null"]},"cover_url":{"type":["string","null"]},"profile":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}]},"public_capsule_url":{"type":"string"},"is_public":{"type":"boolean"},"readiness":{"type":"object","properties":{"score":{"type":"integer"},"status":{"type":"string","enum":["strong","shareable","draft"]},"public_capsule_url":{"type":"string"},"completed_items":{"type":"array","items":{"type":"string","enum":["name","handle","bio","avatar","cover","contact","links","audience_enabled"]}},"missing_items":{"type":"array","items":{"type":"string","enum":["name","handle","bio","avatar","cover","contact","links","audience_enabled"]}},"warnings":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0},"share_blockers":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}},"required":["score","status","public_capsule_url","completed_items","missing_items","warnings","share_blockers"]}},"required":["organization_id","capsule_id","name","handle","avatar_url","cover_url","profile","public_capsule_url","is_public","readiness"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"patch":{"operationId":"capsuleProfile.update","tags":["CapsuleProfile"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"tagline":{"type":["string","null"],"maxLength":160},"bio":{"type":["string","null"]},"creator_type":{"type":["string","null"],"maxLength":80},"category":{"type":["string","null"],"maxLength":80},"hero_media":{"type":["array","null"],"items":{"type":"string"}},"links":{"type":["array","null"],"items":{"type":"string"}},"external_storefront_url":{"type":["string","null"],"format":"uri"},"join_enabled":{"type":["boolean","null"]},"subscription_enabled":{"type":["boolean","null"]},"is_public":{"type":["boolean","null"]}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"organization_id":{"type":"string"},"capsule_id":{"type":"string"},"name":{"type":"string"},"handle":{"type":"string"},"avatar_url":{"type":["string","null"]},"cover_url":{"type":["string","null"]},"profile":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}]},"public_capsule_url":{"type":"string"},"is_public":{"type":"boolean"},"readiness":{"type":"object","properties":{"score":{"type":"integer"},"status":{"type":"string","enum":["strong","shareable","draft"]},"public_capsule_url":{"type":"string"},"completed_items":{"type":"array","items":{"type":"string","enum":["name","handle","bio","avatar","cover","contact","links","audience_enabled"]}},"missing_items":{"type":"array","items":{"type":"string","enum":["name","handle","bio","avatar","cover","contact","links","audience_enabled"]}},"warnings":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0},"share_blockers":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}},"required":["score","status","public_capsule_url","completed_items","missing_items","warnings","share_blockers"]}},"required":["organization_id","capsule_id","name","handle","avatar_url","cover_url","profile","public_capsule_url","is_public","readiness"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/{org}/readiness":{"get":{"operationId":"capsuleProfile.readiness","tags":["CapsuleProfile"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"score":{"type":"integer"},"status":{"type":"string","enum":["strong","shareable","draft"]},"public_capsule_url":{"type":"string"},"completed_items":{"type":"array","items":{"type":"string","enum":["name","handle","bio","avatar","cover","contact","links","audience_enabled"]}},"missing_items":{"type":"array","items":{"type":"string","enum":["name","handle","bio","avatar","cover","contact","links","audience_enabled"]}},"warnings":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0},"share_blockers":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}},"required":["score","status","public_capsule_url","completed_items","missing_items","warnings","share_blockers"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/public/capsules/{slug}":{"get":{"operationId":"capsules.show","tags":["Capsules"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"capsule":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"handle":{"type":"string"},"bio":{"type":["string","null"]},"tagline":{"type":["string","null"]},"creator_type":{"type":["string","null"]},"category":{"type":["string","null"]},"avatar_url":{"type":["string","null"]},"cover_url":{"type":["string","null"]},"hero_media":{"type":["string","null"]},"public_url":{"type":"string"}},"required":["id","name","slug","handle","bio","tagline","creator_type","category","avatar_url","cover_url","hero_media","public_url"]},"stats":{"type":"object","properties":{"audience_count":{"type":"integer"},"drops_count":{"type":"integer","minimum":0},"videos_count":{"type":"integer","minimum":0},"live_count":{"type":"integer","minimum":0},"posts_count":{"type":"integer"},"merch_count":{"type":"integer"}},"required":["audience_count","drops_count","videos_count","live_count","posts_count","merch_count"]},"viewer_state":{"type":"object","properties":{"is_following":{"type":"boolean"},"is_subscribed":{"type":"boolean"},"subscription_plan_id":{"type":"null"},"joined_at":{"type":"null"}},"required":["is_following","is_subscribed","subscription_plan_id","joined_at"]},"featured":{"type":"object","properties":{"drops":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PublicContentResource"},{"type":"object","required":["organization"]}]}},"latest_post":{"type":"null"},"upcoming_live":{"type":"array","items":{"$ref":"#/components/schemas/PublicEventResource"}},"merch":{"type":"null"}},"required":["drops","latest_post","upcoming_live","merch"]},"links":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"label":{"type":"string"},"url":{}},"required":["type","label","url"]}},"availability":{"type":"object","properties":{"has_public_drops":{"type":"boolean"},"has_public_posts":{"type":"boolean"},"has_merch":{"type":"boolean"},"external_storefront_url":{"type":["string","null"]},"join_enabled":{"type":"boolean"},"subscription_enabled":{"type":"boolean"}},"required":["has_public_drops","has_public_posts","has_merch","external_storefront_url","join_enabled","subscription_enabled"]},"social_proof":{"type":"object","properties":{"audience_count":{"type":"integer"}},"required":["audience_count"]}},"required":["capsule","stats","viewer_state","featured","links","availability","social_proof"]}},"required":["data"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this Capsule. It may have been removed or the link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/public/capsules/{slug}/drops":{"get":{"operationId":"capsules.drops","tags":["Capsules"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}},{"name":"search","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PublicContentResource"},{"type":"object","required":["organization"]}]}},"meta":{"type":"object","properties":{"current_page":{"type":["integer","string"]},"per_page":{"type":["integer","string"]},"total_count":{"type":["integer","string"]},"total_pages":{"type":["integer","string"]}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0}},"required":["all"]}},"required":["data","meta","summary"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this Capsule. It may have been removed or the link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/public/capsules/{slug}/posts":{"get":{"operationId":"capsules.posts","tags":["Capsules"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrgPost"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"published":{"type":"integer","minimum":0}},"required":["published"]}},"required":["data","meta","summary"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this Capsule. It may have been removed or the link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/events/{event}/check-in":{"post":{"operationId":"checkIn.store","description":"Check in an attendee by code or QR scan.","summary":"POST /organizer/events/{event}/check-in","tags":["CheckIn"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","maxLength":2048}},"required":["code"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/check-in/stats":{"get":{"operationId":"checkIn.stats","description":"Get check-in statistics for an event.","summary":"GET /organizer/events/{event}/check-in/stats","tags":["CheckIn"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"total_attendees":{"type":"integer","minimum":0},"checked_in":{"type":"integer","minimum":0},"not_checked_in":{"type":"integer"},"check_in_rate":{"type":"number"},"by_ticket_type":{"type":"array","items":{"type":"object","properties":{"ticket_type_id":{"type":"string"},"ticket_type_name":{"type":"string"},"total":{"type":"integer","minimum":0},"checked_in":{"type":"integer","minimum":0},"rate":{"type":"number"}},"required":["ticket_type_id","ticket_type_name","total","checked_in","rate"]}}},"required":["total_attendees","checked_in","not_checked_in","check_in_rate","by_ticket_type"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/events/{event}/check-in/{attendeeId}/undo":{"post":{"operationId":"checkIn.undo","description":"Undo a check-in.","summary":"POST /organizer/events/{event}/check-in/{attendeeId}/undo","tags":["CheckIn"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"attendeeId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_CHECKED_IN"},"message":{"type":"string","const":"This person hasn't been checked in yet, so there's nothing to undo."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/communications/preview-render":{"post":{"operationId":"communicationPreview.previewRender","summary":"POST /api/v1/organizer/communications/preview-render","tags":["CommunicationPreview"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewRenderRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"channel":{"type":"string","const":"sms"},"rendered_text":{"type":"string"},"sender_id":{"type":"string"},"total_characters":{"type":"integer"},"segments":{"type":"integer"}},"required":["channel","rendered_text","sender_id","total_characters","segments"]}},"required":["data"]},{"type":"object","properties":{"data":{"type":"object","properties":{"channel":{"type":"string","const":"email"},"rendered_html":{"type":"string"},"sender_name":{"anyOf":[{"type":"string"},{"type":"string","enum":["Vabu"]}]},"sender_email":{"anyOf":[{"type":"string"},{"type":"string","enum":["noreply@vabu.app"]}]},"subject":{"anyOf":[{"type":"string"},{"type":"null"},{"type":"string","enum":["Preview"]}]}},"required":["channel","rendered_html","sender_name","sender_email","subject"]}},"required":["data"]},{"type":"object","properties":{"data":{"type":"object","properties":{"channel":{"type":"string","const":"whatsapp"},"rendered_text":{"type":"string"},"template_name":{"type":"string","const":"community_blast_v1"},"template_params":{"type":"array","prefixItems":[{"type":"string"},{"type":["array","string","object"]}],"minItems":2,"maxItems":2},"sender_name":{"type":"string"},"sender_avatar_url":{"type":["string","null"]}},"required":["channel","rendered_text","template_name","template_params","sender_name","sender_avatar_url"]}},"required":["data"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"EVENT_NOT_FOUND"},"message":{"type":"string","const":"Event not found."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/plus/contents/{content}/items":{"get":{"operationId":"contentItems.index","tags":["ContentItems"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"Array of `OrganizerContentItemResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerContentItemResource"}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"contentItems.store","tags":["ContentItems"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreContentItemRequest"}}}},"responses":{"201":{"description":"`OrganizerContentItemResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerContentItemResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/plus/contents/{content}/items/reorder":{"post":{"operationId":"contentItems.reorder","tags":["ContentItems"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReorderContentItemsRequest"}}}},"responses":{"200":{"description":"Array of `OrganizerContentItemResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerContentItemResource"}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/plus/contents/{content}/items/{item}":{"get":{"operationId":"contentItems.show","tags":["ContentItems"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}},{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"`OrganizerContentItemResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerContentItemResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"put":{"operationId":"contentItems.update","tags":["ContentItems"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}},{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContentItemRequest"}}}},"responses":{"200":{"description":"`OrganizerContentItemResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerContentItemResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"contentItems.destroy","tags":["ContentItems"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}},{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"This episode has been purchased and cannot be deleted."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"Use the trailer endpoint to remove the trailer."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/organizer/plus/contents":{"get":{"operationId":"contents.index","tags":["Contents"],"parameters":[{"name":"status","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}},{"name":"search","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/OrganizerContentResource"},{"type":"object","required":["trailer","organization"]}]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"draft":{"type":"integer","minimum":0},"processing":{"type":"integer","minimum":0},"pending_approval":{"type":"integer","minimum":0},"approved":{"type":"integer","minimum":0},"published":{"type":"integer","minimum":0},"live":{"type":"integer","minimum":0},"ended":{"type":"integer","minimum":0},"rejected":{"type":"integer","minimum":0},"retired":{"type":"integer","minimum":0}},"required":["all","draft","processing","pending_approval","approved","published","live","ended","rejected","retired"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"post":{"operationId":"contents.store","tags":["Contents"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/StoreContentRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/plus/contents/{content}":{"get":{"operationId":"contents.show","tags":["Contents"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`OrganizerContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/OrganizerContentResource"},{"type":"object","required":["trailer","items","organization"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"put":{"operationId":"contents.update","tags":["Contents"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UpdateContentRequest"}}}},"responses":{"200":{"description":"`OrganizerContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerContentResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"contents.destroy","tags":["Contents"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"Only draft, rejected, or retired content can be deleted."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/plus/contents/{content}/request-approval":{"post":{"operationId":"contents.requestApproval","tags":["Contents"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RequestApprovalRequest"}}}},"responses":{"200":{"description":"`OrganizerContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/OrganizerContentResource"},{"type":"object","required":["trailer","items"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/plus/contents/{content}/retire":{"post":{"operationId":"contents.retire","tags":["Contents"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string"}}}}}},"responses":{"200":{"description":"`OrganizerContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerContentResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/coupons/validate":{"post":{"operationId":"coupons.validate","description":"Validate a coupon code for an event.","summary":"POST /coupons/validate","tags":["Coupons"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateCouponRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CouponValidationResource"}},"required":["data"]},{"type":"string"}]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"EVENT_NOT_FOUND"},"message":{"type":"string","const":"This event is no longer available."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/credits/balance":{"get":{"operationId":"credit.balance","summary":"GET /api/v1/organizer/credits/balance","tags":["Credit"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"balance_kes":{"type":"number"},"currency":{"type":"string"},"low_balance_threshold_kes":{"type":"number"}},"required":["balance_kes","currency","low_balance_threshold_kes"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/credits/estimate":{"post":{"operationId":"credit.estimate","summary":"POST /api/v1/organizer/credits/estimate","tags":["Credit"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateBlastCostRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"channel":{"type":"string"},"recipient_count":{"type":"integer"},"segments_per_recipient":{"type":"integer"},"unit_cost_kes":{"type":"number"},"total_cost_kes":{"type":"number"},"current_balance_kes":{"type":"number"},"sufficient_balance":{"type":"boolean"},"deficit_kes":{"type":"number"}},"required":["channel","recipient_count","segments_per_recipient","unit_cost_kes","total_cost_kes","current_balance_kes","sufficient_balance","deficit_kes"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/credits/top-up":{"post":{"operationId":"credit.topUp","summary":"POST /api/v1/organizer/credits/top-up","tags":["Credit"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InitiateTopUpRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"transaction_id":{"type":"string"},"amount_kes":{"type":"number"},"status":{"type":"string","enum":["failed","pending"]},"payment":{"type":"object","properties":{"checkout_url":{},"checkout_id":{"type":"string"}},"required":["checkout_url","checkout_id"]}},"required":["transaction_id","amount_kes","status","payment"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"402":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"payment_init_failed"},"message":{"type":"string","const":"Failed to initialize payment. Please try again."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/credits/transactions":{"get":{"operationId":"credit.transactions","summary":"GET /api/v1/organizer/credits/transactions","tags":["Credit"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/LengthAwarePaginator"},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/access/customer_token_keys":{"get":{"operationId":"access.customer_token_keys.index","tags":["CustomerTokenKeys"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"operationId":"access.customer_token_keys.store","tags":["CustomerTokenKeys"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"],"maxLength":255}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{}}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/access/customer_token_keys/{id}":{"delete":{"operationId":"access.customer_token_keys.destroy","tags":["CustomerTokenKeys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":["string","null"]},"object":{"type":"string","const":"customer_token_key"},"name":{"type":["string","null"]},"status":{"type":"string"},"last_used_at":{"type":["string","null"]},"revoked_at":{"type":["string","null"]},"livemode":{"type":"boolean"},"created_at":{"type":["string","null"]}},"required":["id","object","name","status","last_used_at","revoked_at","livemode","created_at"]}},"required":["data"]}}}}}}},"/v1/customers":{"get":{"operationId":"customers.index","tags":["Customers"],"parameters":[{"name":"email","in":"query","schema":{"type":"string"}},{"name":"phone","in":"query","schema":{"type":"string"}},{"name":"external_id","in":"query","schema":{"type":"string"}},{"name":"metadata","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"operationId":"customers.store","tags":["Customers"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"metadata":{"type":["string","null"]},"external_id":{"type":["string","null"],"maxLength":255},"email":{"type":["string","null"],"format":"email","maxLength":254},"phone":{"type":["string","null"],"pattern":"^\\+[1-9]\\d{7,14}$"},"name":{"type":["string","null"],"maxLength":255}}}}}},"responses":{"201":{"description":"`CustomerResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CustomerResource"}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/customers/external/{externalId}":{"get":{"operationId":"customers.external","tags":["Customers"],"parameters":[{"name":"externalId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`CustomerResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CustomerResource"}},"required":["data"]}}}}}}},"/v1/customers/{id}":{"get":{"operationId":"customers.show","tags":["Customers"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`CustomerResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CustomerResource"}},"required":["data"]}}}}}},"patch":{"operationId":"customers.update","tags":["Customers"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"metadata":{"type":["string","null"]},"external_id":{"type":["string","null"],"maxLength":255},"email":{"type":["string","null"],"format":"email","maxLength":254},"phone":{"type":["string","null"],"pattern":"^\\+[1-9]\\d{7,14}$"},"name":{"type":["string","null"],"maxLength":255}}}}}},"responses":{"200":{"description":"`CustomerResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/CustomerResource"}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/dashboard":{"get":{"operationId":"modules.events.organizer.dashboard.index","description":"Get dashboard overview for the organizer.\n\n`stats.total_revenue`, each recent event `revenue` and `settlement_health` are only returned to org Owners, Admins and platform admins.","summary":"GET /organizer/dashboard","tags":["Dashboard"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","default":"30d"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"stats":{"type":"object","properties":{"tickets_sold":{"type":"object","properties":{"value":{"type":"integer"},"change_percentage":{"type":["number","null"]}},"required":["value","change_percentage"]},"total_revenue":{"type":"object","properties":{"value":{"type":"number"},"currency":{"type":"string"},"change_percentage":{"type":["number","null"]}},"required":["value","currency","change_percentage"]},"active_events":{"type":"object","properties":{"value":{"type":"integer"},"change_percentage":{"type":"null"}},"required":["value","change_percentage"]},"fanbase_count":{"type":"object","properties":{"value":{"type":"integer"},"change_percentage":{"type":"null"}},"required":["value","change_percentage"]}},"required":["tickets_sold","active_events","fanbase_count"]},"recent_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"image_url":{"type":["string","null"]},"start_date":{"type":["string","null"]},"tickets_sold":{"type":"integer"},"capacity":{"type":["integer","null"]},"revenue":{"type":"number"},"status":{"type":"string"}},"required":["id","name","image_url","start_date","tickets_sold","capacity","status"]}},"recent_activity":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"title":{"type":"string","enum":["New ticket purchase","Event published","Event sold out","Fan tier upgrade","New fan joined","Activity"]},"description":{"type":["string","null"]},"time":{"type":"string"},"meta":{}},"required":["id","type","title","description","time","meta"]}},"settlement_health":{"type":"object","properties":{"collected_cents":{"type":"integer"},"platform_fee_cents":{"type":"integer"},"net_to_organizer_cents":{"type":"integer"},"paid_out_cents":{"type":"integer"},"outstanding_cents":{"type":"integer"}},"required":["collected_cents","platform_fee_cents","net_to_organizer_cents","paid_out_cents","outstanding_cents"]},"customer_cohorts":{"type":"object","properties":{"unique_buyers":{"type":"integer"},"repeat_buyers":{"type":"integer"},"repeat_buyer_rate":{"type":"number"},"marketing_opt_in_count":{"type":"integer"}},"required":["unique_buyers","repeat_buyers","repeat_buyer_rate","marketing_opt_in_count"]},"registration_coverage":{"type":"object","properties":{"events_requiring_data":{"type":"integer"},"attendees":{"type":"integer"},"with_custom_data":{"type":"integer"},"coverage_rate":{"type":["number","null"]}},"required":["events_requiring_data","attendees","with_custom_data","coverage_rate"]}},"required":["stats","recent_events","recent_activity","customer_cohorts","registration_coverage"]},"meta":{"type":"object","properties":{"generated_at":{"type":"string"},"period":{"type":"string"},"cache_ttl_seconds":{"type":"integer"}},"required":["generated_at","period","cache_ttl_seconds"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/access/entitlements":{"get":{"operationId":"access.entitlements.index","tags":["Entitlements"],"parameters":[{"name":"customer","in":"query","schema":{"type":"string"}},{"name":"contact_hash","in":"query","schema":{"type":"string"}},{"name":"metadata","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"operationId":"access.entitlements.store","tags":["Entitlements"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GrantEntitlementRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/access/entitlements/external/{externalId}":{"get":{"operationId":"access.entitlements.external","tags":["Entitlements"],"parameters":[{"name":"externalId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`EntitlementResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EntitlementResource"}},"required":["data"]}}}}}}},"/v1/access/entitlements/{id}":{"get":{"operationId":"access.entitlements.show","tags":["Entitlements"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`EntitlementResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EntitlementResource"}},"required":["data"]}}}}}},"delete":{"operationId":"access.entitlements.destroy","tags":["Entitlements"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`EntitlementResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EntitlementResource"}},"required":["data"]}}}}}}},"/v1/access/entitlements/{id}/suspend":{"post":{"operationId":"access.entitlements.suspend","tags":["Entitlements"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`EntitlementResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EntitlementResource"}},"required":["data"]}}}}}}},"/v1/access/entitlements/{id}/resume":{"post":{"operationId":"access.entitlements.resume","tags":["Entitlements"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`EntitlementResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EntitlementResource"}},"required":["data"]}}}}}}},"/v1/events":{"get":{"operationId":"event.index","tags":["Event"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{}}}}}}},"/v1/events/{event}":{"get":{"operationId":"event.show","tags":["Event"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`EventPublicResource`","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/EventPublicResource"},{"type":"object","required":["images","tickets","slots"]}]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/public/events/categories/top":{"get":{"operationId":"event.topCategories","description":"Top event categories by event count.","summary":"GET /events/categories/top","tags":["Event"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"events_count":{"type":"integer"}},"required":["slug","name","events_count"]}}},"required":["data"]}}}}}}},"/v1/organizer/events/{event}/communications/{channel}":{"post":{"operationId":"eventCommunications.store","tags":["EventCommunications"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"channel","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendEventCommunicationRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string"},"status":{"type":"string"},"recipients_count":{"type":"integer"},"credits_deducted_kes":{"type":"number"},"remaining_balance_kes":{"type":"number"},"scheduled_at":{"type":["string","null"]},"created_at":{"type":["string","null"]}},"required":["id","channel","status","recipients_count","credits_deducted_kes","remaining_balance_kes","scheduled_at","created_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"402":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","const":"insufficient_credits"},"message":{"type":"string","const":"Insufficient credits to send this blast"},"details":{"type":"object","properties":{"required_kes":{"type":"number"},"current_balance_kes":{"type":"number"},"deficit_kes":{"type":"number"}},"required":["required_kes","current_balance_kes","deficit_kes"]}},"required":["code","message","details"]}},"required":["success","error"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/communications/preview":{"get":{"operationId":"eventCommunications.preview","tags":["EventCommunications"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"ticket_type_ids","in":"query","schema":{"type":["string","null"]}},{"name":"status","in":"query","schema":{"type":["string","null"],"enum":["confirmed","pending","cancelled",null]}},{"name":"checked_in","in":"query","schema":{"type":["boolean","null"]}},{"name":"payment_status","in":"query","schema":{"type":["string","null"],"enum":["completed","pending",null]}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"count":{"type":"integer","minimum":0}},"required":["count"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/communications":{"get":{"operationId":"eventCommunications.index","tags":["EventCommunications"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"channel","in":"query","schema":{"type":["string","null"],"enum":["email","sms","whatsapp",null]}},{"name":"status","in":"query","schema":{"type":["string","null"],"enum":["queued","sending","sent","failed",null]}},{"name":"page","in":"query","schema":{"type":["integer","null"],"minimum":1}},{"name":"per_page","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":100}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerEventCommunicationResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/communications/{id}":{"get":{"operationId":"eventCommunications.show","tags":["EventCommunications"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerEventCommunicationDetailResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"delete":{"operationId":"eventCommunications.destroy","description":"Cancel a scheduled blast and refund credits.","summary":"DELETE /api/v1/organizer/events/{event}/communications/{id}","tags":["EventCommunications"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"cancelled"}},"required":["id","status"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"Only queued or scheduled blasts can be cancelled."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/events/{event}/coupon/availability":{"get":{"operationId":"eventCoupon.availability","tags":["EventCoupon"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"code","in":"query","required":true,"schema":{"type":"string"}},{"name":"ticket_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"quantity","in":"query","schema":{"type":["integer","null"],"minimum":1}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"available":{"type":"boolean"}},"required":["available"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/events/{event}/coupon/discount":{"get":{"operationId":"eventCoupon.discount","tags":["EventCoupon"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"code","in":"query","required":true,"schema":{"type":"string"}},{"name":"ticket_id","in":"query","required":true,"schema":{"type":"string"}},{"name":"quantity","in":"query","required":true,"schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"discount":{"type":"number"}},"required":["discount"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/coupons":{"get":{"operationId":"eventCoupons.index","tags":["EventCoupons"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerCouponResource"}},"meta":{"type":"object","properties":{"total_count":{"type":"integer","minimum":0}},"required":["total_count"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"active":{"type":"integer","minimum":0},"inactive":{"type":"integer","minimum":0},"expired":{"type":"integer","minimum":0},"total_redemptions":{"type":"integer"},"total_discount_given":{"type":"number"}},"required":["all","active","inactive","expired","total_redemptions","total_discount_given"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"eventCoupons.store","tags":["EventCoupons"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreCouponRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/coupons/{coupon}":{"put":{"operationId":"eventCoupons.update","tags":["EventCoupons"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"coupon","in":"path","required":true,"description":"The coupon ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCouponRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"eventCoupons.destroy","tags":["EventCoupons"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"coupon","in":"path","required":true,"description":"The coupon ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/events/{event}/data":{"get":{"operationId":"modules.events.eventData.index_89","tags":["EventData"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"event":{"$ref":"#/components/schemas/Event"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/EventData"}}},"required":["event","fields"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/public/events/{event}/data":{"get":{"operationId":"modules.events.eventData.index_103","tags":["EventData"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"event":{"$ref":"#/components/schemas/Event"},"fields":{"type":"array","items":{"$ref":"#/components/schemas/EventData"}}},"required":["event","fields"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/events/{event}/data-fields":{"get":{"operationId":"eventDataFields.index","tags":["EventDataFields"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerDataFieldResource"}},"meta":{"type":"object","properties":{"total_count":{"type":"integer","minimum":0}},"required":["total_count"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"required":{"type":"integer","minimum":0},"optional":{"type":"integer","minimum":0}},"required":["all","required","optional"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"eventDataFields.store","tags":["EventDataFields"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreDataFieldRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerDataFieldResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/data-fields/reorder":{"post":{"operationId":"eventDataFields.reorder","tags":["EventDataFields"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReorderDataFieldsRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerDataFieldResource"}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/data-fields/{field}":{"put":{"operationId":"eventDataFields.update","tags":["EventDataFields"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"field","in":"path","required":true,"description":"The field ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDataFieldRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerDataFieldResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"eventDataFields.destroy","tags":["EventDataFields"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"field","in":"path","required":true,"description":"The field ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted_at":{"type":"string"}},"required":["id","deleted_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/event-manager-invites/{token}":{"get":{"operationId":"eventManagerInvites.show","summary":"GET /event-manager-invites/{token} — preview before accepting","tags":["EventManagerInvites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"email":{"type":"string"},"role":{"type":"string"},"event":{"type":["object","null"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"expires_at":{"type":"string"}},"required":["email","role","event","expires_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_NOT_FOUND"},"message":{"type":"string","const":"This invite is no longer valid."}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invite has expired. Please ask for a new one."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/event-manager-invites/{token}/accept":{"post":{"operationId":"eventManagerInvites.accept","summary":"POST /event-manager-invites/{token}/accept — single-use; the\nauthenticated user's email must match the invite","tags":["EventManagerInvites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"event_manager"},"event":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"null"},"name":{"type":"null"}},"required":["id","slug","name"]}]},"organization":{"type":["object","null"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"role":{"type":"string"},"abilities":{"type":"array","items":{"type":"string"}}},"required":["type","event","organization","role","abilities"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EMAIL_MISMATCH"},"message":{"type":"string","const":"This invite was sent to a different email address."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_NOT_FOUND"},"message":{"type":"string","const":"This invite is no longer valid."}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invite has expired. Please ask for a new one."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/events/{event}/managers":{"get":{"operationId":"eventManagers.index","tags":["EventManagers"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"managers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"user_id":{"type":"string"},"name":{"type":["string","null"]},"email":{"type":["string","null"]},"role":{"type":"string"},"abilities":{"type":"array","items":{"type":"string"}},"created_at":{"type":["string","null"]}},"required":["id","user_id","name","email","role","abilities","created_at"]}},"pending_invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"expires_at":{"type":"string"},"expired":{"type":"boolean"},"created_at":{"type":["string","null"]}},"required":["id","email","role","expires_at","expired","created_at"]}}},"required":["managers","pending_invites"]},"meta":{"type":"object","properties":{"total_count":{"type":"integer"}},"required":["total_count"]},"summary":{"type":"object","properties":{"managers":{"type":"integer","minimum":0},"pending_invites":{"type":"integer","minimum":0}},"required":["managers","pending_invites"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"eventManagers.store","tags":["EventManagers"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":255},"role":{"type":"string","enum":["lead","finance","check_in","editor","viewer"]}},"required":["email","role"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"invite"},"id":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"}},"required":["type","id","email","role"]}},"required":["data"]},{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"manager"},"id":{"type":"string"},"role":{"type":"string"}},"required":["type","id","role"]}},"required":["data"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/managers/{manager}":{"put":{"operationId":"eventManagers.update","tags":["EventManagers"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"manager","in":"path","required":true,"description":"The manager ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["lead","finance","check_in","editor","viewer"]}},"required":["role"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"role":{"type":"string"}},"required":["id","role"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"eventManagers.destroy","tags":["EventManagers"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"manager","in":"path","required":true,"description":"The manager ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted_at":{"type":"string"}},"required":["id","deleted_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/events/{event}/manager-invites/{invite}/resend":{"post":{"operationId":"eventManagers.resendInvite","tags":["EventManagers"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"invite","in":"path","required":true,"description":"The invite ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"expires_at":{"type":"string"}},"required":["id","expires_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_ALREADY_ACCEPTED"},"message":{"type":"string","const":"This invite has already been accepted."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/events/{event}/manager-invites/{invite}":{"delete":{"operationId":"eventManagers.cancelInvite","tags":["EventManagers"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"invite","in":"path","required":true,"description":"The invite ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted_at":{"type":"string"}},"required":["id","deleted_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/creator/orgs/{org}/events/{event}/settlements/init":{"post":{"operationId":"eventSettlement.initSettlement","tags":["EventSettlement"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"window_start":{"type":["string","null"],"format":"date-time"},"window_end":{"type":["string","null"],"format":"date-time"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"settlement":{"$ref":"#/components/schemas/EventSettlement"},"batch":{"$ref":"#/components/schemas/SettlementBatch"},"payouts":{"type":"array","items":{"$ref":"#/components/schemas/Payout"}}},"required":["settlement","batch","payouts"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/{org}/events/{event}/settlements/record":{"post":{"operationId":"eventSettlement.recordSettlement","tags":["EventSettlement"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":0.01},"reference":{"type":"string","maxLength":100},"reason":{"type":"string","maxLength":500},"manual_method":{"type":"string","enum":["bank","cash","other"]},"proof_url":{"type":["string","null"],"format":"uri","maxLength":2048},"destination_wallet":{"type":["string","null"],"maxLength":100}},"required":["amount","reference","reason","manual_method"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"settlement":{"$ref":"#/components/schemas/EventSettlement"},"payout":{"$ref":"#/components/schemas/Payout"}},"required":["settlement","payout"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/events/{event}/slots":{"get":{"operationId":"eventSlot.index","tags":["EventSlot"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/EventSlot"}}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/events/{event}/slots":{"get":{"operationId":"eventSlots.index","tags":["EventSlots"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerSlotResource"}},"meta":{"type":"object","properties":{"total_count":{"type":"integer","minimum":0}},"required":["total_count"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"active":{"type":"integer","minimum":0},"sold_out":{"type":"integer","minimum":0}},"required":["all","active","sold_out"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"eventSlots.store","tags":["EventSlots"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreSlotRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerSlotResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/slots/{slot}":{"put":{"operationId":"eventSlots.update","tags":["EventSlots"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"slot","in":"path","required":true,"description":"The slot ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSlotRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerSlotResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"eventSlots.destroy","tags":["EventSlots"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"slot","in":"path","required":true,"description":"The slot ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted_at":{"type":"string"}},"required":["id","deleted_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"LAST_SLOT"},"message":{"type":"string","const":"You can't delete the only active session while the event has bookings."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"SLOT_HAS_BOOKINGS"},"message":{"type":"string","const":"This session has bookings and can't be deleted. Mark it sold out instead."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/organizer/events/{event}/slots/{slot}/sold-out":{"post":{"operationId":"eventSlots.toggleSoldOut","tags":["EventSlots"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"slot","in":"path","required":true,"description":"The slot ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleSoldOutRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerSlotResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/tickets":{"get":{"operationId":"eventTickets.index","tags":["EventTickets"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerTicketResource"}},"meta":{"type":"object","properties":{"total_count":{"type":"integer","minimum":0}},"required":["total_count"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"active":{"type":"integer","minimum":0},"inactive":{"type":"integer","minimum":0},"sold_out":{"type":"integer","minimum":0}},"required":["all","active","inactive","sold_out"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"eventTickets.store","tags":["EventTickets"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreTicketRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/tickets/{ticket}":{"put":{"operationId":"eventTickets.update","tags":["EventTickets"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"ticket","in":"path","required":true,"description":"The ticket ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTicketRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"eventTickets.destroy","tags":["EventTickets"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"ticket","in":"path","required":true,"description":"The ticket ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/events/{event}/tickets/{ticket}/sold-out":{"post":{"operationId":"eventTickets.toggleSoldOut","tags":["EventTickets"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"ticket","in":"path","required":true,"description":"The ticket ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ToggleSoldOutRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerTicketResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/public/events":{"get":{"operationId":"modules.events.public.events.index","description":"List public events with filters.","summary":"GET /events","tags":["Events"],"parameters":[{"name":"per_page","in":"query","schema":{"type":"string","default":12}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicEventResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"live":{"type":"integer"},"upcoming":{"type":"integer"},"past":{"type":"integer"}},"required":["live","upcoming","past"]}},"required":["data","meta","summary"]}}}}}}},"/v1/public/events/{slug}":{"get":{"operationId":"modules.events.public.events.show","description":"Get public event detail by slug.","summary":"GET /events/{slug}","tags":["Events"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicEventDetailResource"}},"required":["data"]}}}},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"FORBIDDEN"},"message":{"type":"string","const":"This is a private event. You'll need an invitation link to access it."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this event. It may have been removed or the link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/events":{"get":{"operationId":"modules.events.organizer.events.index","description":"List all events for the authenticated user's organization.","summary":"GET /organizer/events","tags":["Events"],"parameters":[{"name":"is_public","in":"query","schema":{"type":"boolean","default":false}},{"name":"sort","in":"query","schema":{"type":"string","default":"start_date"}},{"name":"per_page","in":"query","schema":{"type":"string","default":12}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerEventResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"live":{"type":"integer","minimum":0},"pending":{"type":"integer","minimum":0},"draft":{"type":"integer","minimum":0},"ended":{"type":"integer","minimum":0}},"required":["all","live","pending","draft","ended"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"post":{"operationId":"events.store","description":"Create a new event with optional ticket types and coupons.\nAccepts multipart/form-data with image files.","summary":"POST /organizer/events","tags":["Events"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/StoreEventRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerEventResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}":{"get":{"operationId":"modules.events.organizer.events.show","description":"Get event details with optional includes.","summary":"GET /organizer/events/{event}","tags":["Events"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerEventResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"put":{"operationId":"events.update","description":"Update an existing event.\nAccepts multipart/form-data with image files.","summary":"PUT /organizer/events/{event}","tags":["Events"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UpdateEventRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerEventResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"events.destroy","description":"Delete a draft event.","summary":"DELETE /organizer/events/{event}","tags":["Events"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted_at":{"type":"string"}},"required":["id","deleted_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"This event has sold tickets and can't be deleted."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"This event is currently live and can't be deleted."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/organizer/events/{event}/publish":{"post":{"operationId":"events.publish","description":"Publish/submit an event for approval.","summary":"POST /organizer/events/{event}/publish","tags":["Events"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/EventStatus"},"published_at":{"type":"string"}},"required":["id","status","published_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"This event has already been published."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"Some required details are missing before this event can go live."},"details":{"type":"object","properties":{"missing_fields":{"type":"array","items":{"type":"string","enum":["name","start_date","image","ticket_types"]}}},"required":["missing_fields"]}},"required":["code","message","details"]}},"required":["error"]}}}}}}},"/v1/organizer/events/{event}/duplicate":{"post":{"operationId":"events.duplicate","description":"Duplicate an existing event with new dates.\nCopies tickets, coupons, images, event data, and media.","summary":"POST /organizer/events/{event}/duplicate","tags":["Events"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DuplicateEventRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerEventResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/fanbase":{"get":{"operationId":"fanbase.show","description":"Get fanbase profile.","summary":"GET /organizer/fanbase","tags":["Fanbase"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/FanbaseProfileResource"},"summary":{"type":"object","description":"Whole-collection aggregates so the community hub renders without\nN extra calls.","properties":{"members":{"type":"integer","minimum":0},"events":{"type":"integer","minimum":0},"communications":{"type":"integer","minimum":0},"tiers":{"type":"integer","minimum":0}},"required":["members","events","communications","tiers"]}},"required":["data","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"put":{"operationId":"fanbase.update","description":"Update fanbase profile.","summary":"PUT /organizer/fanbase","tags":["Fanbase"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFanbaseProfileRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"updated_at":{"type":"string"}},"required":["id","updated_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/fanbase/cover":{"post":{"operationId":"fanbase.uploadCover","description":"Upload fanbase cover image.","summary":"POST /organizer/fanbase/cover","tags":["Fanbase"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UploadFanbaseImageRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"cover_url":{"type":["string","null"]},"uploaded_at":{"type":"string"}},"required":["cover_url","uploaded_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/fanbase/logo":{"post":{"operationId":"fanbase.uploadLogo","description":"Upload fanbase logo image.","summary":"POST /organizer/fanbase/logo","tags":["Fanbase"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UploadFanbaseImageRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"logo_url":{"type":["string","null"]},"uploaded_at":{"type":"string"}},"required":["logo_url","uploaded_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/fanbase/stats":{"get":{"operationId":"fanbase.stats","description":"Get fanbase overview statistics.","summary":"GET /organizer/fanbase/stats","tags":["Fanbase"],"parameters":[{"name":"period","in":"query","schema":{"type":"string","default":"30d"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"total_members":{"type":"integer","minimum":0},"new_members":{"type":"object","properties":{"value":{"type":"integer","minimum":0},"period":{}},"required":["value","period"]},"points_awarded":{"type":"object","properties":{"value":{"type":"integer"},"period":{}},"required":["value","period"]},"tier_distribution":{"type":"array","items":{"type":"object","properties":{"tier_id":{"type":"string"},"tier_name":{"type":"string"},"member_count":{"type":"integer","minimum":0},"percentage":{"type":"number"}},"required":["tier_id","tier_name","member_count","percentage"]}},"is_active":{"type":"boolean"}},"required":["total_members","new_members","points_awarded","tier_distribution","is_active"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/fanbase/settings":{"get":{"operationId":"fanbase.settings","description":"Get fanbase settings.","summary":"GET /organizer/fanbase/settings","tags":["Fanbase"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"auto_enroll":{"type":"boolean"},"points_multiplier":{"type":"number"},"welcome_bonus_points":{"type":"integer"}},"required":["enabled","auto_enroll","points_multiplier","welcome_bonus_points"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"put":{"operationId":"fanbase.updateSettings","description":"Update fanbase settings.","summary":"PUT /organizer/fanbase/settings","tags":["Fanbase"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFanbaseSettingsRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"auto_enroll":{"type":"boolean"},"points_multiplier":{"type":"number"},"welcome_bonus_points":{"type":"integer"}},"required":["enabled","auto_enroll","points_multiplier","welcome_bonus_points"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/fanbase/members":{"get":{"operationId":"fanbase.members","description":"List fanbase members with pagination.","summary":"GET /organizer/fanbase/members","tags":["Fanbase"],"parameters":[{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"user_id":{"type":"string"},"name":{"type":"string"},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"status":{"type":"string"},"total_points":{"type":"integer"},"lifetime_points":{"type":"integer"},"tier":{"type":["string","null"]},"joined_at":{"type":["string","null"]},"last_activity_at":{"type":["string","null"]}},"required":["id","user_id","name","email","phone","status","total_points","lifetime_points","tier","joined_at","last_activity_at"]}},"meta":{"type":"object","properties":{"next_cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"limit":{},"total_count":{"type":"integer","minimum":0}},"required":["next_cursor","has_more","limit","total_count"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/fanbase/members/export":{"get":{"operationId":"fanbase.exportMembers","description":"Export community members as CSV.","summary":"GET /organizer/fanbase/members/export","tags":["Fanbase"],"responses":{"200":{"description":"","content":{"text/csv":{"schema":{"type":"string"}}},"headers":{"Transfer-Encoding":{"required":true,"schema":{"type":"string","enum":["chunked"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/fanbase/members/invite":{"post":{"operationId":"fanbase.inviteMembers","description":"Invite people to the community by email.","summary":"POST /organizer/fanbase/members/invite","tags":["Fanbase"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","format":"email","maxLength":255},"minItems":1,"maxItems":100}},"required":["emails"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"invited_count":{"type":"integer"},"already_members":{"type":"integer"},"failed":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string"},"reason":{"type":"string","const":"User not found on platform"}},"required":["email","reason"]}}},"required":["invited_count","already_members","failed"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/fanbase/members/sync":{"post":{"operationId":"fanbase.syncMembers","description":"Sync existing attendees from completed orders as community members.","summary":"POST /organizer/fanbase/members/sync","tags":["Fanbase"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"synced_count":{"type":"integer"},"already_members":{"type":"integer"},"total_processed":{"type":"integer"}},"required":["synced_count","already_members","total_processed"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/fanbase/members/activity":{"get":{"operationId":"fanbase.memberActivity","tags":["Fanbase"],"parameters":[{"name":"activity_type","in":"query","schema":{"type":"string"}},{"name":"cursor","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"member_id":{"type":["string","null"]},"member_name":{"type":"string"},"activity_type":{"type":"string"},"description":{"type":["string","null"]},"event_id":{"type":["string","null"]},"occurred_at":{"type":"string"}},"required":["id","member_id","member_name","activity_type","description","event_id","occurred_at"]}},"meta":{"type":"object","properties":{"next_cursor":{"type":["string","null"]},"has_more":{"type":"boolean"},"limit":{}},"required":["next_cursor","has_more","limit"]},"summary":{"type":"object","properties":{"ticket_purchase":{"type":"integer"},"attendance":{"type":"integer"}},"required":["ticket_purchase","attendance"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/fanbase/members/{member_id}/activity":{"get":{"operationId":"fanbase.memberActivityDetail","tags":["Fanbase"],"parameters":[{"name":"member_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"activity_type":{"type":"string"},"description":{"type":["string","null"]},"points_delta":{"type":"integer"},"metadata":{"type":["array","null"],"items":{}},"occurred_at":{"type":"string"}},"required":["id","activity_type","description","points_delta","metadata","occurred_at"]}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this member."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/fanbase/tiers":{"get":{"operationId":"fanbase.tiers","description":"Get fanbase tier configuration.","summary":"GET /organizer/fanbase/tiers","tags":["Fanbase"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"threshold":{"type":"integer"},"perks":{"type":"array","items":{}}},"required":["id","name","threshold","perks"]}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"put":{"operationId":"fanbase.updateTiers","description":"Update fanbase tier configuration.","summary":"PUT /organizer/fanbase/tiers","tags":["Fanbase"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFanbaseTiersRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FanbaseTierResource"}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/fanbase/communications/preview":{"get":{"operationId":"fanbase.communicationPreview","description":"Preview recipient count for a community blast.","summary":"GET /organizer/fanbase/communications/preview","tags":["Fanbase"],"parameters":[{"name":"channel","in":"query","schema":{"type":"string","default":"email"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"count":{"type":"integer","minimum":0}},"required":["count"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/fanbase/communications/email":{"post":{"operationId":"fanbase.communicateEmail","tags":["Fanbase"],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"recipients_count":{"type":"integer"},"credits_deducted_kes":{"type":"number"},"remaining_balance_kes":{"type":"number"},"created_at":{"type":["string","null"]}},"required":["id","type","status","recipients_count","credits_deducted_kes","remaining_balance_kes","created_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"402":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","const":"insufficient_credits"},"message":{"type":"string","const":"Insufficient credits to send this blast"},"details":{"type":"object","properties":{"required_kes":{"type":"number"},"current_balance_kes":{"type":"number"},"deficit_kes":{"type":"number"}},"required":["required_kes","current_balance_kes","deficit_kes"]}},"required":["code","message","details"]}},"required":["success","error"]}}}},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"No members match this channel. Check that members have valid contact info."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"Please write a message before sending."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"Please add a subject line for your email."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/organizer/fanbase/communications/sms":{"post":{"operationId":"fanbase.communicateSms","tags":["Fanbase"],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"recipients_count":{"type":"integer"},"credits_deducted_kes":{"type":"number"},"remaining_balance_kes":{"type":"number"},"created_at":{"type":["string","null"]}},"required":["id","type","status","recipients_count","credits_deducted_kes","remaining_balance_kes","created_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"402":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","const":"insufficient_credits"},"message":{"type":"string","const":"Insufficient credits to send this blast"},"details":{"type":"object","properties":{"required_kes":{"type":"number"},"current_balance_kes":{"type":"number"},"deficit_kes":{"type":"number"}},"required":["required_kes","current_balance_kes","deficit_kes"]}},"required":["code","message","details"]}},"required":["success","error"]}}}},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"No members match this channel. Check that members have valid contact info."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"Please write a message before sending."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"Please add a subject line for your email."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/organizer/fanbase/communications/whatsapp":{"post":{"operationId":"fanbase.communicateWhatsapp","tags":["Fanbase"],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"recipients_count":{"type":"integer"},"credits_deducted_kes":{"type":"number"},"remaining_balance_kes":{"type":"number"},"created_at":{"type":["string","null"]}},"required":["id","type","status","recipients_count","credits_deducted_kes","remaining_balance_kes","created_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"402":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"object","properties":{"code":{"type":"string","const":"insufficient_credits"},"message":{"type":"string","const":"Insufficient credits to send this blast"},"details":{"type":"object","properties":{"required_kes":{"type":"number"},"current_balance_kes":{"type":"number"},"deficit_kes":{"type":"number"}},"required":["required_kes","current_balance_kes","deficit_kes"]}},"required":["code","message","details"]}},"required":["success","error"]}}}},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"No members match this channel. Check that members have valid contact info."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"Please write a message before sending."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"Please add a subject line for your email."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/organizer/fanbase/communications":{"get":{"operationId":"fanbase.communicationHistory","tags":["Fanbase"],"parameters":[{"name":"type","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/FanbaseCommunication"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"by_channel":{"type":"object","additionalProperties":{"type":"integer"}},"total":{"type":"number"}},"required":["by_channel","total"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/fanbase/communications/{id}":{"get":{"operationId":"fanbase.communicationDetail","tags":["Fanbase"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"anyOf":[{"$ref":"#/components/schemas/FanbaseCommunication"},{"type":"null"}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this message."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/public/fanbases":{"get":{"operationId":"fanbases.index","tags":["Fanbases"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicFanbaseResource"}},"meta":{"type":"object","properties":{"current_page":{"type":["integer","string"]},"per_page":{"type":["integer","string"]},"total_count":{"type":["integer","string"]},"total_pages":{"type":["integer","string"]}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"total_fanbases":{"anyOf":[{"type":"integer","minimum":0},{"type":"string"}]},"total_followers":{"type":"integer","minimum":0},"total_events":{"type":"integer","minimum":0}},"required":["total_fanbases","total_followers","total_events"]}},"required":["data","meta","summary"]}}}}}}},"/v1/public/fanbases/{slug}":{"get":{"operationId":"fanbases.show","tags":["Fanbases"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicFanbaseDetailResource"},"events_summary":{"type":"object","description":"Mirrors the /public/fanbases/{slug}/events `summary` so the\ncommunity page renders Live/Upcoming/Past tabs from this single\ndetail call. Whole-collection, independent of any filter/page.","properties":{"live":{"type":"integer","minimum":0},"upcoming":{"type":"integer","minimum":0},"past":{"type":"integer","minimum":0}},"required":["live","upcoming","past"]}},"required":["data","events_summary"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this fanbase. It may have been removed or the link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/public/fanbases/{slug}/events":{"get":{"operationId":"fanbases.events","tags":["Fanbases"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicEventResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"live":{"type":"integer","minimum":0},"upcoming":{"type":"integer","minimum":0},"past":{"type":"integer","minimum":0}},"required":["live","upcoming","past"]}},"required":["data","meta","summary"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this fanbase. It may have been removed or the link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/me":{"get":{"operationId":"identity.index","description":"Response modes:\n0. A Vabu ID token issued for a tenant: that tenant only, read-only. The header is ignored, no membership row is\n   created, and the admin and standard modes never apply\n1. With X-Tenant-Code header: Returns tenant-scoped context (auto-onboards if new)\n2. Without header + OS admin: Returns admin context with permissions\n3. Without header + regular user: Returns standard context with tenant list","summary":"Get authenticated user info with context-aware response","tags":["Identity"],"responses":{"200":{"description":"`StandardContextResource`\n\n`AdminContextResource`\n\n`TenantContextResource`","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"$ref":"#/components/schemas/StandardContextResource"}},"required":["data"]},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AdminContextResource"}},"required":["data"]},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TenantContextResource"}},"required":["data"]}]}}}},"400":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"Invalid tenant"}},"required":["message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}}}}},"/v1/invites/{token}":{"get":{"operationId":"invites.show","description":"Get invite details by token.","summary":"GET /invites/{token}","tags":["Invites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/InviteResource"}},"required":["data"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this invite. The link may be incorrect or expired."}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"ALREADY_ACCEPTED"},"message":{"type":"string","const":"This invite has already been accepted. Check your email for your ticket details."}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invite has expired. Please reach out to the host for a new one."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/invites/{token}/accept":{"post":{"operationId":"invites.accept","description":"Accept an invite and register attendee details.","summary":"POST /invites/{token}/accept","tags":["Invites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptInviteRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"ticket_id":{"type":"string"},"status":{"type":"string","enum":["pending","confirmed"]}},"required":["ticket_id","status"]}},"required":["data"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this invite. The link may be incorrect or expired."}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"ALREADY_ACCEPTED"},"message":{"type":"string","const":"This invite has already been accepted. Check your email for your ticket details."}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invite has expired. Please reach out to the host for a new one."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/plus/contents/{content}/live-stream":{"get":{"operationId":"modules.plus.organizer.liveStreams.show","tags":["LiveStreams"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`OrganizerLiveStreamResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerLiveStreamResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/plus/contents/{content}/live-stream/rotate-key":{"post":{"operationId":"liveStreams.rotateKey","tags":["LiveStreams"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`OrganizerLiveStreamResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerLiveStreamResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"Cannot rotate the stream key while a broadcast is active."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NO_LIVE_STREAM"},"message":{"type":"string","const":"Live stream has not been provisioned yet. Wait for admin approval."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/streams/live_streams":{"get":{"operationId":"streams.live_streams.index","tags":["LiveStreams"],"parameters":[{"name":"metadata","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"operationId":"streams.live_streams.store","tags":["LiveStreams"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"latency_mode":{"type":"string","enum":["low","standard"]},"reconnect_window":{"type":"integer","minimum":0,"maximum":1800},"audio_only":{"type":"boolean"},"playback_policy":{"type":"string","enum":["public","signed"]},"simulcast_targets":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","pattern":"#^rtmps?://#i","maxLength":2048},"stream_key":{"type":"string","maxLength":512}},"required":["url","stream_key"]},"maxItems":6},"standby":{"type":"string"},"alert_contact":{"type":["string","null"],"pattern":"^\\+[1-9]\\d{7,14}$"},"metadata":{"type":["string","null"]},"external_id":{"type":["string","null"],"maxLength":255}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/streams/live_streams/{id}":{"get":{"operationId":"streams.live_streams.show","tags":["LiveStreams"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}},"patch":{"operationId":"streams.live_streams.update","tags":["LiveStreams"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"latency_mode":{"type":"string","enum":["low","standard"]},"reconnect_window":{"type":"integer","minimum":0,"maximum":1800},"standby":{"type":"string"},"alert_contact":{"type":["string","null"],"pattern":"^\\+[1-9]\\d{7,14}$"}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"streams.live_streams.destroy","tags":["LiveStreams"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"502":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}}}}},"/v1/streams/live_streams/{id}/reset_stream_key":{"post":{"operationId":"streams.live_streams.reset_stream_key","tags":["LiveStreams"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/streams/live_streams/{id}/enable":{"post":{"operationId":"streams.live_streams.enable","tags":["LiveStreams"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/streams/live_streams/{id}/disable":{"post":{"operationId":"streams.live_streams.disable","tags":["LiveStreams"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/streams/live_streams/{id}/complete":{"post":{"operationId":"streams.live_streams.complete","summary":"Tell the provider the broadcast is over. The provider reports `idle` itself, so the status is not touched here","tags":["LiveStreams"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/media/{mediaId}":{"get":{"operationId":"media.show","description":"GET /api/v1/media/{mediaId}","summary":"Get a single media item","tags":["Media"],"parameters":[{"name":"mediaId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MediaResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"patch":{"operationId":"media.update","description":"PATCH /api/v1/media/{mediaId}","summary":"Update media metadata (alt_text, custom_properties, position)","tags":["Media"],"parameters":[{"name":"mediaId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"alt_text":{"type":["string","null"],"maxLength":255},"custom_properties":{"type":["array","null"],"items":{"type":"string"}},"position":{"type":["integer","null"],"minimum":0}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MediaResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"media.destroy","description":"DELETE /api/v1/media/{mediaId}","summary":"Delete a media item","tags":["Media"],"parameters":[{"name":"mediaId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/media/{modelType}/{modelId}":{"get":{"operationId":"media.index","description":"GET /api/v1/media/{modelType}/{modelId}","summary":"List all media for a model","tags":["Media"],"parameters":[{"name":"modelType","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"collection","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MediaResource"}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"post":{"operationId":"media.store","description":"POST /api/v1/media/{modelType}/{modelId}","summary":"Upload media for a model","tags":["Media"],"parameters":[{"name":"modelType","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/MediaUploadRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MediaResource"}}},"required":["data"]},{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MediaResource"}},"required":["data"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/media/{modelType}/{modelId}/reorder":{"put":{"operationId":"media.reorder","description":"PUT /api/v1/media/{modelType}/{modelId}/reorder","summary":"Reorder media items in a collection","tags":["Media"],"parameters":[{"name":"modelType","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MediaReorderRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MediaResource"}},"message":{"type":"string","const":"Media reordered successfully."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/media/{modelType}/{modelId}/collection/{collection}":{"delete":{"operationId":"media.clearCollection","description":"DELETE /api/v1/media/{modelType}/{modelId}/collection/{collection}","summary":"Clear all media in a collection for a model","tags":["Media"],"parameters":[{"name":"modelType","in":"path","required":true,"schema":{"type":"string"}},{"name":"modelId","in":"path","required":true,"schema":{"type":"string"}},{"name":"collection","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"deleted_count":{"type":"integer"}},"required":["message","deleted_count"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/merch/approvals":{"get":{"operationId":"merchApprovals.index","tags":["MerchApprovals"],"parameters":[{"name":"status","in":"query","schema":{"type":"string","default":"pending_review"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/MerchProductResource"},{"type":"object","required":["variants"]}]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/merch/approvals/{product}/approve":{"post":{"operationId":"merchApprovals.approve","tags":["MerchApprovals"],"parameters":[{"name":"product","in":"path","required":true,"description":"The product slug","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":"string"}}}}}},"responses":{"200":{"description":"`MerchProductResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MerchProductResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/tenant/admin/merch/approvals/{product}/reject":{"post":{"operationId":"merchApprovals.reject","tags":["MerchApprovals"],"parameters":[{"name":"product","in":"path","required":true,"description":"The product slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","maxLength":1000}},"required":["reason"]}}}},"responses":{"200":{"description":"`MerchProductResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MerchProductResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/merch/cart":{"post":{"operationId":"merchCheckout.cart","tags":["MerchCheckout"],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"cart_id":{"type":"string"},"currency":{"type":"string"},"items":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":"string"},"variant_id":{"type":["string","null"]},"title":{"type":"string"},"quantity":{"type":"integer"},"unit_price_cents":{"type":"integer"},"total_cents":{"type":"integer"}},"required":["product_id","variant_id","title","quantity","unit_price_cents","total_cents"]}},"subtotal_cents":{"type":"integer"},"shipping_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"total_cents":{"type":"integer"}},"required":["cart_id","currency","items","subtotal_cents","shipping_cents","tax_cents","total_cents"]}},"required":["data"]}}}}}}},"/v1/merch/orders":{"post":{"operationId":"merchCheckout.store","tags":["MerchCheckout"],"responses":{"201":{"description":"`MerchOrderResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/MerchOrderResource"},{"type":"object","required":["items"]}]}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/merch/orders/{code}":{"get":{"operationId":"merchCheckout.show","tags":["MerchCheckout"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`MerchOrderResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/MerchOrderResource"},{"type":"object","required":["items"]}]}},"required":["data"]}}}}}}},"/v1/merch/orders/{code}/refund-request":{"post":{"operationId":"merchCheckout.refundRequest","tags":["MerchCheckout"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":["string","null"],"maxLength":500}}}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","const":"requested"},"order_code":{"type":"string"}},"required":["status","order_code"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/merch/orders":{"get":{"operationId":"merchOrders.index","tags":["MerchOrders"],"parameters":[{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/MerchOrderResource"},{"type":"object","required":["items"]}]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/merch/orders/{order}":{"patch":{"operationId":"merchOrders.update","tags":["MerchOrders"],"parameters":[{"name":"order","in":"path","required":true,"description":"The order ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"fulfillment_status":{"type":"string","enum":["unfulfilled","processing","fulfilled","cancelled"]},"metadata":{"type":["array","null"],"items":{"type":"string"}}},"required":["fulfillment_status"]}}}},"responses":{"200":{"description":"`MerchOrderResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MerchOrderResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/merch/products":{"get":{"operationId":"merchProducts.index","tags":["MerchProducts"],"parameters":[{"name":"status","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/MerchProductResource"},{"type":"object","required":["variants"]}]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"draft":{"type":"integer","minimum":0},"pending_review":{"type":"integer","minimum":0},"published":{"type":"integer","minimum":0},"rejected":{"type":"integer","minimum":0}},"required":["all","draft","pending_review","published","rejected"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"post":{"operationId":"merchProducts.store","tags":["MerchProducts"],"responses":{"201":{"description":"`MerchProductResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/MerchProductResource"},{"type":"object","required":["variants"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/merch/products/{product}":{"get":{"operationId":"merchProducts.show","tags":["MerchProducts"],"parameters":[{"name":"product","in":"path","required":true,"description":"The product slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`MerchProductResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/MerchProductResource"},{"type":"object","required":["variants"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"patch":{"operationId":"merchProducts.update","tags":["MerchProducts"],"parameters":[{"name":"product","in":"path","required":true,"description":"The product slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`MerchProductResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MerchProductResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/merch/products/{product}/publish":{"post":{"operationId":"merchProducts.publish","tags":["MerchProducts"],"parameters":[{"name":"product","in":"path","required":true,"description":"The product slug","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"notes":{"type":"string"}}}}}},"responses":{"200":{"description":"`MerchProductResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/MerchProductResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/merch/products/{product}/media":{"post":{"operationId":"merchProducts.media","tags":["MerchProducts"],"parameters":[{"name":"product","in":"path","required":true,"description":"The product slug","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","contentMediaType":"application/octet-stream","description":"Maximum file size: 10240 kilobytes."},"collection":{"type":["string","null"],"enum":["poster","gallery",null]}},"required":["file"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Media"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/public/fanbases/{slug}/storefront":{"get":{"operationId":"modules.organizations.public.merchStorefront.index_211","tags":["MerchStorefront"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"capsule_id":{"type":"string"},"products":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/MerchProductResource"},{"type":"object","required":["variants"]}]}},"external_storefront_url":{"type":["string","null"]}},"required":["capsule_id","products","external_storefront_url"]},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"products":{"type":"integer"}},"required":["products"]}},"required":["data","meta","summary"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"Storefront not found."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/public/fanbases/{slug}/storefront/products/{product}":{"get":{"operationId":"modules.organizations.public.merchStorefront.show_212","tags":["MerchStorefront"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"product","in":"path","required":true,"description":"The product slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`MerchProductResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/MerchProductResource"},{"type":"object","required":["variants"]}]}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/public/capsules/{slug}/storefront":{"get":{"operationId":"modules.organizations.public.merchStorefront.index_216","tags":["MerchStorefront"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"capsule_id":{"type":"string"},"products":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/MerchProductResource"},{"type":"object","required":["variants"]}]}},"external_storefront_url":{"type":["string","null"]}},"required":["capsule_id","products","external_storefront_url"]},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"products":{"type":"integer"}},"required":["products"]}},"required":["data","meta","summary"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"Storefront not found."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/public/capsules/{slug}/storefront/products/{product}":{"get":{"operationId":"modules.organizations.public.merchStorefront.show_217","tags":["MerchStorefront"],"parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}},{"name":"product","in":"path","required":true,"description":"The product slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`MerchProductResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/MerchProductResource"},{"type":"object","required":["variants"]}]}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/streams/live_streams/{id}/moments":{"get":{"operationId":"streams.moments.index","summary":"List the moments of a live stream, newest first","tags":["Moments"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":["string","null"],"enum":["shoutout","request","dedication","poll","product","sponsor","highlight","custom",null]}},{"name":"status","in":"query","schema":{"type":["string","null"],"enum":["active","cancelled",null]}},{"name":"occurred_after","in":"query","schema":{"type":["string","null"],"format":"date-time","pattern":"(Z|[+-]\\d{2}:?\\d{2})$"}},{"name":"occurred_before","in":"query","schema":{"type":["string","null"],"format":"date-time","pattern":"(Z|[+-]\\d{2}:?\\d{2})$"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}},"422":{"$ref":"#/components/responses/ValidationException"}}},"post":{"operationId":"streams.moments.store","summary":"Add a moment to a live stream","tags":["Moments"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreMomentRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"},"503":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}},"headers":{"Retry-After":{"schema":{"type":"string","const":"1"}}}}}}},"/v1/streams/live_streams/{id}/moments/feed":{"get":{"operationId":"streams.moments.feed","description":"What a viewer's player polls: the public, active moments of the stream in the order they were saved, at most 100\n(the newest when there are more), with `after` to get only what was saved after a moment the player already has.\nThe order is the order of saving, not `occurred_at`, so a moment stamped ahead of the clock never hides later ones.\nNothing private is in it, and the response is cacheable for a second so a CDN can answer for thousands of viewers.\nA CDN may also answer without the key, so this is as public as the video when the playback policy is public: put\nonly text that is safe to show anyone in `label` and `payload`.","summary":"Read the viewer feed of a live stream","tags":["Moments"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"after","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"label":{"type":"string"},"payload":{"type":["object","null"]},"occurred_at":{"type":"string"},"display_ms":{"type":"integer"}},"required":["id","type","label","payload","occurred_at","display_ms"]}}},"required":["data"]}}}}}}},"/v1/streams/moments/{id}":{"get":{"operationId":"streams.moments.show","summary":"Retrieve a moment","tags":["Moments"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/streams/moments/{id}/cancel":{"post":{"operationId":"streams.moments.cancel","description":"Takes the moment out of the viewer feed. Cancelling a cancelled moment returns it again and announces nothing.","summary":"Cancel a moment","tags":["Moments"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/tenant/admin/plus/mux-invoices":{"post":{"operationId":"muxInvoices.store","tags":["MuxInvoices"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportMuxInvoiceRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"invoice_id":{"type":"string"},"lines_imported":{"type":"integer"},"allocations_created":{"type":"integer"},"reconciliation_movements":{"type":"integer"}},"required":["invoice_id","lines_imported","allocations_created","reconciliation_movements"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/orders":{"post":{"operationId":"orders.store","description":"Create a new order and get checkout URL.","summary":"POST /orders","tags":["Orders"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrderRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}},"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrderResource"}},"required":["data"]}}}},"400":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_TICKET"},"message":{"type":"string","const":"This ticket type is no longer available."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"EVENT_NOT_FOUND"},"message":{"type":"string","const":"This event isn't available for ticket purchases right now."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/orders/{id}":{"get":{"operationId":"modules.events.public.orders.show","description":"Get order confirmation details.","summary":"GET /orders/{id}","tags":["Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/orders/{id}/attendees":{"post":{"operationId":"orders.assignAttendees","description":"Assign or invite attendees for a paid/pending order.","summary":"POST /orders/{id}/attendees","tags":["Orders"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssignOrderAttendeesRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"order_id":{"type":"string"},"order_code":{"type":"string"},"capacity":{"type":"number"},"assigned_attendees":{"type":"number"},"pending_attendee_slots":{},"booking_items":{"type":"array","items":{}},"created":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":["string","null"]},"email":{"type":["string","null"]},"booking_item_id":{"type":["string","null"]},"status":{"type":"string","enum":["confirmed","pending"]}},"required":["id","code","email","booking_item_id","status"]}},"updated":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":["string","null"]},"email":{"type":["string","null"]},"booking_item_id":{"type":["string","null"]},"status":{"type":"string","enum":["confirmed","pending"]}},"required":["id","code","email","booking_item_id","status"]}},"errors":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"index":{"type":"string"},"code":{"type":"string","const":"INVALID_ATTENDEE"},"message":{"type":"string","const":"Please provide an email address for this attendee."}},"required":["index","code","message"]},{"type":"object","properties":{"index":{"type":"string"},"code":{"type":"string","const":"INVALID_BOOKING_ITEM"},"message":{"type":"string","const":"Please select a ticket type for this attendee."}},"required":["index","code","message"]},{"type":"object","properties":{"index":{"type":"string"},"code":{"type":"string","const":"INVALID_BOOKING_ITEM"},"message":{"type":"string","const":"The selected ticket is not available for this order."}},"required":["index","code","message"]},{"type":"object","properties":{"index":{"type":"string"},"code":{"type":"string","const":"MAX_ATTENDEES_REACHED"},"message":{"type":"string","const":"All spots for this ticket have been filled."}},"required":["index","code","message"]}]}}},"required":["order_id","order_code","capacity","assigned_attendees","pending_attendee_slots","booking_items","created","updated","errors"]}},"required":["data"]}}}},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"UNAUTHORIZED"},"message":{"type":"string","const":"The details you provided don't match this order. Please verify your email or phone number."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this order. Please check your order number and try again."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/orders/{code}/pay-balance":{"post":{"operationId":"orders.payBalance","description":"Start a checkout for the remaining balance of a part-paid order. The callback lands on the\npay-later route, which credits it and issues the tickets once the order is paid in full.","summary":"POST /orders/{code}/pay-balance","tags":["Orders"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayOrderBalanceRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"order_id":{"type":"string"},"code":{"type":"string"},"amount":{"type":"number"},"balance":{"type":"number"},"currency":{"type":"string"},"checkout_url":{"type":["string","null"]}},"required":["order_id","code","amount","balance","currency","checkout_url"]}},"required":["data"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this order. Please check your order number and try again."}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"ORDER_NOT_PAYABLE"},"message":{"type":"string","const":"This order has no balance left to pay."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"},"502":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"PAYMENT_PROVIDER_ERROR"},"message":{"type":"string","const":"We couldn't start the payment. Please try again."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/events/{event}/orders":{"get":{"operationId":"orders.index","tags":["Orders"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"status","in":"query","description":"Accepts one bucket or a comma-separated list. Strict: every\ntoken must be a canonical bucket, otherwise 422.","schema":{"type":["string","null"]}},{"name":"search","in":"query","schema":{"type":["string","null"],"maxLength":255}},{"name":"page","in":"query","schema":{"type":["integer","null"],"minimum":1}},{"name":"per_page","in":"query","schema":{"type":["integer","null"],"minimum":1,"maximum":100}},{"name":"sort","in":"query","schema":{"type":["string","null"],"pattern":"^-?(created_at|total|status|code)$"}},{"name":"date_from","in":"query","schema":{"type":["string","null"],"format":"date-time"}},{"name":"date_to","in":"query","schema":{"type":["string","null"],"format":"date-time"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerEventOrderResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"total_orders":{"type":"integer","minimum":0},"completed_orders":{"type":"integer","minimum":0},"pending_orders":{"type":"integer","minimum":0},"refunded_orders":{"type":"integer","minimum":0},"total_revenue":{"type":"number"},"avg_order_value":{"type":"number"},"coupon_usage_count":{"type":"integer","minimum":0}},"required":["total_orders","completed_orders","pending_orders","refunded_orders","total_revenue","avg_order_value","coupon_usage_count"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/events/{event}/orders/{order}":{"get":{"operationId":"modules.events.organizer.orders.show","tags":["Orders"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"order","in":"path","required":true,"description":"The order ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerEventOrderDetailResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/events/{event}/orders/{order}/resend":{"post":{"operationId":"orders.resend","tags":["Orders"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"order","in":"path","required":true,"description":"The order ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"sent":{"type":"boolean"}},"required":["sent"]},"message":{"type":"string"}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"No email address on file for this customer."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"VALIDATION_ERROR"},"message":{"type":"string","const":"This order hasn't been paid yet, so there's no confirmation to resend."}},"required":["code","message"]}},"required":["error"]}]}}}},"429":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"TOO_MANY_REQUESTS"},"message":{"type":"string","const":"A confirmation was just sent. Please wait a few minutes before trying again."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/events/{event}/orders/{order}/remind":{"post":{"operationId":"orders.remind","tags":["Orders"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"order","in":"path","required":true,"description":"The order ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendOrderReminderRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"sent":{"type":"boolean"},"channel":{"type":"string"}},"required":["sent","channel"]},"message":{"type":"string","const":"Payment reminder sent"}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"CONFLICT"},"message":{"type":"string","const":"This order has already been paid. No reminder needed."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"},"429":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"TOO_MANY_REQUESTS"},"message":{"type":"string","const":"A reminder was recently sent. Please wait before sending another."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/events/{event}/orders/{order}/cancel":{"post":{"operationId":"orders.cancel","tags":["Orders"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}},{"name":"order","in":"path","required":true,"description":"The order ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"cancelled"}},"required":["id","status"]},"message":{"type":"string","const":"Order cancelled and tickets released"}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"409":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"CONFLICT"},"message":{"type":"string","const":"This order has already been cancelled."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"CONFLICT"},"message":{"type":"string","const":"Completed orders can't be cancelled."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/creator/orgs/{org}/plans":{"post":{"operationId":"orgPlan.store","tags":["OrgPlan"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgPlanStoreRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgPlan"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"get":{"operationId":"orgPlan.index","tags":["OrgPlan"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrgPlan"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","const":1},"per_page":{"type":"integer","minimum":0},"total_count":{"type":"integer","minimum":0},"total_pages":{"type":"integer","const":1}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection rollup, independent of any filter/pagination.","properties":{"total_plans":{"type":"integer","minimum":0},"total_active_subscribers":{"type":"integer"}},"required":["total_plans","total_active_subscribers"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/creator/orgs/{org}/posts":{"get":{"operationId":"orgPost.index","tags":["OrgPost"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"state","in":"query","schema":{"type":"string"}},{"name":"visibility","in":"query","schema":{"type":"string"}},{"name":"author","in":"query","schema":{"type":"string"}},{"name":"per_page","in":"query","schema":{"type":"integer","default":15}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"current_page":{"type":"integer"},"data":{"type":"string"},"first_page_url":{"type":"string"},"from":{"type":["integer","null"]},"last_page":{"type":"string"},"last_page_url":{"type":"string"},"links":{"type":"object","additionalProperties":{}},"next_page_url":{"type":"string"},"path":{"type":["string","null"]},"per_page":{"type":"integer"},"prev_page_url":{"type":["string","null"]},"to":{"type":["integer","null"]},"total":{"type":"string"},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"published":{"type":"integer","minimum":0},"draft":{"type":"integer"}},"required":["published","draft"]}},"required":["current_page","data","first_page_url","from","last_page","last_page_url","links","next_page_url","path","per_page","prev_page_url","to","total","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"You don't have permission to view drafts for this organization."}},"required":["message"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"orgPost.store","tags":["OrgPost"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgPostStoreRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgPost"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"$ref":"#/components/responses/AuthorizationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/{org}/posts/{post}":{"get":{"operationId":"orgPost.show","tags":["OrgPost"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"post","in":"path","required":true,"description":"The post ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrgPost"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"patch":{"operationId":"orgPost.update","tags":["OrgPost"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"post","in":"path","required":true,"description":"The post ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgPostUpdateRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgPost"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"$ref":"#/components/responses/AuthorizationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/{org}/posts/{post}/publish":{"post":{"operationId":"orgPost.publish","tags":["OrgPost"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"post","in":"path","required":true,"description":"The post ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgPost"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"$ref":"#/components/responses/AuthorizationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/{org}/posts/{post}/schedule":{"post":{"operationId":"orgPost.schedule","tags":["OrgPost"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"post","in":"path","required":true,"description":"The post ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"publish_at":{"type":"string","format":"date-time"}},"required":["publish_at"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrgPost"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/{org}/posts/media":{"post":{"operationId":"orgPost.media","tags":["OrgPost"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"filename":{"type":["string","null"],"maxLength":255},"content_type":{"type":["string","null"],"maxLength":120},"size_bytes":{"type":["integer","null"],"minimum":1}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"ready_for_upload"},"upload_url":{"type":"null"},"public_url":{"type":"null"},"metadata":{"type":"object","properties":{"filename":{"type":["string","null"]},"content_type":{"type":["string","null"]},"size_bytes":{"type":["string","null"]}},"required":["filename","content_type","size_bytes"]}},"required":["id","status","upload_url","public_url","metadata"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/{org}/subscriptions":{"post":{"operationId":"orgSubscription.store","tags":["OrgSubscription"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgSubscriptionStoreRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgSubscription"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/{org}/subscriptions/me":{"get":{"operationId":"orgSubscription.me","tags":["OrgSubscription"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OrgSubscription"},{"type":"null"}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/creator/orgs/{org}/subscriptions/{subscription}/cancel":{"post":{"operationId":"orgSubscription.cancel","tags":["OrgSubscription"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"subscription","in":"path","required":true,"description":"The subscription ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgSubscription"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"An error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview.","examples":[""]}},"required":["message"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organisation-manager-invites/{token}":{"get":{"operationId":"organisationManagerInvites.show","tags":["OrganisationManagerInvites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"email":{"type":"string"},"role":{"type":"string"},"organization":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["id","name","slug"]},"expires_at":{"type":"string"}},"required":["email","role","organization","expires_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_NOT_FOUND"},"message":{"type":"string","const":"This invite is no longer valid."}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invite has expired. Please ask for a new one."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organisation-manager-invites/{token}/accept":{"post":{"operationId":"organisationManagerInvites.accept","tags":["OrganisationManagerInvites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"organization_event_manager"},"organization":{"type":["object","null"],"properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}},"required":["id","slug","name"]},"role":{"type":"string"},"abilities":{"type":"array","items":{"type":"string"}},"scope":{"type":"string","const":"all_events"}},"required":["type","organization","role","abilities","scope"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EMAIL_MISMATCH"},"message":{"type":"string","const":"This invite was sent to a different email address."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_NOT_FOUND"},"message":{"type":"string","const":"This invite is no longer valid."}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invite has expired. Please ask for a new one."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/managers":{"get":{"operationId":"organisationManagers.index","tags":["OrganisationManagers"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"user_id":{"type":"string"},"name":{"type":["string","null"]},"email":{"type":["string","null"]},"role":{"type":"string"},"abilities":{"type":"array","items":{"type":"string"}},"created_at":{"type":["string","null"]}},"required":["id","user_id","name","email","role","abilities","created_at"]}},"pending_invites":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"},"expires_at":{"type":"string"},"expired":{"type":"boolean"},"created_at":{"type":["string","null"]}},"required":["id","email","role","expires_at","expired","created_at"]}},"meta":{"type":"object","properties":{"total_count":{"type":"integer"}},"required":["total_count"]},"summary":{"type":"object","properties":{"managers":{"type":"integer","minimum":0},"pending_invites":{"type":"integer","minimum":0}},"required":["managers","pending_invites"]}},"required":["data","pending_invites","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"post":{"operationId":"organisationManagers.store","tags":["OrganisationManagers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":255},"role":{"type":"string","enum":["lead","finance","check_in","editor","viewer"]}},"required":["email","role"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"manager"},"id":{"type":"string"},"user_id":{"type":"string"},"role":{"type":"string"}},"required":["type","id","user_id","role"]}},"required":["data"]},{"type":"object","properties":{"data":{"type":"object","properties":{"type":{"type":"string","const":"invite"},"id":{"type":"string"},"email":{"type":"string"},"role":{"type":"string"}},"required":["type","id","email","role"]}},"required":["data"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/managers/{manager}":{"put":{"operationId":"organisationManagers.update","tags":["OrganisationManagers"],"parameters":[{"name":"manager","in":"path","required":true,"description":"The manager ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["lead","finance","check_in","editor","viewer"]}},"required":["role"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"role":{"type":"string"}},"required":["id","role"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"organisationManagers.destroy","tags":["OrganisationManagers"],"parameters":[{"name":"manager","in":"path","required":true,"description":"The manager ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted_at":{"type":"string"}},"required":["id","deleted_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/manager-invites/{invite}/resend":{"post":{"operationId":"organisationManagers.resendInvite","tags":["OrganisationManagers"],"parameters":[{"name":"invite","in":"path","required":true,"description":"The invite ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"expires_at":{"type":"string"}},"required":["id","expires_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_ALREADY_ACCEPTED"},"message":{"type":"string","const":"This invite has already been accepted."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/manager-invites/{invite}":{"delete":{"operationId":"organisationManagers.cancelInvite","tags":["OrganisationManagers"],"parameters":[{"name":"invite","in":"path","required":true,"description":"The invite ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted_at":{"type":"string"}},"required":["id","deleted_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/creator/orgs/{org}/follow":{"post":{"operationId":"organizationFollower.store","tags":["OrganizationFollower"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizationFollowRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"org_id":{"type":"string"},"is_following":{"type":"boolean"},"followers_count":{"type":"integer","minimum":0},"followed_at":{"type":["string","null"]}},"required":["org_id","is_following","followers_count","followed_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"$ref":"#/components/responses/AuthorizationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"organizationFollower.destroy","tags":["OrganizationFollower"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"org_id":{"type":"string"},"is_following":{"type":"boolean"},"followers_count":{"type":"integer","minimum":0}},"required":["org_id","is_following","followers_count"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/creator/orgs/{org}/followers":{"get":{"operationId":"organizationFollower.index","tags":["OrganizationFollower"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"per_page","in":"query","schema":{"type":"integer","default":15}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"current_page":{"type":"integer"},"data":{"type":"string"},"first_page_url":{"type":"string"},"from":{"type":["integer","null"]},"last_page":{"type":"string"},"last_page_url":{"type":"string"},"links":{"type":"object","additionalProperties":{}},"next_page_url":{"type":"string"},"path":{"type":["string","null"]},"per_page":{"type":"integer"},"prev_page_url":{"type":["string","null"]},"to":{"type":["integer","null"]},"total":{"type":"string"},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]}},"required":["current_page","data","first_page_url","from","last_page","last_page_url","links","next_page_url","path","per_page","prev_page_url","to","total","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/creator/orgs/{org}/invites":{"post":{"operationId":"organizationInvite.store","tags":["OrganizationInvite"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreOrganizationInviteRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"This person is already a member of the organization."}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/orgs/invites/{token}/accept":{"post":{"operationId":"organizationInvite.accept","tags":["OrganizationInvite"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"accepted"},"member":{"type":"string"}},"required":["status","member"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"This invite was sent to a different email address. Please sign in with the correct account."}},"required":["message"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this invite. The link may be incorrect or expired."}},"required":["message"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"This invite has expired. Please ask for a new one."}},"required":["message"]}}}}}}},"/v1/creator/orgs/invites/{token}/decline":{"post":{"operationId":"organizationInvite.decline","tags":["OrganizationInvite"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","const":"declined"},"invite":{"type":"string"}},"required":["status","invite"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"This invite was sent to a different email address. Please sign in with the correct account."}},"required":["message"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this invite. The link may be incorrect or expired."}},"required":["message"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"This invite has expired. Please ask for a new one."}},"required":["message"]}}}}}}},"/v1/creator/orgs/{org}/members":{"get":{"operationId":"organizationMember.index","tags":["OrganizationMember"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationMember"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","const":1},"per_page":{"type":"integer","minimum":0},"total_count":{"type":"integer","minimum":0},"total_pages":{"type":"integer","const":1}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection role breakdown; every role key present (zeroes\nincluded), independent of any filter/pagination.","properties":{"by_role":{"type":"object","additionalProperties":{"type":"integer"}}},"required":["by_role"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/creator/orgs/{org}/members/{user}":{"patch":{"operationId":"organizationMember.update","tags":["OrganizationMember"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"user","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationMemberRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"$ref":"#/components/schemas/OrganizationMember"},{"type":"null"}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"organizationMember.destroy","tags":["OrganizationMember"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}},{"name":"user","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"Cannot remove the last Owner"}},"required":["message"]}}}}}}},"/v1/tenant/orgs":{"get":{"operationId":"modules.organizations.organizations.index_285","summary":"Display a listing of the resource","tags":["Organizations"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"organizations":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResource"}}},"required":["organizations"]}}}}}}},"/v1/tenant/orgs/{org}":{"get":{"operationId":"modules.organizations.organizations.show_286","summary":"Show the specified resource","tags":["Organizations"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"`OrganizationResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizationResource"},"summary":{"type":"object","description":"Whole-collection aggregates, independent of any filter.","properties":{"members":{"type":"integer","minimum":0},"events":{"type":"integer","minimum":0},"followers":{"type":"integer","minimum":0}},"required":["members","events","followers"]}},"required":["data","summary"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/tenant-admin/orgs":{"get":{"operationId":"modules.organizations.organizations.index_289","summary":"Display a listing of the resource","tags":["Organizations"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"organizations":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResource"}}},"required":["organizations"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant-admin/orgs/{org}":{"get":{"operationId":"modules.organizations.organizations.show_290","summary":"Show the specified resource","tags":["Organizations"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"`OrganizationResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizationResource"},"summary":{"type":"object","description":"Whole-collection aggregates, independent of any filter.","properties":{"members":{"type":"integer","minimum":0},"events":{"type":"integer","minimum":0},"followers":{"type":"integer","minimum":0}},"required":["members","events","followers"]}},"required":["data","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/creator/orgs":{"post":{"operationId":"organizations.store","summary":"Store a newly created resource in storage.\nAccepts multipart/form-data with image files","tags":["Organizations"],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/StoreOrganizationRequest"}}}},"responses":{"201":{"description":"`OrganizationResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizationResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"get":{"operationId":"organizations.creatorOrgs","summary":"Display a listing of the resource for the authenticated creator (owner)","tags":["Organizations"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"organizations":{"type":"array","description":"`organizations` kept for backward compatibility; `data`/`meta`\nare the canonical additive block.","items":{"$ref":"#/components/schemas/OrganizationResource"}},"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizationResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer","const":1},"per_page":{"type":"integer","minimum":0},"total_count":{"type":"integer","minimum":0},"total_pages":{"type":"integer","const":1}},"required":["current_page","per_page","total_count","total_pages"]}},"required":["organizations","data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/creator/orgs/{org}":{"get":{"operationId":"modules.organizations.organizations.show_293","summary":"Show the specified resource","tags":["Organizations"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"responses":{"200":{"description":"`OrganizationResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizationResource"},"summary":{"type":"object","description":"Whole-collection aggregates, independent of any filter.","properties":{"members":{"type":"integer","minimum":0},"events":{"type":"integer","minimum":0},"followers":{"type":"integer","minimum":0}},"required":["members","events","followers"]}},"required":["data","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"patch":{"operationId":"organizations.update","summary":"Update the specified resource in storage.\nAccepts multipart/form-data with image files","tags":["Organizations"],"parameters":[{"name":"org","in":"path","required":true,"description":"The org handle","schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationRequest"}}}},"responses":{"200":{"description":"`OrganizationResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizationResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/payments":{"get":{"operationId":"payments.index","tags":["Payments"],"parameters":[{"name":"status","in":"query","schema":{"type":"string"}},{"name":"provider","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerPaymentResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/payments/{payment}":{"get":{"operationId":"payments.show","tags":["Payments"],"parameters":[{"name":"payment","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerPaymentResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"FORBIDDEN"},"message":{"type":"string","const":"You don't have access to this payment."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/plus/contents/{content}/fee-preview":{"get":{"operationId":"payouts.feePreview","summary":"GET /organizer/plus/contents/{content}/fee-preview?scale=N\nReturns the projected split so creators can see their take-home before publishing","tags":["Payouts"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"basis":{"type":"string"},"unit_price_cents":{"type":"integer"},"scale":{},"gross_cents":{"type":"number"},"mux_cost_cents":{"type":"integer"},"mux_cost_source":{"type":"string","const":"estimated"},"gross_after_mux_cents":{},"percentages":{"type":"object","properties":{"platform_pct":{"type":"number"},"tenant_pct":{"type":"number"},"organizer_pct":{}},"required":["platform_pct","tenant_pct","organizer_pct"]},"platform_cut_cents":{"type":"integer"},"tenant_cut_cents":{"type":"integer"},"creator_take_home_cents":{"type":"number"},"currency":{"type":"string","const":"KES"}},"required":["basis","unit_price_cents","scale","gross_cents","mux_cost_cents","mux_cost_source","gross_after_mux_cents","percentages","platform_cut_cents","tenant_cut_cents","creator_take_home_cents","currency"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/plus/payout-requests":{"post":{"operationId":"payouts.requestPayout","summary":"POST /organizer/plus/payout-requests\nMirrors the Events payout-request contract with scope=plus","tags":["Payouts"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"amount":{"type":"number","minimum":1},"reason":{"type":["string","null"],"maxLength":1000},"content_id":{"type":["string","null"],"format":"uuid"}},"required":["amount"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"scope":{"type":"string","const":"plus"},"amount_cents":{"type":"integer"},"currency":{"type":"string","const":"KES"},"status":{"type":"string","const":"requested"},"balance_cents_at_request":{"type":"integer"}},"required":["id","scope","amount_cents","currency","status","balance_cents_at_request"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/streams/playback_ids":{"post":{"operationId":"streams.playback_ids.store","tags":["PlaybackIds"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resource":{"type":"string","maxLength":64},"policy":{"type":"string","enum":["public","signed"]}},"required":["resource","policy"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/streams/playback_ids/{id}":{"delete":{"operationId":"streams.playback_ids.destroy","tags":["PlaybackIds"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/streams/playback_tokens":{"post":{"operationId":"streams.playback_tokens.store","tags":["PlaybackTokens"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"resource":{"type":"string","maxLength":64},"device_id":{"type":"string","maxLength":255},"customer":{"type":"string","maxLength":255},"country":{"type":["string","null"],"minLength":2,"maxLength":2},"domain":{"type":["string","null"],"maxLength":255}},"required":["resource","device_id","customer"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"access_session"},"entitlement":{"type":"string"},"customer":{"type":["string","null"]},"contact_hash":{"type":["string","null"]},"resource":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"variant":{"type":["string","null"]}},"required":["type","id","variant"]},"device_id":{"type":"string"},"state":{"type":"string"},"expires_at":{"type":"string"},"heartbeat_interval":{"type":"integer"},"grant":{"type":"string"}},"required":["id","object","entitlement","customer","contact_hash","resource","device_id","state","expires_at","heartbeat_interval","grant"]}},"required":["data"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/promotions":{"get":{"operationId":"promotions.index","summary":"Display a listing of the resource","tags":["Promotions"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"post":{"operationId":"promotions.store","summary":"Store a newly created resource in storage","tags":["Promotions"],"responses":{"200":{"description":""},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/creator/promotions/{id}":{"patch":{"operationId":"promotions.update","summary":"Update the specified resource in storage","tags":["Promotions"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":""},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/plus/certificates/verify/{serial}":{"get":{"operationId":"publicCertificateVerify.show","tags":["PublicCertificateVerify"],"parameters":[{"name":"serial","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"serial_number":{"type":"string"},"issued_at":{"type":["string","null"]},"revoked":{"type":"boolean"},"revoked_at":{"type":["string","null"]},"course":{"type":"object","properties":{"title":{"type":["string","null"]}},"required":["title"]},"recipient":{"type":"object","properties":{"first_name":{"type":["string","null"],"description":"Privacy-minimal: only first name shown publicly."}},"required":["first_name"]}},"required":["serial_number","issued_at","revoked","revoked_at","course","recipient"]}},"required":["data"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"No certificate matches that serial number."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/plus/contents":{"get":{"operationId":"publicContents.index","tags":["PublicContents"],"parameters":[{"name":"category","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}},{"name":"search","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Paginated set of `PublicContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/PublicContentResource"},{"type":"object","required":["organization"]}]}},"links":{"type":"object","properties":{"first":{"type":"string"},"last":{"type":"string"},"prev":{"type":["string","null"]},"next":{"type":"string"}},"required":["first","last","prev","next"]},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"from":{"type":["integer","null"]},"last_page":{"type":"string"},"links":{"type":"object","additionalProperties":{}},"path":{"type":["string","null"]},"per_page":{"type":"integer"},"to":{"type":["integer","null"]},"total":{"type":"string"}},"required":["current_page","from","last_page","links","path","per_page","to","total"]}},"required":["data","links","meta"]}}}}}}},"/v1/plus/contents/categories/top":{"get":{"operationId":"publicContents.topCategories","tags":["PublicContents"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"category":{"type":["string","null"]},"count":{"type":"integer"}},"required":["category","count"]}}},"required":["data"]}}}}}}},"/v1/plus/contents/{content}":{"get":{"operationId":"publicContents.show","tags":["PublicContents"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`PublicContentResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/PublicContentResource"},{"type":"object","required":["items","organization"]}]}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/plus/contents/{content}/trailer":{"get":{"operationId":"publicContents.trailer","tags":["PublicContents"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"item_id":{"type":"string"},"duration_seconds":{"type":["integer","null"]},"aspect_ratio":{"type":["string","null"]},"max_resolution_tier":{"type":["string","null"]},"available":{"type":"boolean"}},"required":["item_id","duration_seconds","aspect_ratio","max_resolution_tier","available"]}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/plus/orders":{"post":{"operationId":"publicOrders.store","tags":["PublicOrders"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePlusOrderRequest"}}}},"responses":{"201":{"description":"`PublicOrderResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicOrderResource"},"meta":{"type":"object","properties":{"checkout_url":{"type":["string","null"]}},"required":["checkout_url"]}},"required":["data","meta"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"Content item not found on the specified content."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"Content not found or not available for purchase."}},"required":["code","message"]}},"required":["error"]}]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/plus/orders/{code}":{"get":{"operationId":"publicOrders.show","tags":["PublicOrders"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`PublicOrderResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/PublicOrderResource"},{"type":"object","required":["content"]}]}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/plus/contents/{content}/trailer/playback-token":{"post":{"operationId":"publicPlayback.trailerToken","tags":["PublicPlayback"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`PublicPlaybackTokenResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicPlaybackTokenResource"}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/plus/contents/{content}/items/{item}/playback-token":{"post":{"operationId":"publicPlayback.issue","tags":["PublicPlayback"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}},{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IssuePlaybackTokenRequest"}}}},"responses":{"200":{"description":"`PublicPlaybackTokenResource`","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicPlaybackTokenResource"}},"required":["data"]},{"type":"string"}]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/plus/playback-tokens/refresh":{"post":{"operationId":"publicPlayback.refresh","tags":["PublicPlayback"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefreshPlaybackTokenRequest"}}}},"responses":{"200":{"description":"`PublicPlaybackTokenResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicPlaybackTokenResource"}},"required":["data"]}}}},"403":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"SESSION_INVALID"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"SESSION_TAKEN_OVER"},"message":{"type":"string","const":"You're watching on another device. Tap \"Take over\" here to move the session."},"details":{"type":"object","properties":{"content_id":{"type":["string","null"]},"content_item_id":{"type":["string","null"]},"takeover_available":{"type":"boolean"}},"required":["content_id","content_item_id","takeover_available"]}},"required":["code","message","details"]}},"required":["error"]}]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/plus/playback-tokens/heartbeat":{"post":{"operationId":"publicPlayback.heartbeat","tags":["PublicPlayback"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaybackHeartbeatRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","const":"active"}},"required":["status"]}},"required":["data"]}}}},"403":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"SESSION_INVALID"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"SESSION_TAKEN_OVER"},"message":{"type":"string","const":"You're watching on another device. Tap \"Take over\" here to move the session."},"details":{"type":"object","properties":{"content_id":{"type":["string","null"]},"content_item_id":{"type":["string","null"]},"takeover_available":{"type":"boolean"}},"required":["content_id","content_item_id","takeover_available"]}},"required":["code","message","details"]}},"required":["error"]}]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/plus/subscription-plans":{"get":{"operationId":"publicSubscriptionPlans.index","tags":["PublicSubscriptionPlans"],"parameters":[{"name":"organization_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Array of `PublicSubscriptionPlanResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicSubscriptionPlanResource"}}},"required":["data"]}}}}}}},"/v1/plus/subscriptions/checkout":{"post":{"operationId":"publicSubscriptions.checkout","tags":["PublicSubscriptions"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionCheckoutRequest"}}}},"responses":{"201":{"description":"`PublicOrderResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicOrderResource"},"meta":{"type":"object","properties":{"checkout_url":{"type":["string","null"]},"subscription_id":{"type":"string"},"charge_id":{"type":"string"}},"required":["checkout_url","subscription_id","charge_id"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"Subscription plan not available."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/plus/subscriptions/{subscription}/renew":{"post":{"operationId":"publicSubscriptions.renew","tags":["PublicSubscriptions"],"parameters":[{"name":"subscription","in":"path","required":true,"description":"The subscription ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SubscriptionRenewRequest"}}}},"responses":{"200":{"description":"`PublicOrderResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicOrderResource"},"meta":{"type":"object","properties":{"checkout_url":{"type":["string","null"]},"subscription_id":{"type":"string"},"charge_id":{"type":"string"}},"required":["checkout_url","subscription_id","charge_id"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/creator/refund/{code}":{"post":{"operationId":"refund.refund","description":"A second request on the same booking answers 422 (the booking is no longer paid); the 409 is the race backstop.","summary":"Request a refund for a booking","tags":["Refund"],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":["string","null"]},"amount":{"type":["number","null"],"minimum":0}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Refund"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"409":{"description":"Conflict","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/settings":{"get":{"operationId":"settings.show","description":"Get organization settings.","summary":"GET /organizer/settings","tags":["Settings"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerSettingsResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"put":{"operationId":"settings.update","description":"Update organization settings.","summary":"PUT /organizer/settings","tags":["Settings"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizerSettingsRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"updated_at":{"type":"string"}},"required":["updated_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"HANDLE_TAKEN"},"message":{"type":"string","const":"This handle is already taken. Please choose a different one."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/settings/payout":{"put":{"operationId":"settings.updatePayout","description":"Update payout settings.","summary":"PUT /organizer/settings/payout","tags":["Settings"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePayoutSettingsRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"updated_at":{"type":"string"}},"required":["updated_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/settings/notifications":{"put":{"operationId":"settings.updateNotifications","description":"Update notification preferences.","summary":"PUT /organizer/settings/notifications","tags":["Settings"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotificationSettingsRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"updated_at":{"type":"string"}},"required":["updated_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/settings/api-keys":{"get":{"operationId":"settings.apiKeys","description":"Get API keys (for whitelabel integrations).","summary":"GET /organizer/settings/api-keys","tags":["Settings"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"has_keys":{"type":"boolean"},"public_key":{"type":["string","null"]},"last_used_at":{"type":["string","null"]},"created_at":{"type":"string"}},"required":["has_keys","public_key","last_used_at","created_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"FEATURE_NOT_AVAILABLE"},"message":{"type":"string","const":"API keys are only available for whitelabel accounts. Please upgrade to access this feature."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/settlements":{"get":{"operationId":"settlements.index","tags":["Settlements"],"parameters":[{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerSettlementResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"by_status":{"type":"object","additionalProperties":{"type":"integer"}},"total_settled_cents":{"type":"integer","description":"event_settlements.amount is a decimal in major units; the\ndocumented contract is *_cents, so convert."},"total_unsettled_cents":{"type":"integer"}},"required":["by_status","total_settled_cents","total_unsettled_cents"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/settlements/by-event":{"get":{"operationId":"settlements.byEvent","tags":["Settlements"],"parameters":[{"name":"finalized","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"event_id":{"type":"string"},"event_name":{"type":"string"},"total_processed_cents":{"type":"integer"},"platform_fees_cents":{"type":"integer"},"settled_cents":{"type":"integer"},"unsettled_cents":{},"batch_count":{"type":"integer"},"settlement_finalized_at":{"type":["string","null"]}},"required":["event_id","event_name","total_processed_cents","platform_fees_cents","settled_cents","unsettled_cents","batch_count","settlement_finalized_at"]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"total_events":{"type":"integer","minimum":0},"total_collected_cents":{"type":"integer"},"total_settled_cents":{"type":"integer"},"total_unsettled_cents":{"type":"integer"}},"required":["total_events","total_collected_cents","total_settled_cents","total_unsettled_cents"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/settlements/{settlement}":{"get":{"operationId":"settlements.show","tags":["Settlements"],"parameters":[{"name":"settlement","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/OrganizerSettlementResource"},{"type":"object","required":["event"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/organizer/events/{eventId}/money-movements":{"get":{"operationId":"settlements.moneyMovements","tags":["Settlements"],"parameters":[{"name":"eventId","in":"path","required":true,"schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"direction":{"type":"string"},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"description":{"type":["string","null"]},"reference":{"type":["string","null"]},"settlement_batch_id":{"type":["string","null"]},"created_at":{"type":["string","null"]}},"required":["id","type","direction","amount_cents","currency","description","reference","settlement_batch_id","created_at"]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"total_collected_cents":{"type":"integer"},"total_accrued_cents":{"type":"integer"},"total_paid_cents":{"type":"integer"},"outstanding_cents":{}},"required":["total_collected_cents","total_accrued_cents","total_paid_cents","outstanding_cents"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"Event not found."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/organizer/payout-requests":{"post":{"operationId":"settlements.requestPayout","tags":["Settlements"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePayoutRequestRequest"}}}},"responses":{"201":{"description":"`PayoutRequestResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PayoutRequestResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"get":{"operationId":"settlements.payoutRequests","tags":["Settlements"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PayoutRequestResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection status breakdown, independent of the `status`\nfilter and pagination.","properties":{"by_status":{"type":"object","additionalProperties":{"type":"integer"}}},"required":["by_status"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/streams/signing_keys":{"get":{"operationId":"streams.signing_keys.index","tags":["SigningKeys"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}},"post":{"operationId":"streams.signing_keys.store","summary":"No idempotency key: the response holds a private key that is shown once, so it must not be stored for replay","tags":["SigningKeys"],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{}}},"required":["data"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}}}}},"/v1/streams/signing_keys/{id}":{"delete":{"operationId":"streams.signing_keys.destroy","tags":["SigningKeys"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/streams/live_streams/{id}/simulcast_targets":{"get":{"operationId":"streams.simulcast_targets.index","tags":["SimulcastTargets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string"}},"required":["data"]}}}}}},"post":{"operationId":"streams.simulcast_targets.store","tags":["SimulcastTargets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","pattern":"#^rtmps?://#i","maxLength":2048},"stream_key":{"type":"string","maxLength":512}},"required":["url","stream_key"]}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/streams/live_streams/{id}/simulcast_targets/{targetId}":{"delete":{"operationId":"streams.simulcast_targets.destroy","tags":["SimulcastTargets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"targetId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/events/{event}/social-proof":{"get":{"operationId":"events.social-proof","summary":"Get social proof data for an event","tags":["SocialProof"],"parameters":[{"name":"event","in":"path","required":true,"description":"Route model binding via slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"string","description":"/me runs without the tenant middleware, so scope the lookups to the tenant being asked about."}},"required":["data"]}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/spark/internal/score-trace":{"get":{"operationId":"spark.internal.score-trace","tags":["SparkInternalTrace"],"parameters":[{"name":"identity_id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"event_id","in":"query","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"identity_id":{"type":"string"},"event_id":{"type":"string"},"scoring_run_id":{"type":["string","null"]},"scored_at":{"type":["string","null"]},"total_score":{"type":["number","null"]},"breakdown":{"type":"object","additionalProperties":{}},"run_other_events":{"type":"array","items":{"type":"object","properties":{"event_id":{"type":"string"},"total_score":{"type":"number"}},"required":["event_id","total_score"]}}},"required":["identity_id","event_id","scoring_run_id","scored_at","total_score","breakdown","run_other_events"]}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/streams/live_streams/{id}/stats":{"get":{"operationId":"streams.live_streams.stats","summary":"Read the live numbers of a live stream","tags":["Stats"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string"},"provider":{"type":"string"},"active_since":{"type":["string","null"]},"viewers_now":{"type":"integer"},"peak_viewers":{"type":"integer"},"moments_count":{"type":"integer","minimum":0}},"required":["status","provider","active_since","viewers_now","peak_viewers","moments_count"]}},"required":["data"]}}}}}}},"/v1/streams/live_streams/{id}/stats/public":{"get":{"operationId":"streams.live_streams.stats.public","description":"The one number a page may show its viewers. Cacheable for five seconds (the route sets the header).","summary":"Read the viewer count of a live stream","tags":["Stats"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"viewers_now":{"type":"integer"}},"required":["viewers_now"]}},"required":["data"]}}}}}}},"/v1/creator/studio/capabilities":{"get":{"operationId":"studio.capabilities","tags":["Studio"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"tenant_code":{"type":"string"},"capsule_id":{"type":"string"},"organization_id":{"type":"string"},"presentation_terms":{"type":"object","properties":{"organization":{"type":"string","const":"Capsule"},"fanbase":{"type":"string","const":"Audience"},"plus":{"type":"string","const":"Drops"},"event":{"type":"string","const":"Live"},"organizer_dashboard":{"type":"string","const":"Kulture Studio"},"settlements":{"type":"string","const":"Revenue"},"shops":{"type":"string","const":"Merch"}},"required":["organization","fanbase","plus","event","organizer_dashboard","settlements","shops"]},"features":{"type":"object","properties":{"drops":{"type":"string"},"kulture_videos":{"type":"string"},"live":{"type":"string"},"posts":{"type":"string"},"audience":{"type":"string"},"revenue":{"type":"string"},"merch":{"type":"string"},"subscriptions":{"type":"string"},"mux_insights":{"type":"string"},"social_auth_available":{"type":"boolean"},"content_types":{"type":"object","properties":{"standalone_video":{"type":"string"},"playlist":{"type":"string"},"course":{"type":"string"},"live_stream":{"type":"string"},"trailers":{"type":"string"},"captions":{"type":"string"},"scheduled_release":{"type":"string"},"per_episode_purchase":{"type":"string"},"simulcast":{"type":"string"},"rentals":{"type":"string"}},"required":["standalone_video","playlist","course","live_stream","trailers","captions","scheduled_release","per_episode_purchase","simulcast","rentals"]}},"required":["drops","kulture_videos","live","posts","audience","revenue","merch","subscriptions","mux_insights","social_auth_available","content_types"]}},"required":["tenant_code","capsule_id","organization_id","presentation_terms","features"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/creator/studio/summary":{"get":{"operationId":"studio.summary","tags":["Studio"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"capsule":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"public_url":{"type":"string"},"avatar_url":{"type":["string","null"]},"cover_url":{"type":["string","null"]},"readiness":{"type":"object","properties":{"score":{"type":"integer"},"status":{"type":"string","enum":["strong","shareable","draft"]},"missing_items":{"type":"array","items":{"type":"string","enum":["name","handle","bio","avatar","cover","contact","links"]}}},"required":["score","status","missing_items"]}},"required":["id","name","slug","public_url","avatar_url","cover_url","readiness"]},"work_counts":{"type":"object","properties":{"drops":{"type":"object","additionalProperties":{"type":"integer"}},"kulture_videos":{"type":"object","additionalProperties":{"type":"integer"}},"live":{"type":"object","additionalProperties":{"type":"integer"}},"posts":{"type":"object","additionalProperties":{"type":"integer"}},"merch":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}},"required":["drops","kulture_videos","live","posts","merch"]},"media_health":{"type":"object","properties":{"processing":{"type":"integer","minimum":0},"failed":{"type":"integer","minimum":0},"ready":{"type":"integer","minimum":0},"missing_trailer":{"type":"integer","minimum":0},"missing_poster":{"type":"integer","minimum":0}},"required":["processing","failed","ready","missing_trailer","missing_poster"]},"audience":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"growth":{"type":"integer"},"new_followers":{"type":"integer","minimum":0},"active_supporters":{"type":"integer","minimum":0},"subscribers":{"type":"integer","minimum":0}},"required":["total","growth","new_followers","active_supporters","subscribers"]},"revenue":{"type":"object","properties":{"currency":{"type":"string","const":"KES"},"gross_collected_cents":{"type":"integer"},"platform_fee_cents":{"type":"integer"},"tenant_fee_cents":{"type":"integer"},"mux_media_cost_cents":{"type":"integer"},"fulfillment_cost_cents":{"type":"integer"},"net_creator_amount_cents":{"type":"integer"},"refund_amount_cents":{"type":"integer"},"payout_ready_amount_cents":{},"pending_review_amount_cents":{"type":"integer"},"processing_amount_cents":{"type":"integer"},"paid_out_amount_cents":{"type":"integer"},"failed_amount_cents":{"type":"integer"}},"required":["currency","gross_collected_cents","platform_fee_cents","tenant_fee_cents","mux_media_cost_cents","fulfillment_cost_cents","net_creator_amount_cents","refund_amount_cents","payout_ready_amount_cents","pending_review_amount_cents","processing_amount_cents","paid_out_amount_cents","failed_amount_cents"]},"review_queue":{"type":"object","additionalProperties":{"type":"integer"}},"next_actions":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"label":{"type":"string"},"reason":{"type":"string","const":"Improves Capsule readiness."},"priority":{"type":"string","const":"high"},"target_url":{"type":"string"}},"required":["key","label","reason","priority","target_url"]}}},"required":["capsule","work_counts","media_health","audience","revenue","review_queue","next_actions"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/creator/studio/audience":{"get":{"operationId":"studio.audience","tags":["Studio"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"total":{"type":"integer","minimum":0},"segments":{"type":"object","properties":{"new":{"type":"integer","minimum":0},"active":{"type":"integer","minimum":0},"buyer":{"type":"integer","minimum":0},"watcher":{"type":"integer","minimum":0},"live_attendee":{"type":"integer"},"subscriber":{"type":"integer","minimum":0},"dormant":{"type":"integer","minimum":0},"high_value_supporter":{"type":"integer"}},"required":["new","active","buyer","watcher","live_attendee","subscriber","dormant","high_value_supporter"]}},"required":["total","segments"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/creator/studio/audience/people":{"get":{"operationId":"studio.people","tags":["Studio"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"user_id":{"type":"string"},"display_name":{"type":["string","null"]},"has_email":{"type":"boolean"},"has_phone":{"type":"boolean"},"joined_at":{"type":["string","null"]},"last_meaningful_activity_at":{"type":["string","null"]},"segments":{"type":"array","items":{}},"current_tier":{"type":["string","null"]},"contact_permissions":{"type":"array","items":{}}},"required":["user_id","display_name","has_email","has_phone","joined_at","last_meaningful_activity_at","segments","current_tier","contact_permissions"]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"integer"},"total_pages":{"type":"integer"}},"required":["current_page","per_page","total_count","total_pages"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/creator/studio/audience/activity":{"get":{"operationId":"studio.activity","tags":["Studio"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0},"meta":{"type":"object","properties":{"next_cursor":{"type":"null"},"has_more":{"type":"boolean"},"limit":{"type":"integer"}},"required":["next_cursor","has_more","limit"]},"summary":{"type":"object","properties":{"organization_id":{"type":"string"}},"required":["organization_id"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/creator/studio/revenue":{"get":{"operationId":"studio.revenue","tags":["Studio"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"currency":{"type":"string","const":"KES"},"gross_collected_cents":{"type":"integer"},"platform_fee_cents":{"type":"integer"},"tenant_fee_cents":{"type":"integer"},"mux_media_cost_cents":{"type":"integer"},"fulfillment_cost_cents":{"type":"integer"},"net_creator_amount_cents":{"type":"integer"},"refund_amount_cents":{"type":"integer"},"payout_ready_amount_cents":{},"pending_review_amount_cents":{"type":"integer"},"processing_amount_cents":{"type":"integer"},"paid_out_amount_cents":{"type":"integer"},"failed_amount_cents":{"type":"integer"}},"required":["currency","gross_collected_cents","platform_fee_cents","tenant_fee_cents","mux_media_cost_cents","fulfillment_cost_cents","net_creator_amount_cents","refund_amount_cents","payout_ready_amount_cents","pending_review_amount_cents","processing_amount_cents","paid_out_amount_cents","failed_amount_cents"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/creator/studio/mux-insights":{"get":{"operationId":"studio.muxInsights","tags":["Studio"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"watch_time_seconds":{},"completion_rate":{"type":"integer"},"unique_viewers":{"type":"integer","minimum":0},"average_watch_depth":{"type":"integer"},"playback_failures":{"type":"integer","minimum":0},"startup_time_ms":{"type":"null"},"rebuffering_rate":{"type":"null"},"asset_processing":{"type":"integer","minimum":0},"failed_assets":{"type":"integer","minimum":0},"captions_available":{"type":"integer","minimum":0},"thumbnail_readiness":{"type":"integer","minimum":0},"live_stream_disconnects":{"type":"integer"},"replay_asset_linkage":{"type":"integer"},"cache":{"type":"object","properties":{"interval_seconds":{"type":"integer","const":3600},"generated_at":{"type":"string"}},"required":["interval_seconds","generated_at"]}},"required":["watch_time_seconds","completion_rate","unique_viewers","average_watch_depth","playback_failures","startup_time_ms","rebuffering_rate","asset_processing","failed_assets","captions_available","thumbnail_readiness","live_stream_disconnects","replay_asset_linkage","cache"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/plus/subscription-plans":{"get":{"operationId":"subscriptionPlans.index","tags":["SubscriptionPlans"],"parameters":[{"name":"scope","in":"query","schema":{"type":"string"}},{"name":"status","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Array of `TenantAdminSubscriptionPlanResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TenantAdminSubscriptionPlanResource"}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}},"post":{"operationId":"subscriptionPlans.store","tags":["SubscriptionPlans"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreSubscriptionPlanRequest"}}}},"responses":{"201":{"description":"`TenantAdminSubscriptionPlanResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TenantAdminSubscriptionPlanResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/plus/subscription-plans/{plan}":{"get":{"operationId":"subscriptionPlans.show","tags":["SubscriptionPlans"],"parameters":[{"name":"plan","in":"path","required":true,"description":"The plan slug","schema":{"type":"string"}}],"responses":{"200":{"description":"`TenantAdminSubscriptionPlanResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TenantAdminSubscriptionPlanResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"put":{"operationId":"subscriptionPlans.update","tags":["SubscriptionPlans"],"parameters":[{"name":"plan","in":"path","required":true,"description":"The plan slug","schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSubscriptionPlanRequest"}}}},"responses":{"200":{"description":"`TenantAdminSubscriptionPlanResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TenantAdminSubscriptionPlanResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"subscriptionPlans.destroy","tags":["SubscriptionPlans"],"parameters":[{"name":"plan","in":"path","required":true,"description":"The plan slug","schema":{"type":"string"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"Plan has active subscriptions. Set status=inactive instead to hide it from new checkouts."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/tenant/admin/analytics":{"get":{"operationId":"tenantAdminAnalytics.summary","summary":"GET /api/v1/tenant/admin/analytics","tags":["TenantAdminAnalytics"],"parameters":[{"name":"organization_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"total_revenue":{"type":"number"},"total_tickets":{"type":"integer"},"active_events":{"type":"integer","minimum":0},"total_users":{"type":"integer","minimum":0}},"required":["total_revenue","total_tickets","active_events","total_users"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/analytics/revenue":{"get":{"operationId":"tenantAdminAnalytics.revenue","summary":"GET /api/v1/tenant/admin/analytics/revenue","tags":["TenantAdminAnalytics"],"parameters":[{"name":"organization_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"revenue":{"type":"number"}},"required":["date","revenue"]}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/analytics/users":{"get":{"operationId":"tenantAdminAnalytics.users","summary":"GET /api/v1/tenant/admin/analytics/users","tags":["TenantAdminAnalytics"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"new_users":{"type":"integer","minimum":0},"total_users":{"type":"integer","minimum":0}},"required":["date","new_users","total_users"]}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/analytics/organizers":{"get":{"operationId":"tenantAdminAnalytics.organizers","summary":"GET /api/v1/tenant/admin/analytics/organizers","tags":["TenantAdminAnalytics"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"organizer_id":{"type":"string"},"organizer_name":{"type":"string"},"events_count":{"type":"string"},"tickets_sold":{"type":"integer"},"revenue":{"type":"number"}},"required":["organizer_id","organizer_name","events_count","tickets_sold","revenue"]}},"meta":{"type":"object","properties":{"limit":{"type":"integer"},"returned":{"type":"integer"},"total_available":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["limit","returned","total_available","truncated"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/analytics/by-country":{"get":{"operationId":"tenantAdminAnalytics.byCountry","summary":"GET /api/v1/tenant/admin/analytics/by-country","tags":["TenantAdminAnalytics"],"parameters":[{"name":"organization_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","prefixItems":[{"type":"object","properties":{"country":{"type":"string"},"events_count":{"type":"integer","minimum":0},"tickets_sold":{"type":"integer"},"revenue":{"type":"number"}},"required":["country","events_count","tickets_sold","revenue"]}],"minItems":1,"maxItems":1},"meta":{"type":"object","properties":{"limit":{"type":"integer"},"returned":{"type":"integer"},"total_available":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["limit","returned","total_available","truncated"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/analytics/by-category":{"get":{"operationId":"tenantAdminAnalytics.byCategory","summary":"GET /api/v1/tenant/admin/analytics/by-category","tags":["TenantAdminAnalytics"],"parameters":[{"name":"organization_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string"},"events_count":{"type":"integer"},"tickets_sold":{"type":"integer"},"revenue":{"type":"number"}},"required":["category","events_count","tickets_sold","revenue"]}},"meta":{"type":"object","properties":{"limit":{"type":"integer"},"returned":{"type":"integer"},"total_available":{"type":"integer"},"truncated":{"type":"boolean"}},"required":["limit","returned","total_available","truncated"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/analytics/tickets":{"get":{"operationId":"tenantAdminAnalytics.tickets","summary":"GET /api/v1/tenant/admin/analytics/tickets","tags":["TenantAdminAnalytics"],"parameters":[{"name":"organization_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"tickets_sold":{"type":"integer"},"cumulative":{"type":"integer"}},"required":["date","tickets_sold","cumulative"]}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/analytics/top-events":{"get":{"operationId":"tenantAdminAnalytics.topEvents","summary":"GET /api/v1/tenant/admin/analytics/top-events","tags":["TenantAdminAnalytics"],"parameters":[{"name":"organization_id","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"event_id":{"type":"string"},"event_name":{"type":"string"},"slug":{"type":"string"},"organizer_name":{"type":"string"},"tickets_sold":{"type":"integer"},"revenue":{"type":"number"},"status":{"type":"string"}},"required":["event_id","event_name","slug","organizer_name","tickets_sold","revenue","status"]}},"meta":{"type":"object","properties":{"limit":{"type":"integer"},"returned":{"type":"integer"},"total_available":{"type":"integer"},"truncated":{"type":"boolean"},"range":{"type":"string"}},"required":["limit","returned","total_available","truncated","range"]}},"required":["data","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/dashboard":{"get":{"operationId":"tenantAdminDashboard.dashboard","summary":"GET /api/v1/tenant/admin/dashboard","tags":["TenantAdminDashboard"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"stats":{"type":"object","properties":{"total_events":{"type":"integer","minimum":0},"total_revenue":{"type":"number"},"active_organizers":{"type":"integer","minimum":0},"tickets_sold":{"type":"integer"}},"required":["total_events","total_revenue","active_organizers","tickets_sold"]},"recent_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"organizer_name":{"type":"string"},"status":{"type":"string"},"tickets_sold":{"type":"integer"},"revenue":{"type":"number"}},"required":["id","name","organizer_name","status","tickets_sold","revenue"]}},"pending_approvals_count":{"type":"integer"},"settlement_health":{"type":"object","properties":{"collected_cents":{"type":"string"},"platform_fee_cents":{"type":"string"},"tenant_cut_cents":{"type":"string"},"net_to_organizer_cents":{"type":"string"},"paid_out_cents":{"type":"string"},"outstanding_cents":{"type":"string"}},"required":["collected_cents","platform_fee_cents","tenant_cut_cents","net_to_organizer_cents","paid_out_cents","outstanding_cents"]}},"required":["stats","recent_events","pending_approvals_count","settlement_health"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/approvals":{"get":{"operationId":"tenantAdminDashboard.approvals","summary":"GET /api/v1/tenant/admin/approvals","tags":["TenantAdminDashboard"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{"type":"string"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"null"},"total_pages":{}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection counts, independent of the type/status filter\nand pagination (fixes the dashboard badge capped at per_page).","properties":{"by_type":{"type":"object","properties":{"event":{"type":"integer","minimum":0},"organizer":{"type":"integer","minimum":0},"settlement":{"type":"integer","minimum":0}},"required":["event","organizer","settlement"]},"by_status":{"type":"object","properties":{"pending":{"type":"integer","minimum":0}},"required":["pending"]}},"required":["by_type","by_status"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/events":{"get":{"operationId":"tenantAdminEvents.index","summary":"GET /api/v1/tenant/admin/events","tags":["TenantAdminEvents"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"image_url":{"type":"string"},"organizer":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]}},"required":["id","name"]},"start_date":{"type":["string","null"]},"tickets_sold":{"type":"integer"},"currency":{"type":"string"},"revenue":{"type":"number"},"status":{"type":"string"}},"required":["id","name","slug","image_url","organizer","start_date","tickets_sold","currency","revenue","status"]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"all":{"type":"integer","minimum":0},"live":{"type":"integer","minimum":0},"pending":{"type":"integer","minimum":0},"ended":{"type":"integer","minimum":0},"rejected":{"type":"integer","minimum":0}},"required":["all","live","pending","ended","rejected"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/events/{eventId}":{"get":{"operationId":"tenantAdminEvents.show","summary":"GET /api/v1/tenant/admin/events/{id}","tags":["TenantAdminEvents"],"parameters":[{"name":"eventId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"tiny_url":{"type":["string","null"]},"description":{"type":["string","null"]},"status":{"type":"string"},"is_public":{"type":"boolean"},"is_sold_out":{"type":"boolean"},"image_url":{"type":["string","null"]},"poster_urls":{"type":"array","items":{}},"gallery":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"image_url":{"type":"string"},"position":{"type":"integer"}},"required":["id","image_url","position"]}},"schedule":{"type":"object","properties":{"start_date":{"type":"string"},"start_time":{"type":"string"},"end_date":{"type":["string","null"]},"end_time":{"type":["string","null"]}},"required":["start_date","start_time","end_date","end_time"]},"location":{"type":"object","properties":{"venue":{"type":"null"},"city":{"type":"null"},"country":{"type":"string","const":"Kenya"}},"required":["venue","city","country"]},"organizer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"handle":{"type":"string"},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"avatar_url":{"type":["string","null"]},"is_active":{"type":"boolean"},"owner":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"email":{"type":["string","null"]}},"required":["id","name","email"]}},"required":["id","name","handle","email","phone","avatar_url","is_active","owner"]},"financial":{"type":"object","properties":{"currency":{"type":"string"},"is_refundable":{"type":"boolean"},"requires_approval":{"type":"boolean"},"deduct_type":{"type":["string","null"]},"deduct_value":{"type":["integer","null"]},"settled_amount":{"type":"number"},"auto_settlement_enabled":{"type":"boolean"},"booking_expires_minutes":{"type":["integer","null"]}},"required":["currency","is_refundable","requires_approval","deduct_type","deduct_value","settled_amount","auto_settlement_enabled","booking_expires_minutes"]},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"price":{"type":"number"},"currency":{"anyOf":[{"type":"string"},{"type":"string","enum":["KES"]}]},"quantity":{"type":["integer","null"]},"sold":{"type":"integer"},"is_private":{"type":"boolean"},"is_sold_out":{"type":"boolean"},"people_per_ticket":{"type":"integer"},"per_person_limit":{"type":["integer","null"]},"sales_start":{"type":["string","null"]},"sales_end":{"type":["string","null"]},"flexible_payment":{"type":"object","properties":{"enabled":{"type":"boolean"},"deposit_percent":{"type":["number","null"]}},"required":["enabled","deposit_percent"]}},"required":["id","name","price","currency","quantity","sold","is_private","is_sold_out","people_per_ticket","per_person_limit","sales_start","sales_end","flexible_payment"]}},"slots":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"start_time":{"type":"string"},"is_active":{"type":"boolean"},"is_sold_out":{"type":"boolean"}},"required":["id","start_time","is_active","is_sold_out"]}},"collaborators":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"organization_name":{"type":"string"},"role":{"type":"string"},"status":{"type":"string"}},"required":["id","organization_id","organization_name","role","status"]}},"coupons":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"discount_type":{"type":"string"},"discount_value":{"type":"number"},"quantity":{"type":["integer","null"]},"status":{"type":"string"}},"required":["id","code","discount_type","discount_value","quantity","status"]}},"stats":{"type":"object","properties":{"tickets_sold":{"type":"integer"},"revenue":{"type":"number"}},"required":["tickets_sold","revenue"]},"review":{"type":"object","properties":{"approved_at":{"type":["string","null"]},"rejected_at":{"type":["string","null"]},"changes_requested_at":{"type":["string","null"]},"rejection_reason":{"type":["string","null"]},"requested_changes":{"type":["string","null"]},"review_note":{"type":["string","null"]},"reviewed_by":{"type":["object","null"],"properties":{"id":{"type":"string"},"name":{"type":["string","null"]}},"required":["id","name"]}},"required":["approved_at","rejected_at","changes_requested_at","rejection_reason","requested_changes","review_note","reviewed_by"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","name","slug","tiny_url","description","status","is_public","is_sold_out","image_url","poster_urls","gallery","schedule","location","organizer","financial","ticket_types","slots","collaborators","coupons","stats","review","created_at","updated_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this event."}},"required":["message"]}}}}}}},"/v1/tenant/admin/events/{eventId}/approve":{"post":{"operationId":"tenantAdminEvents.approve","summary":"POST /api/v1/tenant/admin/events/{id}/approve","tags":["TenantAdminEvents"],"parameters":[{"name":"eventId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAdminApproveEventRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"live"},"approved_at":{"type":"string"},"tenant_cut_percentage":{"type":["string","null"]}},"required":["id","status","approved_at","tenant_cut_percentage"]},"message":{"type":"string","const":"Event approved successfully."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this event."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/events/{eventId}/reject":{"post":{"operationId":"tenantAdminEvents.reject","summary":"POST /api/v1/tenant/admin/events/{id}/reject","tags":["TenantAdminEvents"],"parameters":[{"name":"eventId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAdminRejectEventRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"rejection_reason":{"type":"string"}},"required":["id","status","rejection_reason"]},"message":{"type":"string","const":"Event rejected."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this event."}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/events/{eventId}/request-changes":{"post":{"operationId":"tenantAdminEvents.requestChanges","summary":"POST /api/v1/tenant/admin/events/{id}/request-changes","tags":["TenantAdminEvents"],"parameters":[{"name":"eventId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAdminRequestChangesEventRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"requested_changes":{"type":"string"}},"required":["id","status","requested_changes"]},"message":{"type":"string","const":"Changes requested from organizer."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this event."}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/events/{eventId}/fee-preview":{"get":{"operationId":"tenantAdminEvents.feePreview","summary":"GET /api/v1/tenant/admin/events/{id}/fee-preview","tags":["TenantAdminEvents"],"parameters":[{"name":"eventId","in":"path","required":true,"schema":{"type":"string"}},{"name":"tenant_cut_percentage","in":"query","required":true,"schema":{"type":"number","minimum":0,"maximum":93}},{"name":"sample_amount_cents","in":"query","schema":{"type":["integer","null"],"minimum":100}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"sample_amount_cents":{"type":"integer"},"platform_fee_percentage":{"type":"number"},"tenant_cut_percentage":{"type":"number"},"organizer_percentage":{"type":"number"},"platform_amount_cents":{"type":"integer"},"tenant_amount_cents":{"type":"integer"},"organizer_amount_cents":{},"wallets":{"type":"object","properties":{"incoming_payin_wallet":{"type":"string"},"outgoing_payout_wallet":{"type":"string"},"platform_revenue_wallet":{"type":"string"},"tenant_wallet":{"type":"string"},"organizer_wallet":{"type":["string","null"]}},"required":["incoming_payin_wallet","outgoing_payout_wallet","platform_revenue_wallet","tenant_wallet","organizer_wallet"]}},"required":["sample_amount_cents","platform_fee_percentage","tenant_cut_percentage","organizer_percentage","platform_amount_cents","tenant_amount_cents","organizer_amount_cents","wallets"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this event."}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/fanbases":{"get":{"operationId":"tenantAdminFanbases.index","summary":"GET /api/v1/tenant/admin/fanbases","tags":["TenantAdminFanbases"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{"type":"string"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"null"},"total_pages":{}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection counts, independent of the status/visibility\nfilter and pagination (respects `search`).","properties":{"by_status":{"type":"object","properties":{"verified":{"type":"integer","minimum":0},"pending":{"type":"integer","minimum":0},"suspended":{"type":"integer","minimum":0}},"required":["verified","pending","suspended"]},"by_visibility":{"type":"object","properties":{"public":{"type":"integer","minimum":0},"hidden":{"type":"integer","minimum":0}},"required":["public","hidden"]}},"required":["by_status","by_visibility"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/fanbases/{fanbaseId}":{"get":{"operationId":"tenantAdminFanbases.show","summary":"GET /api/v1/tenant/admin/fanbases/{id}","tags":["TenantAdminFanbases"],"parameters":[{"name":"fanbaseId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","suspended","verified"]},"is_publicly_listed":{"type":"boolean"},"hidden_at":{"type":["string","null"]},"owner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"email":{"type":["string","null"]}},"required":["id","name","email"]},"events_count":{"type":"integer","minimum":0},"revenue":{"type":"number"},"links":{"type":"object","properties":{"website":{"type":["string","null"]}},"required":["website"]}},"required":["id","name","status","is_publicly_listed","hidden_at","owner","events_count","revenue","links"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this fanbase."}},"required":["message"]}}}}}}},"/v1/tenant/admin/fanbases/{fanbaseId}/verify":{"post":{"operationId":"tenantAdminFanbases.verify","summary":"POST /api/v1/tenant/admin/fanbases/{id}/verify","tags":["TenantAdminFanbases"],"parameters":[{"name":"fanbaseId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAdminVerifyFanbaseRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"verified"},"verified_at":{"type":"string"}},"required":["id","status","verified_at"]},"message":{"type":"string","const":"Fanbase verified."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this fanbase."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/fanbases/{fanbaseId}/hide":{"post":{"operationId":"tenantAdminFanbases.hide","summary":"POST /api/v1/tenant/admin/fanbases/{id}/hide","tags":["TenantAdminFanbases"],"parameters":[{"name":"fanbaseId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAdminHideFanbaseRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"is_publicly_listed":{"type":"boolean"},"hidden_at":{"type":["string","null"]}},"required":["id","is_publicly_listed","hidden_at"]},"message":{"type":"string","const":"Fanbase hidden from public listings."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this fanbase."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/fanbases/{fanbaseId}/unhide":{"post":{"operationId":"tenantAdminFanbases.unhide","summary":"POST /api/v1/tenant/admin/fanbases/{id}/unhide","tags":["TenantAdminFanbases"],"parameters":[{"name":"fanbaseId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"is_publicly_listed":{"type":"boolean"},"hidden_at":{"type":"null"}},"required":["id","is_publicly_listed","hidden_at"]},"message":{"type":"string","const":"Fanbase visible in public listings."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this fanbase."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v1/tenant/admin/settlements":{"get":{"operationId":"tenantAdminSettlements.index","summary":"GET /api/v1/tenant/admin/settlements","tags":["TenantAdminSettlements"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"organizer_name":{"type":"string"},"event_name":{"type":"string"},"amount":{"type":"number"},"platform_fee_cents":{"type":["integer","null"]},"tenant_cut_cents":{"type":["integer","null"]},"organizer_share_cents":{"type":["integer","null"]},"settlement_window_start":{"type":["string","null"]},"settlement_window_end":{"type":["string","null"]},"status":{"type":"string"},"created_at":{"type":["string","null"]}},"required":["id","event_id","organizer_name","event_name","amount","platform_fee_cents","tenant_cut_cents","organizer_share_cents","settlement_window_start","settlement_window_end","status","created_at"]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection counts/totals, independent of the status/date\nfilter and pagination (respects `search`).","properties":{"by_status":{"type":"string"},"total_settled_cents":{"type":"integer"},"total_unsettled_cents":{"type":"integer"}},"required":["by_status","total_settled_cents","total_unsettled_cents"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/settlements/by-event":{"get":{"operationId":"tenantAdminSettlements.byEvent","summary":"GET /api/v1/tenant/admin/settlements/by-event","tags":["TenantAdminSettlements"],"parameters":[{"name":"search","in":"query","schema":{"type":"string"}},{"name":"organization_id","in":"query","schema":{"type":"string"}},{"name":"finalized","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"event_id":{"type":"string"},"event_name":{"type":"string"},"organization_id":{"type":"string"},"organization_name":{"type":"string"},"total_processed_cents":{"type":"integer"},"platform_fees_cents":{"type":"integer"},"revenue_cents":{"type":"integer"},"settled_cents":{"type":"integer"},"unsettled_cents":{},"organizer_wallet":{"type":"string"},"batch_count":{"type":"integer"},"settlement_finalized_at":{"type":["string","null"]}},"required":["event_id","event_name","organization_id","organization_name","total_processed_cents","platform_fees_cents","revenue_cents","settled_cents","unsettled_cents","organizer_wallet","batch_count","settlement_finalized_at"]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","properties":{"total_events":{"type":"integer","minimum":0},"total_collected_cents":{"type":"integer"},"total_settled_cents":{"type":"integer"},"total_unsettled_cents":{"type":"integer"}},"required":["total_events","total_collected_cents","total_settled_cents","total_unsettled_cents"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/settlements/summary":{"get":{"operationId":"tenantAdminSettlements.summary","summary":"GET /api/v1/tenant/admin/settlements/summary","tags":["TenantAdminSettlements"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"total_settled":{"type":"number"},"pending_payout":{"type":"number"},"monthly_payout":{"type":"number"},"avg_payout":{"type":"number"}},"required":["total_settled","pending_payout","monthly_payout","avg_payout"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/settlements/export":{"get":{"operationId":"tenantAdminSettlements.export","summary":"GET /api/v1/tenant/admin/settlements/export","tags":["TenantAdminSettlements"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"export_id":{"type":"string"},"status":{"type":"string","const":"processing"},"download_url":{"type":"null"}},"required":["export_id","status","download_url"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/settlements/{settlementId}/process":{"post":{"operationId":"tenantAdminSettlements.process","summary":"POST /api/v1/tenant/admin/settlements/{id}/process","tags":["TenantAdminSettlements"],"parameters":[{"name":"settlementId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAdminProcessSettlementRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"processing"}},"required":["id","status"]},"message":{"type":"string","const":"Settlement processing started."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this settlement."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/payout-requests":{"get":{"operationId":"tenantAdminSettlements.payoutRequests","summary":"GET /api/v1/tenant/admin/payout-requests","tags":["TenantAdminSettlements"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PayoutRequestResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection status breakdown, independent of the `status`\nfilter and pagination.","properties":{"by_status":{"type":"object","additionalProperties":{"type":"integer"}}},"required":["by_status"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/payout-requests/{id}/approve":{"post":{"operationId":"tenantAdminSettlements.approvePayoutRequest","summary":"POST /api/v1/tenant/admin/payout-requests/{id}/approve","tags":["TenantAdminSettlements"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAdminPayoutRequestActionRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PayoutRequestResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"Payout request not found."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/payout-requests/{id}/reject":{"post":{"operationId":"tenantAdminSettlements.rejectPayoutRequest","summary":"POST /api/v1/tenant/admin/payout-requests/{id}/reject","tags":["TenantAdminSettlements"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantAdminPayoutRequestActionRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PayoutRequestResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"Payout request not found."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/admin/users":{"get":{"operationId":"tenantAdminUsers.index","summary":"GET /api/v1/tenant/admin/users","tags":["TenantAdminUsers"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"email":{"type":["string","null"]},"profile_photo_url":{"type":["string","null"]},"status":{"type":"string","enum":["active","suspended"]},"types":{"type":"array","items":{"type":"string"}},"team":{"type":["object","null"],"properties":{"role":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]}},"required":["role","status"]},"events_count":{"type":"integer"},"tickets_count":{"type":"integer"},"joined_at":{"type":"string"}},"required":["id","name","email","profile_photo_url","status","types","team","events_count","tickets_count","joined_at"]}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"string"},"total_pages":{"type":"string"}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection counts, independent of the role/status/type\nfilter and pagination (respects `search`).","properties":{"by_status":{"type":"object","properties":{"active":{"type":"integer"},"suspended":{"type":"integer"}},"required":["active","suspended"]},"by_type":{"type":"object","properties":{"team":{"type":"integer"},"organizer":{"type":"integer"},"attendee":{"type":"integer"}},"required":["team","organizer","attendee"]},"by_team_role":{"type":"array","items":{}}},"required":["by_status","by_type","by_team_role"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/admin/users/{userId}":{"get":{"operationId":"tenantAdminUsers.show","summary":"GET /api/v1/tenant/admin/users/{id}","tags":["TenantAdminUsers"],"parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"status":{"type":"string","enum":["active","suspended"]},"types":{"type":"array","items":{"type":"string"}},"team":{"type":["object","null"],"properties":{"role":{"type":"string"},"status":{"type":"string","enum":["active","inactive"]}},"required":["role","status"]},"joined_at":{"type":"string"},"organizations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"type":"string","const":"owner"}},"required":["id","name","role"]}},"recent_activity":{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}},"required":["id","name","email","status","types","team","joined_at","organizations","recent_activity"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this user."}},"required":["message"]}}}}}}},"/v1/tenant/admin/users/{userId}/suspend":{"post":{"operationId":"tenantAdminUsers.suspend","summary":"POST /api/v1/tenant/admin/users/{id}/suspend","tags":["TenantAdminUsers"],"parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"suspended"}},"required":["id","status"]},"message":{"type":"string","const":"User suspended successfully."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this user."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v1/tenant/admin/users/{userId}/unsuspend":{"post":{"operationId":"tenantAdminUsers.unsuspend","summary":"POST /api/v1/tenant/admin/users/{id}/unsuspend","tags":["TenantAdminUsers"],"parameters":[{"name":"userId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","const":"active"}},"required":["id","status"]},"message":{"type":"string","const":"User unsuspended successfully."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"We couldn't find this user."}},"required":["message"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v1/tenant/team/invites/{token}":{"get":{"operationId":"tenantTeamInvites.show","description":"Preview invite details before accepting or declining.","summary":"GET /api/v1/tenant/team/invites/{token}","tags":["TenantTeamInvites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":["string","null"]},"role":{"type":"string"},"role_name":{"type":"string"},"role_description":{"type":["string","null"]},"tenant_id":{"type":"string"},"tenant_name":{"type":"string"},"status":{"type":"string"},"expires_at":{"type":"string"},"invited_at":{"type":["string","null"]}},"required":["id","email","name","role","role_name","role_description","tenant_id","tenant_name","status","expires_at","invited_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EMAIL_MISMATCH"},"message":{"type":"string","const":"This invitation was sent to a different email address. Please sign in with the correct account."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this invitation. The link may be incorrect or expired."}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_ALREADY_PROCESSED"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invitation has expired. Please ask the team admin to send a new one."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/tenant/team/invites/{token}/accept":{"post":{"operationId":"tenantTeamInvites.accept","description":"Accept a team invitation.","summary":"POST /api/v1/tenant/team/invites/{token}/accept","tags":["TenantTeamInvites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","const":"accepted"},"tenant_id":{"type":"string"},"role":{"type":"string"}},"required":["status","tenant_id","role"]},"message":{"type":"string","const":"Invitation accepted successfully."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EMAIL_MISMATCH"},"message":{"type":"string","const":"This invitation was sent to a different email address. Please sign in with the correct account."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this invitation. The link may be incorrect or expired."}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_ALREADY_PROCESSED"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invitation has expired. Please ask the team admin to send a new one."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_INVALID"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/tenant/team/invites/{token}/decline":{"post":{"operationId":"tenantTeamInvites.decline","description":"Decline a team invitation.","summary":"POST /api/v1/tenant/team/invites/{token}/decline","tags":["TenantTeamInvites"],"parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","const":"declined"}},"required":["status"]},"message":{"type":"string","const":"Invitation declined."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EMAIL_MISMATCH"},"message":{"type":"string","const":"This invitation was sent to a different email address. Please sign in with the correct account."}},"required":["code","message"]}},"required":["error"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this invitation. The link may be incorrect or expired."}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_ALREADY_PROCESSED"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}},"410":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_EXPIRED"},"message":{"type":"string","const":"This invitation has expired. Please ask the team admin to send a new one."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVITE_INVALID"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/tenant/team/members":{"get":{"operationId":"tenantTeamMembers.index","description":"List all team members for the current tenant.","summary":"GET /api/v1/tenant/team/members","tags":["TenantTeamMembers"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TenantTeamMemberResource"}},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"per_page":{"type":"integer"},"total_count":{"type":"null"},"total_pages":{}},"required":["current_page","per_page","total_count","total_pages"]},"summary":{"type":"object","description":"Whole-collection counts, independent of the role/status filter\nand pagination (respects `search`).","properties":{"active":{"type":"integer"},"pending":{"type":"integer"},"inactive":{"type":"integer"}},"required":["active","pending","inactive"]}},"required":["data","meta","summary"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenant/team/members/invite":{"post":{"operationId":"tenantTeamMembers.invite","description":"Invite a new team member.","summary":"POST /api/v1/tenant/team/members/invite","tags":["TenantTeamMembers"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteTenantTeamMemberRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"string"}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/tenant/team/members/{memberId}/resend-invite":{"post":{"operationId":"tenantTeamMembers.resendInvite","description":"Resend an invitation to a pending member.","summary":"POST /api/v1/tenant/team/members/{member}/resend-invite","tags":["TenantTeamMembers"],"parameters":[{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"expires_at":{"type":"string"}},"required":["id","email","expires_at"]},"message":{"type":"string","const":"Invitation resent successfully."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"resend_invite_failed"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/tenant/team/members/{memberId}":{"put":{"operationId":"tenantTeamMembers.update","description":"Update a team member's role or status.","summary":"PUT /api/v1/tenant/team/members/{member}","tags":["TenantTeamMembers"],"parameters":[{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTenantTeamMemberRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/TenantTeamMemberResource"},"message":{"type":"string","const":"Member updated successfully."}},"required":["data","message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"tenantTeamMembers.destroy","description":"Remove a team member.","summary":"DELETE /api/v1/tenant/team/members/{member}","tags":["TenantTeamMembers"],"parameters":[{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","const":"Member removed successfully."}},"required":["message"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}}}}},"/v1/tenant/team/roles":{"get":{"operationId":"tenantTeamRoles.index","description":"List all available tenant roles from configuration.","summary":"GET /api/v1/tenant/team/roles","tags":["TenantTeamRoles"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TenantRoleResource"}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tenants":{"post":{"operationId":"tenants.store","tags":["Tenants"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreTenantRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/Tenant"}},"required":["tenant"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"422":{"$ref":"#/components/responses/ValidationException"}}},"get":{"operationId":"tenants.index","tags":["Tenants"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"tenants":{"type":"array","items":{"$ref":"#/components/schemas/Tenant"}}},"required":["tenants"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/events/{event}/tickets":{"get":{"operationId":"ticket.index","tags":["Ticket"],"parameters":[{"name":"event","in":"path","required":true,"description":"The event slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Ticket"}}}}},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/public/tickets/{attendeeCode}":{"get":{"operationId":"tickets.showPublicByAttendeeCode","description":"Get public ticket page payload by attendee code.","summary":"GET /public/tickets/{attendee_code}","tags":["Tickets"],"parameters":[{"name":"attendeeCode","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/PublicAttendeeTicketResource"}},"required":["data"]}}}},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this ticket. The link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"PAYMENT_PENDING"},"message":{"type":"string","const":"Payment for this ticket hasn't been completed yet."}},"required":["code","message"]}},"required":["error"]},{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_TICKET"},"message":{"type":"string","const":"This ticket is no longer active."}},"required":["code","message"]}},"required":["error"]}]}}}}}}},"/v1/public/tickets/{attendeeCode}/wallet":{"get":{"operationId":"tickets.wallet","description":"Smart-redirect endpoint: detects the user-agent and forwards to the\nApple .pkpass download URL on iOS, the Google Wallet save URL on\nAndroid, and falls back to the public ticket page for anything else\n(where wallet buttons render alongside the legacy QR + PDF). Honors\nthe per-platform feature flags so disabling a platform makes the\nsmart-redirect transparently skip it.","summary":"GET /tickets/{attendee_code}/wallet","tags":["Tickets"],"parameters":[{"name":"attendeeCode","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/v1/tickets":{"get":{"operationId":"tickets.index","description":"Get authenticated user's tickets.","summary":"GET /tickets","tags":["Tickets"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/AttendeeTicketResource"}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/tickets/{id}":{"get":{"operationId":"tickets.show","description":"Get ticket detail.","summary":"GET /tickets/{id}","tags":["Tickets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/AttendeeTicketDetailResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this ticket. The link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/tickets/{id}/invite":{"post":{"operationId":"tickets.invite","description":"Invite another attendee for a group ticket.","summary":"POST /tickets/{id}/invite","tags":["Tickets"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteAttendeeRequest"}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"invite_status":{"type":"string","const":"sent"}},"required":["invite_status"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"NOT_FOUND"},"message":{"type":"string","const":"We couldn't find this ticket. The link might be incorrect."}},"required":["code","message"]}},"required":["error"]}}}},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"DUPLICATE_ATTENDEE"},"message":{"type":"string","const":"This email has already been added to this order."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/organizer/plus/contents/{content}/trailer":{"get":{"operationId":"trailers.show","tags":["Trailers"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"item":{"type":"object","properties":{"id":{"type":"string"},"content_id":{"type":"string"},"parent_item_id":{"type":["string","null"]},"type":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"position":{"type":"integer"},"body":{"type":["string","null"]},"scheduled_release_at":{"type":["string","null"]},"price_individual":{"type":["number","null"]},"preview_allowed":{"type":"boolean"},"mux":{"type":"object","properties":{"asset_id":{"type":["string","null"]},"playback_id":{"type":["string","null"]},"playback_policy":{"type":"string"}},"required":["asset_id","playback_id","playback_policy"]},"media":{"type":"object","properties":{"duration_seconds":{"type":["integer","null"]},"source_filename":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]},"max_resolution_tier":{"type":["string","null"]},"max_frame_rate":{"type":["number","null"]},"video_codec":{"type":["string","null"]},"audio_codec":{"type":["string","null"]},"bitrate_kbps":{"type":["integer","null"]},"file_size_bytes":{"type":["integer","null"]},"languages":{"type":["array","null"],"items":{}},"has_captions":{"type":"boolean"},"captions":{"type":["array","null"],"items":{}},"encoding_tier":{"type":"string"}},"required":["duration_seconds","source_filename","aspect_ratio","max_resolution_tier","max_frame_rate","video_codec","audio_codec","bitrate_kbps","file_size_bytes","languages","has_captions","captions","encoding_tier"]},"thumbnails":{"type":["object","null"],"properties":{"thumbnail_url":{"type":"string"},"thumbnail_urls":{"type":"object","properties":{"small":{"type":"string"},"medium":{"type":"string"},"large":{"type":"string"}},"required":["small","medium","large"]},"animated_preview_url":{"type":"string"},"storyboard_url":{"type":"string"}},"required":["thumbnail_url","thumbnail_urls","animated_preview_url","storyboard_url"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","content_id","parent_item_id","type","status","title","position","body","scheduled_release_at","price_individual","preview_allowed","mux","media","thumbnails","created_at","updated_at"]},"upload":{"type":["object","null"],"properties":{"id":{"type":"string"},"content_item_id":{"type":"string"},"mux_upload_id":{"type":"string"},"upload_url":{"type":"string"},"upload_status":{"type":"string"},"asset_id":{"type":["string","null"]},"expires_at":{"type":"string"},"created_at":{"type":["string","null"]}},"required":["id","content_item_id","mux_upload_id","upload_url","upload_status","asset_id","expires_at","created_at"]},"trailer_max_seconds":{"type":"integer"},"required":{"type":"boolean"}},"required":["item","upload","trailer_max_seconds","required"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"post":{"operationId":"trailers.create","tags":["Trailers"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"item":{"type":"object","properties":{"id":{"type":"string"},"content_id":{"type":"string"},"parent_item_id":{"type":["string","null"]},"type":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"position":{"type":"integer"},"body":{"type":["string","null"]},"scheduled_release_at":{"type":["string","null"]},"price_individual":{"type":["number","null"]},"preview_allowed":{"type":"boolean"},"mux":{"type":"object","properties":{"asset_id":{"type":["string","null"]},"playback_id":{"type":["string","null"]},"playback_policy":{"type":"string"}},"required":["asset_id","playback_id","playback_policy"]},"media":{"type":"object","properties":{"duration_seconds":{"type":["integer","null"]},"source_filename":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]},"max_resolution_tier":{"type":["string","null"]},"max_frame_rate":{"type":["number","null"]},"video_codec":{"type":["string","null"]},"audio_codec":{"type":["string","null"]},"bitrate_kbps":{"type":["integer","null"]},"file_size_bytes":{"type":["integer","null"]},"languages":{"type":["array","null"],"items":{}},"has_captions":{"type":"boolean"},"captions":{"type":["array","null"],"items":{}},"encoding_tier":{"type":"string"}},"required":["duration_seconds","source_filename","aspect_ratio","max_resolution_tier","max_frame_rate","video_codec","audio_codec","bitrate_kbps","file_size_bytes","languages","has_captions","captions","encoding_tier"]},"thumbnails":{"type":["object","null"],"properties":{"thumbnail_url":{"type":"string"},"thumbnail_urls":{"type":"object","properties":{"small":{"type":"string"},"medium":{"type":"string"},"large":{"type":"string"}},"required":["small","medium","large"]},"animated_preview_url":{"type":"string"},"storyboard_url":{"type":"string"}},"required":["thumbnail_url","thumbnail_urls","animated_preview_url","storyboard_url"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","content_id","parent_item_id","type","status","title","position","body","scheduled_release_at","price_individual","preview_allowed","mux","media","thumbnails","created_at","updated_at"]},"upload":{"type":"object","properties":{"id":{"type":"string"},"content_item_id":{"type":"string"},"mux_upload_id":{"type":"string"},"upload_url":{"type":"string"},"upload_status":{"type":"string"},"asset_id":{"type":["string","null"]},"expires_at":{"type":"string"},"created_at":{"type":["string","null"]}},"required":["id","content_item_id","mux_upload_id","upload_url","upload_status","asset_id","expires_at","created_at"]},"trailer_max_seconds":{"type":"integer"}},"required":["item","upload","trailer_max_seconds"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"409":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"TRAILER_EXISTS"},"message":{"type":"string","const":"A trailer already exists. Use the replace endpoint to upload a new one."}},"required":["code","message"]}},"required":["error"]}}}}}},"delete":{"operationId":"trailers.destroy","tags":["Trailers"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/plus/contents/{content}/trailer/replace":{"post":{"operationId":"trailers.replace","tags":["Trailers"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"item":{"type":"object","properties":{"id":{"type":"string"},"content_id":{"type":"string"},"parent_item_id":{"type":["string","null"]},"type":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"position":{"type":"integer"},"body":{"type":["string","null"]},"scheduled_release_at":{"type":["string","null"]},"price_individual":{"type":["number","null"]},"preview_allowed":{"type":"boolean"},"mux":{"type":"object","properties":{"asset_id":{"type":["string","null"]},"playback_id":{"type":["string","null"]},"playback_policy":{"type":"string"}},"required":["asset_id","playback_id","playback_policy"]},"media":{"type":"object","properties":{"duration_seconds":{"type":["integer","null"]},"source_filename":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]},"max_resolution_tier":{"type":["string","null"]},"max_frame_rate":{"type":["number","null"]},"video_codec":{"type":["string","null"]},"audio_codec":{"type":["string","null"]},"bitrate_kbps":{"type":["integer","null"]},"file_size_bytes":{"type":["integer","null"]},"languages":{"type":["array","null"],"items":{}},"has_captions":{"type":"boolean"},"captions":{"type":["array","null"],"items":{}},"encoding_tier":{"type":"string"}},"required":["duration_seconds","source_filename","aspect_ratio","max_resolution_tier","max_frame_rate","video_codec","audio_codec","bitrate_kbps","file_size_bytes","languages","has_captions","captions","encoding_tier"]},"thumbnails":{"type":["object","null"],"properties":{"thumbnail_url":{"type":"string"},"thumbnail_urls":{"type":"object","properties":{"small":{"type":"string"},"medium":{"type":"string"},"large":{"type":"string"}},"required":["small","medium","large"]},"animated_preview_url":{"type":"string"},"storyboard_url":{"type":"string"}},"required":["thumbnail_url","thumbnail_urls","animated_preview_url","storyboard_url"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","content_id","parent_item_id","type","status","title","position","body","scheduled_release_at","price_individual","preview_allowed","mux","media","thumbnails","created_at","updated_at"]},"upload":{"type":"object","properties":{"id":{"type":"string"},"content_item_id":{"type":"string"},"mux_upload_id":{"type":"string"},"upload_url":{"type":"string"},"upload_status":{"type":"string"},"asset_id":{"type":["string","null"]},"expires_at":{"type":"string"},"created_at":{"type":["string","null"]}},"required":["id","content_item_id","mux_upload_id","upload_url","upload_status","asset_id","expires_at","created_at"]},"trailer_max_seconds":{"type":"integer"}},"required":["item","upload","trailer_max_seconds"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/organizer/plus/contents/{content}/items/{item}/upload":{"post":{"operationId":"uploads.create","tags":["Uploads"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}},{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"cors_origin":{"type":"string"}}}}}},"responses":{"201":{"description":"`OrganizerUploadResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerUploadResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string","const":"Use the trailer endpoint for trailer uploads."}},"required":["code","message"]}},"required":["error"]}}}}}},"get":{"operationId":"modules.plus.organizer.uploads.show","tags":["Uploads"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}},{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"`OrganizerUploadResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/OrganizerUploadResource"}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}},"delete":{"operationId":"uploads.cancel","tags":["Uploads"],"parameters":[{"name":"content","in":"path","required":true,"description":"The content slug","schema":{"type":"string"}},{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"No content"},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/streams/uploads":{"post":{"operationId":"streams.uploads.store","tags":["Uploads"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"cors_origin":{"type":"string","maxLength":255},"timeout":{"type":"integer","minimum":60,"maximum":604800},"playback_policy":{"type":"string","enum":["public","signed"]},"generated_subtitles":{"type":"string","pattern":"^[a-z]{2}(-[A-Z]{2})?$"}}}}}},"responses":{"201":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/streams/uploads/{id}":{"get":{"operationId":"streams.uploads.show","tags":["Uploads"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","additionalProperties":{}}},"required":["data"]}}}}}}},"/v1/usage":{"get":{"operationId":"usage.index","tags":["Usage"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"object":{"type":"string","const":"usage"},"meter":{},"from":{"type":"string"},"to":{"type":"string"},"group_by":{"type":"array","items":{}},"series":{"type":"array","items":{}}},"required":["object","meter","from","to","group_by","series"]}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"},"503":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"array","items":{}}},"required":["error"]}}}}}}},"/v1/plus/my-certificates":{"get":{"operationId":"viewerCertificates.index","tags":["ViewerCertificates"],"responses":{"200":{"description":"Array of `ViewerCertificateResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ViewerCertificateResource"},{"type":"object","required":["course"]}]}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/plus/my-certificates/{certificate}":{"get":{"operationId":"viewerCertificates.show","tags":["ViewerCertificates"],"parameters":[{"name":"certificate","in":"path","required":true,"description":"The certificate serial number","schema":{"type":"string"}}],"responses":{"200":{"description":"`ViewerCertificateResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/ViewerCertificateResource"},{"type":"object","required":["course"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/plus/my-library":{"get":{"operationId":"viewerLibrary.index","tags":["ViewerLibrary"],"responses":{"200":{"description":"Paginated set of `ViewerLibraryItemResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ViewerLibraryItemResource"},{"type":"object","required":["content"]}]}},"links":{"type":"object","properties":{"first":{"type":"string"},"last":{"type":"string"},"prev":{"type":["string","null"]},"next":{"type":"string"}},"required":["first","last","prev","next"]},"meta":{"type":"object","properties":{"current_page":{"type":"integer"},"from":{"type":["integer","null"]},"last_page":{"type":"string"},"links":{"type":"object","additionalProperties":{}},"path":{"type":["string","null"]},"per_page":{"type":"integer"},"to":{"type":["integer","null"]},"total":{"type":"string"}},"required":["current_page","from","last_page","links","path","per_page","to","total"]}},"required":["data","links","meta"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/plus/my-subscriptions":{"get":{"operationId":"viewerSubscriptions.index","tags":["ViewerSubscriptions"],"responses":{"200":{"description":"Array of `ViewerSubscriptionResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/ViewerSubscriptionResource"},{"type":"object","required":["plan"]}]}}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"}}}},"/v1/plus/my-subscriptions/{subscription}/cancel":{"post":{"operationId":"viewerSubscriptions.cancel","tags":["ViewerSubscriptions"],"parameters":[{"name":"subscription","in":"path","required":true,"description":"The subscription ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"`ViewerSubscriptionResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"allOf":[{"$ref":"#/components/schemas/ViewerSubscriptionResource"},{"type":"object","required":["plan"]}]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/plus/watch/ping":{"post":{"operationId":"watchProgress.ping","tags":["WatchProgress"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WatchPingRequest"}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"content_item_id":{"type":"string"},"watch_seconds":{"type":"integer"},"last_position_seconds":{"type":"integer"},"completion_percent":{"type":"number"},"completed_at":{"type":["string","null"]}},"required":["content_item_id","watch_seconds","last_position_seconds","completion_percent","completed_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"403":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string","const":"You do not have active access to this content item."}},"required":["code","message"]}},"required":["error"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/plus/watch/items/{item}/complete":{"post":{"operationId":"watchProgress.markComplete","tags":["WatchProgress"],"parameters":[{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"content_item_id":{"type":"string"},"completion_percent":{"type":"number"},"completed_at":{"type":["string","null"]}},"required":["content_item_id","completion_percent","completed_at"]}},"required":["data"]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"},"422":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","const":"INVALID_OPERATION"},"message":{"type":"string"}},"required":["code","message"]}},"required":["error"]}}}}}}},"/v1/plus/watch/items/{item}/progress":{"get":{"operationId":"watchProgress.showProgress","tags":["WatchProgress"],"parameters":[{"name":"item","in":"path","required":true,"description":"The item ID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"anyOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"content_item_id":{"type":"string"},"watch_seconds":{"type":"integer"},"last_position_seconds":{"type":"integer"},"completion_percent":{"type":"number"},"completed_at":{"type":["string","null"]}},"required":["content_item_id","watch_seconds","last_position_seconds","completion_percent","completed_at"]}},"required":["data"]},{"type":"object","properties":{"data":{"type":"object","properties":{"content_item_id":{"type":"string"},"watch_seconds":{"type":"integer"},"last_position_seconds":{"type":"integer"},"completion_percent":{"type":"integer"},"completed_at":{"type":"null"}},"required":["content_item_id","watch_seconds","last_position_seconds","completion_percent","completed_at"]}},"required":["data"]}]}}}},"401":{"$ref":"#/components/responses/AuthenticationException"},"404":{"$ref":"#/components/responses/ModelNotFoundException"}}}},"/v1/webhook_endpoints":{"get":{"operationId":"webhook_endpoints.index","tags":["WebhookEndpoints"],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpointResource"}},"meta":{"type":"object","properties":{"pagination":{"type":"object","properties":{"current_page":{"type":"string"},"total_pages":{"type":"string"},"per_page":{"type":"string"},"total":{"type":"string"}},"required":["current_page","total_pages","per_page","total"]}},"required":["pagination"]}},"required":["data","meta"]}}}}}},"post":{"operationId":"webhook_endpoints.store","tags":["WebhookEndpoints"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointRequest"}}}},"responses":{"201":{"description":"`WebhookEndpointResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WebhookEndpointResource"}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}}},"/v1/webhook_endpoints/{id}":{"get":{"operationId":"webhook_endpoints.show","tags":["WebhookEndpoints"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`WebhookEndpointResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WebhookEndpointResource"}},"required":["data"]}}}}}},"patch":{"operationId":"webhook_endpoints.update","tags":["WebhookEndpoints"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointRequest"}}}},"responses":{"200":{"description":"`WebhookEndpointResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WebhookEndpointResource"}},"required":["data"]}}}},"422":{"$ref":"#/components/responses/ValidationException"}}},"delete":{"operationId":"webhook_endpoints.destroy","tags":["WebhookEndpoints"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"webhook_endpoint"},"deleted":{"type":"boolean"}},"required":["id","object","deleted"]}},"required":["data"]}}}}}}},"/v1/webhook_endpoints/{id}/roll_secret":{"post":{"operationId":"webhook_endpoints.roll_secret","tags":["WebhookEndpoints"],"parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"`WebhookEndpointResource`","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WebhookEndpointResource"}},"required":["data"]}}}}}}}},"components":{"schemas":{"AcceptInviteRequest":{"type":"object","properties":{"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":20}},"required":["first_name","last_name","email"],"title":"AcceptInviteRequest"},"ActivityFeed":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"actor_first_name":{"type":["string","null"]},"message":{"type":"string"},"meta":{"type":["array","null"],"items":{}},"event_slug":{"type":["string","null"]},"organization_slug":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"expires_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"},"livemode":{"type":"boolean"}},"required":["id","type","actor_first_name","message","meta","event_slug","organization_slug","created_at","updated_at","expires_at","deleted_at","livemode"],"title":"ActivityFeed"},"AdminContextResource":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserResource"},"is_os_admin":{"type":"boolean"},"admin":{"type":"object","properties":{"role":{"type":"string"},"permissions":{"type":"string"},"resources":{"type":"string"}},"required":["role","permissions","resources"]}},"required":["user","is_os_admin","admin"],"title":"AdminContextResource"},"ApiKeyResource":{"type":"object","properties":{"id":{"type":"string"},"object":{"type":"string","const":"api_key"},"type":{"type":"string"},"name":{"type":"string"},"livemode":{"type":"boolean"},"prefix":{"type":"string"},"scopes":{"type":"array","items":{}},"ip_allowlist":{"type":["array","null"],"items":{}},"expires_at":{"type":["string","null"]},"last_used_at":{"type":["string","null"]},"revoked_at":{"type":["string","null"]},"created_by":{"type":["string","null"]},"created_at":{"type":["string","null"]},"key":{"type":"string"}},"required":["id","object","type","name","livemode","prefix","scopes","ip_allowlist","expires_at","last_used_at","revoked_at","created_by","created_at"],"title":"ApiKeyResource"},"ApproveContentRequest":{"type":"object","properties":{"final_price":{"type":"number","minimum":0},"tenant_cut_percentage":{"type":["number","null"],"minimum":0,"maximum":100},"access_window_hours":{"type":["integer","null"],"minimum":1},"notes":{"type":["string","null"],"maxLength":5000}},"required":["final_price"],"title":"ApproveContentRequest"},"AssignOrderAttendeesRequest":{"type":"object","properties":{"customer":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":20}},"required":["email"]},"attendees":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":["string","null"],"maxLength":100},"last_name":{"type":["string","null"],"maxLength":100},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":20},"booking_item_id":{"type":"string","format":"uuid"},"send_invite":{"type":["boolean","null"]},"extra_data":{"type":["array","null"],"items":{"type":["string","null"]}}},"required":["email","booking_item_id"]},"minItems":1}},"required":["customer","attendees"],"title":"AssignOrderAttendeesRequest"},"AttendeeTicketDetailResource":{"type":"object","properties":{"id":{"type":"string"},"order_id":{"type":"string"},"status":{"anyOf":[{"type":"string"},{"type":"string","enum":["confirmed"]}]},"event":{"type":"object","properties":{"name":{"type":["string","null"]},"start_date":{"type":["string","null"]},"location":{"type":"object","properties":{"venue":{"type":["string","null"]},"address":{"type":["string","null"]},"city":{"type":["string","null"]},"country":{"type":["string","null"]},"virtual_link":{"type":["string","null"]}},"required":["venue","address","city","country","virtual_link"]},"image_url":{"type":["string","null"]}},"required":["name","start_date","location","image_url"]},"ticket_type":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"string","enum":["Ticket"]}]},"price":{"type":"number"}},"required":["name","price"]},"attendees":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}]},"flexible_payment":{"type":"object","properties":{"total_paid":{"type":"number"},"remaining":{},"next_due_date":{"type":"null"}},"required":["total_paid","remaining","next_due_date"]}},"required":["id","order_id","status","event","ticket_type","attendees","flexible_payment"],"title":"AttendeeTicketDetailResource"},"AttendeeTicketResource":{"type":"object","properties":{"id":{"type":"string"},"event":{"type":"object","properties":{"name":{"type":["string","null"]},"slug":{"type":["string","null"]},"start_date":{"type":["string","null"]},"start_time":{"type":["string","null"]},"end_date":{"type":["string","null"]},"end_time":{"type":["string","null"]},"location":{"type":"object","properties":{"venue":{"type":["string","null"]},"address":{"type":["string","null"]},"city":{"type":["string","null"]},"country":{"type":["string","null"]},"virtual_link":{"type":["string","null"]}},"required":["venue","address","city","country","virtual_link"]},"image_url":{"type":["string","null"]},"poster_urls":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}]}},"required":["name","slug","start_date","start_time","end_date","end_time","location","image_url","poster_urls"]},"ticket_type":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"string","enum":["Ticket"]}]},"price":{"type":"number"}},"required":["name","price"]},"quantity":{"type":"string"},"payment_status":{"type":"string"}},"required":["id","event","ticket_type","quantity","payment_status"],"title":"AttendeeTicketResource"},"Booking":{"type":"object","properties":{"id":{"type":"string"},"tenant_id":{"type":"string"},"organization_id":{"type":"string"},"event_id":{"type":"string"},"ticket_id":{"type":"string"},"buyer_name":{"type":"string"},"buyer_email":{"type":"string"},"buyer_phone":{"type":["string","null"]},"quantity":{"type":"integer"},"status":{"type":"string"},"settlement_status":{"type":["string","null"]},"due_date":{"type":["string","null"],"format":"date-time"},"installments":{"type":["integer","null"]},"installment_type":{"type":["string","null"]},"refunded_at":{"type":["string","null"],"format":"date-time"},"approved":{"type":"boolean"},"meta":{"type":["array","null"],"items":{}},"code":{"type":"string"},"payment_reference":{"type":["string","null"]},"callback_response":{"type":["array","null"],"items":{}},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"amount":{"type":"string"},"paid":{"type":"string"},"balance":{"type":"string"},"installment_amount":{"type":["string","null"]},"refund_amount":{"type":["string","null"]},"checkout_url":{"type":["string","null"]},"deleted_at":{"type":["string","null"],"format":"date-time"},"livemode":{"type":"boolean"}},"required":["id","tenant_id","organization_id","event_id","ticket_id","buyer_name","buyer_email","buyer_phone","quantity","status","settlement_status","due_date","installments","installment_type","refunded_at","approved","meta","code","payment_reference","callback_response","created_at","updated_at","amount","paid","balance","installment_amount","refund_amount","checkout_url","deleted_at","livemode"],"title":"Booking"},"BookingStoreRequest":{"type":"object","properties":{"ticket_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":10},"amount":{"type":["number","null"],"minimum":0},"event_slot_id":{"type":["string","null"],"format":"uuid"},"buyer_name":{"type":"string"},"buyer_email":{"type":"string","format":"email"},"buyer_phone":{"type":["string","null"]},"redirect_url":{"type":"string","format":"uri"},"coupon_code":{"type":["string","null"],"maxLength":64},"attendees":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"extra_data":{"type":["array","null"],"items":{"type":"string"}}},"required":["first_name","last_name","email","phone"]},"minItems":1}},"required":["ticket_id","quantity","buyer_name","buyer_email","redirect_url","attendees"],"title":"BookingStoreRequest"},"CouponValidationResource":{"type":"object","properties":{"valid":{"type":"boolean"},"code":{"type":"string"},"type":{"type":"string"},"value":{"type":"number"}},"required":["valid","code","type","value"],"title":"CouponValidationResource"},"CreateOrderRequest":{"type":"object","properties":{"event_id":{"type":"string","format":"uuid"},"items":{"type":"array","items":{"type":"object","properties":{"ticket_type_id":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1},"amount":{"type":["number","null"],"minimum":0}},"required":["ticket_type_id","quantity"]},"minItems":1},"event_slot_id":{"type":["string","null"],"format":"uuid"},"customer":{"type":"object","properties":{"first_name":{"type":"string","maxLength":100},"last_name":{"type":"string","maxLength":100},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":20}},"required":["first_name","last_name","email"]},"payment_option":{"type":["string","null"],"enum":["full","deposit",null]},"coupon_code":{"type":["string","null"],"maxLength":50},"attendees":{"type":["array","null"],"items":{"type":"object","properties":{"first_name":{"type":["string","null"],"maxLength":100},"last_name":{"type":["string","null"],"maxLength":100},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":20},"send_invite":{"type":["boolean","null"]},"extra_data":{"type":["array","null"],"items":{"type":["string","null"]}}}},"minItems":1},"consents":{"type":"object","properties":{"terms_accepted":{"enum":["yes","on","1",1,"true",true]},"media_consent":{"type":"boolean"},"marketing_opt_in":{"type":["boolean","null"]}},"required":["terms_accepted","media_consent"]}},"required":["event_id","items","customer","consents"],"title":"CreateOrderRequest"},"CreatePayoutRequestRequest":{"type":"object","properties":{"event_id":{"type":"string","format":"uuid"},"amount_cents":{"type":"integer","minimum":100},"reason":{"type":"string","maxLength":2000}},"required":["event_id","amount_cents","reason"],"title":"CreatePayoutRequestRequest"},"CreatePlusOrderRequest":{"type":"object","properties":{"content_id":{"type":"string"},"content_item_id":{"type":["string","null"]},"purchase_type":{"type":"string","enum":["lifetime","rental","episode"]},"rental_hours":{"type":["integer","null"],"minimum":1,"maximum":8760},"customer":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":30}},"required":["name","email"]},"success_url":{"type":["string","null"],"format":"uri"}},"required":["content_id","purchase_type","customer"],"title":"CreatePlusOrderRequest"},"CustomerResource":{"type":"object","properties":{"id":{"type":["string","null"]},"object":{"type":"string","const":"customer"},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"name":{"type":["string","null"]},"external_id":{"type":["string","null"]},"has_vabu_id":{"type":"boolean"},"metadata":{"type":"object"},"livemode":{"type":"boolean"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","object","email","phone","name","external_id","has_vabu_id","metadata","livemode","created_at","updated_at"],"title":"CustomerResource"},"DuplicateEventRequest":{"type":"object","properties":{"start_date":{"type":"string","format":"date-time"},"start_time":{"type":"string"},"end_date":{"type":["string","null"],"format":"date-time"},"end_time":{"type":["string","null"]},"slug":{"type":"string","pattern":"^[a-z0-9-]+$","maxLength":50}},"required":["start_date","start_time"],"title":"DuplicateEventRequest"},"EntitlementResource":{"type":"object","properties":{"id":{"type":["string","null"]},"object":{"type":"string","const":"entitlement"},"customer":{"type":["string","null"]},"contact_hash":{"type":["string","null"]},"resource":{"type":"object","properties":{"type":{"type":"string"},"id":{"type":"string"},"variant":{"type":["string","null"]}},"required":["type","id","variant"]},"source":{"type":"string"},"source_ref":{"type":["string","null"]},"starts_at":{"type":["string","null"]},"ends_at":{"type":["string","null"]},"limits":{"type":"string"},"status":{"type":"string"},"external_id":{"type":["string","null"]},"metadata":{"type":"object"},"livemode":{"type":"boolean"},"created_at":{"type":["string","null"]}},"required":["id","object","customer","contact_hash","resource","source","source_ref","starts_at","ends_at","limits","status","external_id","metadata","livemode","created_at"],"title":"EntitlementResource"},"EstimateBlastCostRequest":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp"]},"recipient_count":{"type":"integer","minimum":1},"message_length":{"type":"integer","minimum":0},"context":{"type":"string","enum":["event","community"]},"event_slug":{"type":["string","null"]}},"required":["channel","recipient_count","context"],"title":"EstimateBlastCostRequest"},"Event":{"type":"object","properties":{"id":{"type":"string"},"tenant_id":{"type":"string"},"organization_id":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"start_date":{"type":"string","format":"date-time"},"start_time":{"type":"string"},"end_date":{"type":["string","null"],"format":"date-time"},"end_time":{"type":["string","null"]},"status":{"$ref":"#/components/schemas/EventStatus"},"is_public":{"type":"boolean"},"is_sold_out":{"type":"boolean"},"currency":{"type":"string"},"approval":{"type":"boolean"},"is_refundable":{"type":"boolean"},"deduct_type":{"type":["string","null"]},"deduct_value":{"type":["integer","null"]},"settled_amount":{"type":"string"},"booking_expires_minutes":{"type":["integer","null"]},"slug":{"type":"string"},"tiny_url":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"main_image_url":{"type":["string","null"]},"approved_at":{"type":["string","null"],"format":"date-time"},"rejected_at":{"type":["string","null"],"format":"date-time"},"changes_requested_at":{"type":["string","null"],"format":"date-time"},"rejection_reason":{"type":["string","null"]},"requested_changes":{"type":["string","null"]},"review_note":{"type":["string","null"]},"reviewed_by_user_id":{"type":["string","null"]},"auto_settlement_enabled":{"type":"boolean"},"auto_settlement_last_run_at":{"type":["string","null"],"format":"date-time"},"settlement_policy_snapshot":{"type":["array","null"],"items":{}},"deleted_at":{"type":["string","null"],"format":"date-time"},"tenant_cut_percentage":{"type":["string","null"]},"settlement_finalized_at":{"type":["string","null"],"format":"date-time"},"category":{"type":["string","null"]},"type":{"type":"string"},"venue":{"type":["string","null"]},"address":{"type":["string","null"]},"city":{"type":["string","null"]},"country":{"type":["string","null"]},"virtual_link":{"type":["string","null"]},"onelink_id":{"type":["string","null"]},"short_url":{"type":["string","null"]},"og_image_url":{"type":["string","null"]},"onelink_meta_html":{"type":["string","null"]},"venue_latitude":{"type":["string","null"]},"venue_longitude":{"type":["string","null"]},"spark_eligible":{"type":"string"},"spark_eligible_at":{"type":["string","null"]},"spark_one_liner":{"type":["string","null"]},"spark_one_liner_approved_at":{"type":["string","null"]},"livemode":{"type":"boolean"}},"required":["id","tenant_id","organization_id","name","description","start_date","start_time","end_date","end_time","status","is_public","is_sold_out","currency","approval","is_refundable","deduct_type","deduct_value","settled_amount","booking_expires_minutes","slug","tiny_url","created_at","updated_at","main_image_url","approved_at","rejected_at","changes_requested_at","rejection_reason","requested_changes","review_note","reviewed_by_user_id","auto_settlement_enabled","auto_settlement_last_run_at","settlement_policy_snapshot","deleted_at","tenant_cut_percentage","settlement_finalized_at","category","type","venue","address","city","country","virtual_link","onelink_id","short_url","og_image_url","onelink_meta_html","venue_latitude","venue_longitude","spark_eligible","spark_eligible_at","spark_one_liner","spark_one_liner_approved_at","livemode"],"title":"Event"},"EventData":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"field_type":{"type":"string"},"required":{"type":"boolean"},"options":{"type":["array","null"],"items":{}},"position":{"type":"integer"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"}},"required":["id","event_id","name","field_type","required","options","position","created_at","updated_at","deleted_at"],"title":"EventData"},"EventImageResource":{"type":"object","properties":{"id":{"type":"string"},"image_url":{"type":"string"},"position":{"type":"integer"}},"required":["id","image_url","position"],"title":"EventImageResource"},"EventPublicResource":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"main_image_url":{"type":"string"},"start_date":{"type":"string"},"start_time":{"type":"string"},"end_date":{"type":"string"},"end_time":{"type":"string"},"status":{"type":"string"},"is_public":{"type":"string"},"is_sold_out":{"type":"string"},"currency":{"type":"string"},"slug":{"type":"string"},"tiny_url":{"type":"string"},"images":{"type":"array","items":{"$ref":"#/components/schemas/EventImageResource"}},"tickets":{"type":"string"},"slots":{"type":"string"}},"required":["id","name","description","main_image_url","start_date","start_time","end_date","end_time","status","is_public","is_sold_out","currency","slug","tiny_url"],"title":"EventPublicResource"},"EventSettlement":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"type":{"type":"string"},"status":{"type":"string"},"response":{"type":["array","null"],"items":{}},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"amount":{"type":"string"},"deleted_at":{"type":["string","null"],"format":"date-time"},"tenant_id":{"type":"string"},"livemode":{"type":"boolean"}},"required":["id","event_id","type","status","response","created_at","updated_at","amount","deleted_at","tenant_id","livemode"],"title":"EventSettlement"},"EventSlot":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"start_time":{"type":"string","format":"date-time"},"is_active":{"type":"boolean"},"is_sold_out":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"},"capacity":{"type":["integer","null"]},"tenant_id":{"type":"string"},"livemode":{"type":"boolean"}},"required":["id","event_id","start_time","is_active","is_sold_out","created_at","updated_at","deleted_at","capacity","tenant_id","livemode"],"title":"EventSlot"},"EventStatus":{"type":"string","description":"Single source of truth for event statuses. Lifecycle:   Draft → Pending (multi-user tenants) or Draft → Active (single-user tenants)   Pending → Active (after tenant admin approval)   Active → Completed (when end_date passes, via events:manage-status)   Active → Inactive (manual cancellation)\n","enum":["draft","pending","active","completed","inactive","rejected","changes_requested"],"title":"EventStatus"},"FanbaseCommunication":{"type":"object","properties":{"id":{"type":"string"},"tenant_id":{"type":"string"},"fanbase_id":{"type":"string"},"organization_id":{"type":"string"},"created_by_user_id":{"type":"string"},"channel":{"type":"string"},"status":{"type":"string"},"subject":{"type":["string","null"]},"message":{"type":"string"},"recipients_filter":{"type":["array","null"],"items":{}},"recipients_count":{"type":"integer"},"schedule_at":{"type":["string","null"],"format":"date-time"},"processed_at":{"type":["string","null"],"format":"date-time"},"error_message":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"},"credits_deducted_cents":{"type":"integer"},"credits_refunded_cents":{"type":"integer"},"credit_transaction_id":{"type":["string","null"]},"livemode":{"type":"boolean"}},"required":["id","tenant_id","fanbase_id","organization_id","created_by_user_id","channel","status","subject","message","recipients_filter","recipients_count","schedule_at","processed_at","error_message","created_at","updated_at","deleted_at","credits_deducted_cents","credits_refunded_cents","credit_transaction_id","livemode"],"title":"FanbaseCommunication"},"FanbaseProfileResource":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"contact_email":{"type":"string"},"website":{"type":["string","null"]},"instagram":{"type":["string","null"]},"twitter":{"type":"string"},"facebook":{"type":"string"},"logo_url":{"type":"string"},"cover_url":{"type":"string"}},"required":["id","name","slug","description","contact_email","website","instagram","twitter","facebook","logo_url","cover_url"],"title":"FanbaseProfileResource"},"FanbaseTierResource":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"threshold":{"type":"string"},"perks":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}]}},"required":["id","name","threshold","perks"],"title":"FanbaseTierResource"},"GrantEntitlementRequest":{"type":"object","properties":{"customer":{"type":"string","maxLength":255},"contact_hash":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"resource":{"type":"object","properties":{"type":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","maxLength":64},"id":{"type":"string","maxLength":255},"variant":{"type":["string","null"],"maxLength":255}},"required":["type","id"]},"country":{"type":["string","null"],"minLength":2,"maxLength":2},"domain":{"type":["string","null"],"maxLength":255},"metadata":{"type":["string","null"]},"external_id":{"type":["string","null"],"maxLength":255},"source":{"type":"string","enum":["payment","tenant_grant","comp","subscription","membership_tier","ticket","promotion"]},"source_ref":{"type":["string","null"],"maxLength":255},"starts_at":{"type":["string","null"],"format":"date-time","pattern":"(Z|[+-]\\d{2}:?\\d{2})$"},"ends_at":{"type":["string","null"],"format":"date-time","pattern":"(Z|[+-]\\d{2}:?\\d{2})$"},"limits":{"type":"object","properties":{"max_devices":{"type":["integer","null"],"minimum":1,"maximum":1000000},"max_concurrent_sessions":{"type":["integer","null"],"minimum":1,"maximum":1000000},"max_views":{"type":["integer","null"],"minimum":1,"maximum":1000000},"allowed_countries":{"type":["array","null"],"items":{"type":"string","minLength":2,"maxLength":2},"maxItems":300},"allowed_domains":{"type":["array","null"],"items":{"type":"string","maxLength":255},"maxItems":100},"concurrency_policy":{"type":["string","null"],"enum":["reject_new","replace_oldest",null]}}}},"required":["resource"],"title":"GrantEntitlementRequest"},"ImportMuxInvoiceRequest":{"type":"object","properties":{"invoice_number":{"type":"string","maxLength":80},"period_start":{"type":"string","format":"date-time"},"period_end":{"type":"string","format":"date-time"},"source_currency":{"type":["string","null"],"minLength":3,"maxLength":3},"source_amount":{"type":"number","minimum":0},"fx_rate_usd_kes":{"type":"number","minimum":0},"lines":{"type":"array","items":{"type":"object","properties":{"line_type":{"type":"string","enum":["encoding","storage","delivery","live_streaming","live_recording","data_transfer","other"]},"mux_asset_id":{"type":["string","null"],"maxLength":120},"mux_live_stream_id":{"type":["string","null"],"maxLength":120},"quantity":{"type":"number","minimum":0},"unit":{"type":"string","enum":["minute","gb","gb-month","count"]},"unit_cost_usd":{"type":"number","minimum":0},"line_total_usd":{"type":"number","minimum":0}},"required":["line_type","quantity","unit","unit_cost_usd","line_total_usd"]},"minItems":1}},"required":["invoice_number","period_start","period_end","source_amount","fx_rate_usd_kes","lines"],"title":"ImportMuxInvoiceRequest"},"InitiateTopUpRequest":{"type":"object","properties":{"amount_kes":{"type":"number","minimum":10,"maximum":100000},"redirect_url":{"type":"string","format":"uri"}},"required":["amount_kes","redirect_url"],"title":"InitiateTopUpRequest"},"InviteAttendeeRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":20},"booking_item_id":{"type":"string","format":"uuid"}},"required":["email","booking_item_id"],"title":"InviteAttendeeRequest"},"InviteResource":{"type":"object","properties":{"event_name":{"type":["string","null"]},"event_date":{"type":["string","null"]},"event_location":{"type":"null"},"event_image":{"type":["string","null"]},"ticket_type":{"anyOf":[{"type":"string"},{"type":"string","enum":["Ticket"]}]},"invited_by":{"type":["string","null"]},"expires_at":{"type":["string","null"]}},"required":["event_name","event_date","event_location","event_image","ticket_type","invited_by","expires_at"],"title":"InviteResource"},"InviteTenantTeamMemberRequest":{"type":"object","properties":{"email":{"type":"string","format":"email","maxLength":255},"name":{"type":["string","null"],"maxLength":100},"role":{"type":"string","enum":["admin","check_in","finance","org_management","events","developer","viewer","owner","support","content","door_staff"]}},"required":["email","role"],"title":"InviteTenantTeamMemberRequest"},"IssuePlaybackTokenRequest":{"type":"object","properties":{"order_code":{"type":["string","null"],"maxLength":60},"buyer_email":{"type":["string","null"],"format":"email","maxLength":255},"device_fingerprint":{"type":["string","null"],"maxLength":128}},"title":"IssuePlaybackTokenRequest"},"LengthAwarePaginator":{"type":"object","properties":{"current_page":{"type":"integer"},"data":{"type":"string"},"first_page_url":{"type":"string"},"from":{"type":["integer","null"]},"last_page":{"type":"integer"},"last_page_url":{"type":"string"},"links":{"type":"object","additionalProperties":{}},"next_page_url":{"type":"string"},"path":{"type":["string","null"]},"per_page":{"type":"integer"},"prev_page_url":{"type":["string","null"]},"to":{"type":["integer","null"]},"total":{"type":"integer"}},"required":["current_page","data","first_page_url","from","last_page","last_page_url","links","next_page_url","path","per_page","prev_page_url","to","total"],"title":"LengthAwarePaginator"},"Media":{"type":"object","properties":{"id":{"type":"string"},"tenant_id":{"type":"string"},"mediable_type":{"type":"string"},"mediable_id":{"type":"string"},"collection":{"type":"string"},"disk":{"type":"string"},"path":{"type":"string"},"filename":{"type":"string"},"mime_type":{"type":"string"},"size":{"type":"integer"},"width":{"type":["integer","null"]},"height":{"type":["integer","null"]},"variants":{"type":"array","items":{}},"position":{"type":"integer"},"alt_text":{"type":["string","null"]},"custom_properties":{"type":"array","items":{}},"file_hash":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"},"livemode":{"type":"boolean"}},"required":["id","tenant_id","mediable_type","mediable_id","collection","disk","path","filename","mime_type","size","width","height","variants","position","alt_text","custom_properties","file_hash","created_at","updated_at","deleted_at","livemode"],"title":"Media"},"MediaReorderRequest":{"type":"object","properties":{"collection":{"type":"string","maxLength":100},"order":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1}},"required":["collection","order"],"title":"MediaReorderRequest"},"MediaResource":{"type":"object","properties":{"id":{"type":"string"},"collection":{"type":"string"},"filename":{"type":"string"},"mime_type":{"type":"string"},"size":{"type":"integer"},"size_human":{"type":"string"},"width":{"type":["integer","null"]},"height":{"type":["integer","null"]},"position":{"type":"integer"},"alt_text":{"type":["string","null"]},"urls":{"type":"array","items":{}},"custom_properties":{"type":"array","items":{}},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","collection","filename","mime_type","size","size_human","width","height","position","alt_text","urls","custom_properties","created_at","updated_at"],"title":"MediaResource"},"MediaUploadRequest":{"type":"object","properties":{"file":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"Single file upload"},"files":{"type":["array","null"],"description":"Multiple files upload","items":{"type":"string","format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."},"maxItems":10},"collection":{"type":["string","null"],"description":"Collection name","pattern":"^[a-z_]+$","maxLength":100},"position":{"type":["integer","null"],"description":"Position for ordering (optional)","minimum":0},"alt_text":{"type":["string","null"],"description":"Alt text for accessibility","maxLength":255},"custom_properties":{"type":["array","null"],"description":"Custom properties (optional metadata)","items":{"type":"string"}}},"title":"MediaUploadRequest"},"MerchOrderResource":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"organization_id":{"type":"string"},"status":{"type":"string"},"fulfillment_status":{"type":"string"},"currency":{"type":"string"},"subtotal_cents":{"type":"integer"},"shipping_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"total_cents":{"type":"integer"},"refund_amount_cents":{"type":"integer"},"checkout_url":{"type":["string","null"]},"customer":{"type":["array","null"],"items":{}},"shipping_address":{"type":["array","null"],"items":{}},"digital_access":{"type":["array","null"],"items":{}},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"product_id":{"type":"string"},"variant_id":{"type":["string","null"]},"title":{"type":"string"},"quantity":{"type":"integer"},"unit_price_cents":{"type":"integer"},"total_cents":{"type":"integer"}},"required":["id","product_id","variant_id","title","quantity","unit_price_cents","total_cents"]}},"paid_at":{"type":["string","null"]},"fulfilled_at":{"type":["string","null"]},"refunded_at":{"type":["string","null"]},"created_at":{"type":["string","null"]}},"required":["id","code","organization_id","status","fulfillment_status","currency","subtotal_cents","shipping_cents","tax_cents","total_cents","refund_amount_cents","checkout_url","customer","shipping_address","digital_access","paid_at","fulfilled_at","refunded_at","created_at"],"title":"MerchOrderResource"},"MerchProductResource":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"title":{"type":"string"},"slug":{"type":"string"},"description":{"type":["string","null"]},"story":{"type":["string","null"]},"type":{"type":"string"},"status":{"type":"string"},"visibility":{"type":"string"},"price":{"type":"number"},"currency":{"type":"string"},"shipping_fee":{"type":"number"},"tax_amount":{"type":"number"},"poster_url":{"type":["string","null"]},"external_storefront":{"type":["array","null"],"items":{}},"digital_delivery":{"type":["array","null"],"items":{}},"variants":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"sku":{"type":["string","null"]},"options":{"type":["array","null"],"items":{}},"price":{"type":["number","null"]},"stock_quantity":{"type":["integer","null"]},"reserved_quantity":{"type":"integer"},"low_stock_threshold":{"type":["integer","null"]},"sold_out":{"type":"string"}},"required":["id","sku","options","price","stock_quantity","reserved_quantity","low_stock_threshold","sold_out"]}},"review_note":{"type":["string","null"]},"rejection_reason":{"type":["string","null"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","organization_id","title","slug","description","story","type","status","visibility","price","currency","shipping_fee","tax_amount","poster_url","external_storefront","review_note","rejection_reason","created_at","updated_at"],"title":"MerchProductResource"},"OpenSessionRequest":{"type":"object","properties":{"customer":{"type":"string","maxLength":255},"contact_hash":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"resource":{"type":"object","properties":{"type":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","maxLength":64},"id":{"type":"string","maxLength":255},"variant":{"type":["string","null"],"maxLength":255}},"required":["type","id"]},"country":{"type":["string","null"],"minLength":2,"maxLength":2},"domain":{"type":["string","null"],"maxLength":255},"device_id":{"type":"string","maxLength":255}},"required":["resource","device_id"],"title":"OpenSessionRequest"},"OrderResource":{"type":"object","properties":{"order_id":{"type":"string"},"status":{"type":"string"},"requires_approval":{"type":"boolean"},"approval_status":{"type":"string"},"currency":{"anyOf":[{"type":"string"},{"type":"string","enum":["KES"]}]},"checkout_url":{"type":"string"}},"required":["order_id","status","requires_approval","approval_status","currency","checkout_url"],"title":"OrderResource"},"OrgPlan":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"currency":{"type":"string"},"amount":{"type":"string"},"interval":{"type":"string"},"trial_days":{"type":"integer"},"features":{"type":["array","null"],"items":{}},"is_active":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"}},"required":["id","organization_id","name","slug","currency","amount","interval","trial_days","features","is_active","created_at","updated_at","deleted_at"],"title":"OrgPlan"},"OrgPlanStoreRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"slug":{"type":"string","maxLength":255},"currency":{"type":"string","maxLength":10},"amount":{"type":"number","minimum":0},"interval":{"type":"string","enum":["monthly","yearly","one_time"]},"trial_days":{"type":["integer","null"],"minimum":0},"features":{"type":["array","null"],"items":{"type":"string"}},"is_active":{"type":"boolean"}},"required":["name","slug","currency","amount","interval"],"title":"OrgPlanStoreRequest"},"OrgPost":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"author_user_id":{"type":"string"},"title":{"type":"string"},"body":{"type":["string","null"]},"media":{"type":["array","null"],"items":{}},"visibility":{"type":"string"},"state":{"type":"string"},"published_at":{"type":["string","null"],"format":"date-time"},"meta":{"type":["array","null"],"items":{}},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"},"tenant_id":{"type":"string"},"livemode":{"type":"boolean"}},"required":["id","organization_id","author_user_id","title","body","media","visibility","state","published_at","meta","created_at","updated_at","deleted_at","tenant_id","livemode"],"title":"OrgPost"},"OrgPostStoreRequest":{"type":"object","properties":{"title":{"type":"string","maxLength":160},"body":{"type":["string","null"]},"media":{"type":["array","null"],"items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video","link"]},"url":{"type":"string","format":"uri"}}}},"visibility":{"type":["string","null"],"enum":["public","followers","subscribers",null]}},"required":["title"],"title":"OrgPostStoreRequest"},"OrgPostUpdateRequest":{"type":"object","properties":{"title":{"type":"string","maxLength":160},"body":{"type":["string","null"]},"media":{"type":["array","null"],"items":{"type":"object","properties":{"type":{"type":"string","enum":["image","video","link"]},"url":{"type":"string","format":"uri"}}}},"visibility":{"type":"string","enum":["public","followers","subscribers"]},"state":{"type":"string","enum":["draft","archived"]}},"title":"OrgPostUpdateRequest"},"OrgSubscription":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"user_id":{"type":"string"},"plan_id":{"type":"string"},"status":{"type":"string"},"current_period_start":{"type":["string","null"],"format":"date-time"},"current_period_end":{"type":["string","null"],"format":"date-time"},"cancel_at":{"type":["string","null"],"format":"date-time"},"meta":{"type":["array","null"],"items":{}},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"}},"required":["id","organization_id","user_id","plan_id","status","current_period_start","current_period_end","cancel_at","meta","created_at","updated_at","deleted_at"],"title":"OrgSubscription"},"OrgSubscriptionStoreRequest":{"type":"object","properties":{"plan_id":{"type":"string","format":"uuid"},"meta":{"type":["array","null"],"items":{"type":"string"}}},"required":["plan_id"],"title":"OrgSubscriptionStoreRequest"},"OrganizationFollowRequest":{"type":"object","properties":{"notifications":{"type":"object","properties":{"posts":{"type":"boolean"},"mentions":{"type":"boolean"}}}},"title":"OrganizationFollowRequest"},"OrganizationMember":{"type":"object","properties":{"id":{"type":"string"},"organization_id":{"type":"string"},"user_id":{"type":"string"},"role":{"type":"string"},"status":{"type":"string"},"invited_by":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"}},"required":["id","organization_id","user_id","role","status","invited_by","created_at","updated_at","deleted_at"],"title":"OrganizationMember"},"OrganizationResource":{"type":"object","properties":{"id":{"type":"string"},"tenant_id":{"type":"string"},"owner_user_id":{"type":"string"},"name":{"type":"string"},"handle":{"type":"string"},"bio":{"type":["string","null"]},"avatar_url":{"type":["string","null"]},"banner_url":{"type":["string","null"]},"contact_email":{"type":["string","null"]},"contact_phone":{"type":["string","null"]},"links":{"type":["array","null"],"items":{}},"is_active":{"type":"boolean"},"settings":{"type":["array","null"],"items":{}},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","tenant_id","owner_user_id","name","handle","bio","avatar_url","banner_url","contact_email","contact_phone","links","is_active","settings","created_at","updated_at"],"title":"OrganizationResource"},"OrganizerAttendeeDetailResource":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"ticket_type_id":{"type":["string","null"]},"ticket_type_name":{"anyOf":[{"type":"string"},{"type":"string","enum":["Ticket"]}]},"status":{"type":"string","enum":["confirmed","pending","cancelled"]},"invite_status":{"type":"string","enum":["accepted","sent","not_sent"]},"code":{"type":"string"},"checked_in_at":{"type":["string","null"]},"order_id":{"type":"string"},"order_code":{"type":["string","null"]},"custom_data":{"type":"string"},"purchase_date":{"type":["string","null"]},"created_at":{"type":["string","null"]}},"required":["id","first_name","last_name","email","phone","ticket_type_id","ticket_type_name","status","invite_status","code","checked_in_at","order_id","order_code","custom_data","purchase_date","created_at"],"title":"OrganizerAttendeeDetailResource"},"OrganizerAttendeeResource":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"booking_item_id":{"type":"string"},"ticket_type_id":{"type":["string","null"]},"ticket_type_name":{"anyOf":[{"type":"string"},{"type":"string","enum":["Unknown"]}]},"status":{"type":"string","enum":["confirmed","pending","cancelled"]},"invite_status":{"type":"string","enum":["accepted","sent","not_sent"]},"order_code":{"type":["string","null"]},"purchase_date":{"type":["string","null"]},"checked_in_at":{"type":["string","null"]},"code":{"type":"string"},"custom_data":{"type":"string"}},"required":["id","first_name","last_name","email","phone","booking_item_id","ticket_type_id","ticket_type_name","status","invite_status","order_code","purchase_date","checked_in_at","code","custom_data"],"title":"OrganizerAttendeeResource"},"OrganizerContentItemResource":{"type":"object","properties":{"id":{"type":"string"},"content_id":{"type":"string"},"parent_item_id":{"type":["string","null"]},"type":{"type":"string"},"status":{"type":"string"},"title":{"type":"string"},"position":{"type":"integer"},"body":{"type":["string","null"]},"scheduled_release_at":{"type":["string","null"]},"price_individual":{"type":["number","null"]},"preview_allowed":{"type":"boolean"},"mux":{"type":"object","properties":{"asset_id":{"type":["string","null"]},"playback_id":{"type":["string","null"]},"playback_policy":{"type":"string"}},"required":["asset_id","playback_id","playback_policy"]},"media":{"type":"object","properties":{"duration_seconds":{"type":["integer","null"]},"source_filename":{"type":["string","null"]},"aspect_ratio":{"type":["string","null"]},"max_resolution_tier":{"type":["string","null"]},"max_frame_rate":{"type":["number","null"]},"video_codec":{"type":["string","null"]},"audio_codec":{"type":["string","null"]},"bitrate_kbps":{"type":["integer","null"]},"file_size_bytes":{"type":["integer","null"]},"languages":{"type":["array","null"],"items":{}},"has_captions":{"type":"boolean"},"captions":{"type":["array","null"],"items":{}},"encoding_tier":{"type":"string"}},"required":["duration_seconds","source_filename","aspect_ratio","max_resolution_tier","max_frame_rate","video_codec","audio_codec","bitrate_kbps","file_size_bytes","languages","has_captions","captions","encoding_tier"]},"thumbnails":{"type":["object","null"],"properties":{"thumbnail_url":{"type":"string"},"thumbnail_urls":{"type":"object","properties":{"small":{"type":"string"},"medium":{"type":"string"},"large":{"type":"string"}},"required":["small","medium","large"]},"animated_preview_url":{"type":"string"},"storyboard_url":{"type":"string"}},"required":["thumbnail_url","thumbnail_urls","animated_preview_url","storyboard_url"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","content_id","parent_item_id","type","status","title","position","body","scheduled_release_at","price_individual","preview_allowed","mux","media","thumbnails","created_at","updated_at"],"title":"OrganizerContentItemResource"},"OrganizerContentResource":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"category":{"type":["string","null"]},"status":{"type":"string"},"pricing":{"type":"object","properties":{"proposed_price":{"type":"number"},"final_price":{"type":["number","null"]},"currency":{"type":"string"},"access_window_hours":{"type":["integer","null"]},"refund_window_hours":{"type":"integer"}},"required":["proposed_price","final_price","currency","access_window_hours","refund_window_hours"]},"splits":{"type":"object","properties":{"platform_fee_percentage":{"type":["number","null"]},"tenant_cut_percentage":{"type":["number","null"]},"organizer_cut_percentage":{"type":["number","null"]}},"required":["platform_fee_percentage","tenant_cut_percentage","organizer_cut_percentage"]},"trailer":{"type":"object","properties":{"required":{"type":"boolean"},"max_seconds":{"type":"integer"},"item":{"anyOf":[{"$ref":"#/components/schemas/OrganizerContentItemResource"},{"type":"null"}]}},"required":["required","max_seconds"]},"items":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerContentItemResource"}},"publish_at":{"type":["string","null"]},"ends_at":{"type":["string","null"]},"approved_at":{"type":["string","null"]},"rejected_at":{"type":["string","null"]},"rejection_reason":{"type":["string","null"]},"review_note":{"type":["string","null"]},"allow_per_episode_purchase":{"type":"boolean"},"subscription_included":{"type":"boolean"},"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"handle":{"type":"string"},"avatar_url":{"type":["string","null"]}},"required":["id","name","slug","handle","avatar_url"]},"stats":{"type":"object","properties":{"views":{"type":"integer"},"purchases":{"type":"integer"}},"required":["views","purchases"]},"poster_url":{"type":["string","null"]},"banner_url":{"type":["string","null"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","type","slug","title","description","category","status","pricing","splits","trailer","publish_at","ends_at","approved_at","rejected_at","rejection_reason","review_note","allow_per_episode_purchase","subscription_included","stats","poster_url","banner_url","created_at","updated_at"],"title":"OrganizerContentResource"},"OrganizerCouponResource":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"discount_type":{"type":"string"},"discount_value":{"type":"number"},"min_spend":{"type":["number","null"]},"max_discount":{"type":["number","null"]},"start_at":{"type":["string","null"]},"end_at":{"type":["string","null"]},"quantity":{"type":["integer","null"]},"per_user_limit":{"type":["integer","null"]},"redeemed_count":{"type":"integer"},"status":{"type":"string"},"ticket_ids":{"type":"object","additionalProperties":{}},"analytics":{"type":"object","properties":{"redeemed_count":{"type":"integer"},"orders_count":{"type":"integer"},"total_discount":{"type":"number"}},"required":["redeemed_count","orders_count","total_discount"]},"created_at":{"type":["string","null"]}},"required":["id","code","discount_type","discount_value","min_spend","max_discount","start_at","end_at","quantity","per_user_limit","redeemed_count","status","analytics","created_at"],"title":"OrganizerCouponResource"},"OrganizerDataFieldResource":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"field_type":{"type":"string"},"required":{"type":"boolean"},"options":{"type":"array","items":{}},"position":{"type":"integer"},"ticket_ids":{"type":"object","additionalProperties":{}},"created_at":{"type":["string","null"]}},"required":["id","name","field_type","required","options","position","created_at"],"title":"OrganizerDataFieldResource"},"OrganizerEventCommunicationDetailResource":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string"},"subject":{"type":"string"},"body":{"type":"string"},"status":{"type":"string"},"recipients_count":{"type":"integer"},"delivered_count":{"type":"integer"},"failed_count":{"type":"integer"},"recipients":{"type":"array","items":{"type":"object","additionalProperties":{}}},"credits_deducted_kes":{"type":"number"},"credits_refunded_kes":{"type":"number"},"net_cost_kes":{"type":"number"},"filters_used":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}]},"scheduled_at":{"type":["string","null"]},"sent_at":{"type":["string","null"]},"created_at":{"type":["string","null"]}},"required":["id","channel","subject","body","status","recipients_count","delivered_count","failed_count","recipients","credits_deducted_kes","credits_refunded_kes","net_cost_kes","filters_used","scheduled_at","sent_at","created_at"],"title":"OrganizerEventCommunicationDetailResource"},"OrganizerEventCommunicationResource":{"type":"object","properties":{"id":{"type":"string"},"channel":{"type":"string"},"subject":{"type":"string"},"body_preview":{"type":"string"},"status":{"type":"string"},"recipients_count":{"type":"integer"},"delivered_count":{"type":"integer"},"failed_count":{"type":"integer"},"credits_deducted_kes":{"type":"number"},"credits_refunded_kes":{"type":"number"},"net_cost_kes":{"type":"number"},"scheduled_at":{"type":["string","null"]},"sent_at":{"type":["string","null"]},"created_at":{"type":["string","null"]}},"required":["id","channel","subject","body_preview","status","recipients_count","delivered_count","failed_count","credits_deducted_kes","credits_refunded_kes","net_cost_kes","scheduled_at","sent_at","created_at"],"title":"OrganizerEventCommunicationResource"},"OrganizerEventOrderDetailResource":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"customer":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"}},"required":["name","email","phone"]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"attendees":{"type":"array","items":{"type":"object","additionalProperties":{}}},"coupon":{"type":["object","null"],"properties":{"code":{"type":"string"},"type":{"type":"string"},"value":{"type":"number"},"discount_amount":{"type":"number"}},"required":["code","type","value","discount_amount"]},"subtotal":{"type":"number"},"discount":{"type":"number"},"total":{"type":"number"},"currency":{"anyOf":[{"type":"string"},{"type":"string","enum":["KES"]}]},"payment_status":{"type":"string","enum":["completed","refunded","cancelled","pending"]},"payment_method":{"type":["string","null"]},"payment_reference":{"type":"string"},"payment_timeline":{"type":"array","prefixItems":[{"type":"object","properties":{"event":{"type":"string","const":"tickets_issued"},"timestamp":{"type":["string","null"]}},"required":["event","timestamp"]}],"minItems":1,"maxItems":1},"intelligence":{"type":"string","description":"Derived organizer intelligence: reconciliation refs, money &\nsettlement state, purchase consents, customer linkage."},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","code","customer","items","attendees","coupon","subtotal","discount","total","currency","payment_status","payment_method","payment_reference","payment_timeline","intelligence","created_at","updated_at"],"title":"OrganizerEventOrderDetailResource"},"OrganizerEventOrderResource":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"customer":{"type":"object","properties":{"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"}},"required":["name","email","phone"]},"items":{"type":"array","items":{"type":"object","additionalProperties":{}}},"coupon":{"type":["object","null"],"properties":{"code":{"type":"string"},"type":{"type":"string"},"value":{"type":"number"},"discount_amount":{"type":"number"}},"required":["code","type","value","discount_amount"]},"subtotal":{"type":"number"},"discount":{"type":"number"},"total":{"type":"number"},"currency":{"anyOf":[{"type":"string"},{"type":"string","enum":["KES"]}]},"payment_status":{"type":"string","enum":["completed","refunded","cancelled","pending"]},"payment_method":{"type":["string","null"]},"payment_reference":{"type":"string"},"attendees_count":{"type":["string","integer"]},"created_at":{"type":["string","null"]}},"required":["id","code","customer","items","coupon","subtotal","discount","total","currency","payment_status","payment_method","payment_reference","attendees_count","created_at"],"title":"OrganizerEventOrderResource"},"OrganizerEventResource":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"string","enum":["physical"]}]},"privacy":{"type":"string","enum":["public","private"]},"status":{"anyOf":[{"type":"string"},{"type":"string","enum":["draft"]}]},"is_paid":{"type":"boolean"},"requires_approval":{"type":"boolean"},"start_date":{"type":["string","null"]},"end_date":{"type":["string","null"]},"start_time":{"type":"string"},"end_time":{"type":"string"},"image_url":{"type":"string"},"gallery_urls":{"type":"string"},"location":{"type":"object","properties":{"venue":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"virtual_link":{"type":"string"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]}},"required":["venue","address","city","country","virtual_link","latitude","longitude"]},"settings":{"type":"object","properties":{"ticketing_start":{"type":"string","const":"immediate"},"ticketing_start_date":{"type":"null"},"custom_slug":{"type":"string"},"is_refundable":{"type":["string","boolean"]},"booking_expires_minutes":{"type":"string"},"flexible_payment":{"type":"object","properties":{"enabled":{"type":"boolean"},"deposit_percent":{"type":"null"},"max_installments":{"type":"null"}},"required":["enabled","deposit_percent","max_installments"]}},"required":["ticketing_start","ticketing_start_date","custom_slug","is_refundable","booking_expires_minutes","flexible_payment"]},"organizer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"slug":{"type":["string","null"]},"logo_url":{"type":["string","null"]}},"required":["id","name","slug","logo_url"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"stats":{"type":"object","properties":{"views":{"type":"integer"},"tickets_sold":{"type":"integer"},"revenue":{"type":"number"}},"required":["views","tickets_sold","revenue"]},"ticket_types":{"type":"string"},"coupons":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":{}}]},"data_fields":{"anyOf":[{"type":"string"},{"type":"object","additionalProperties":{}}]}},"required":["id","slug","name","description","category","type","privacy","status","is_paid","requires_approval","start_date","end_date","start_time","end_time","image_url","gallery_urls","location","settings","organizer","created_at","updated_at","stats","ticket_types","coupons","data_fields"],"title":"OrganizerEventResource"},"OrganizerLiveStreamResource":{"type":"object","properties":{"id":{"type":"string"},"content_id":{"type":"string"},"status":{"type":"string"},"latency_mode":{"type":"string"},"reconnect_window_seconds":{"type":"integer"},"scheduled_start_at":{"type":["string","null"]},"started_at":{"type":["string","null"]},"ended_at":{"type":["string","null"]},"last_disconnected_at":{"type":["string","null"]},"simulcast_targets":{"type":"array","items":{}},"viewer_peak":{"type":"integer"},"mux":{"type":"object","description":"One literal so Scramble publishes every field. The key goes only to roles that can rotate it;\nothers get the last four characters.","properties":{"stream_id":{"type":["string","null"]},"playback_id":{"type":["string","null"]},"stream_key":{"type":["string","null"]},"stream_key_last4":{"type":"string"},"rtmp_url":{"type":["string","null"]},"rtmp_url_alt":{"type":["string","null"]},"srt_url":{"type":["string","null"]}},"required":["stream_id","playback_id"]},"recording":{"type":"object","properties":{"asset_id":{"type":["string","null"]},"item_id":{"type":["string","null"]}},"required":["asset_id","item_id"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","content_id","status","latency_mode","reconnect_window_seconds","scheduled_start_at","started_at","ended_at","last_disconnected_at","simulcast_targets","viewer_peak","mux","recording","created_at","updated_at"],"title":"OrganizerLiveStreamResource"},"OrganizerPaymentResource":{"type":"object","properties":{"id":{"type":"string"},"provider":{"type":"string"},"client_reference":{"type":"string"},"checkout_id":{"type":"string"},"amount":{"type":"integer"},"currency":{"type":"string"},"status":{"type":"string"},"wallet":{"type":"string"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"booking":{"type":["object","null"],"properties":{"id":{"type":"string"},"code":{"type":"string"},"event_id":{"type":"string"},"quantity":{"type":"integer"},"amount":{"type":"string"},"status":{"type":"string"}},"required":["id","code","event_id","quantity","amount","status"]}},"required":["id","provider","client_reference","checkout_id","amount","currency","status","wallet","created_at","updated_at","booking"],"title":"OrganizerPaymentResource"},"OrganizerSettingsResource":{"type":"object","properties":{"timezone":{"anyOf":[{"type":"string"},{"type":"string","enum":["Africa/Nairobi"]}]},"currency":{"anyOf":[{"type":"string"},{"type":"string","enum":["KES"]}]},"event_defaults":{"type":"object","properties":{"auto_approve_attendees":{"type":"string"},"require_phone_number":{"type":"string"}},"required":["auto_approve_attendees","require_phone_number"]},"payout":{"anyOf":[{"type":"object","properties":{"account_name":{"type":"string","const":"M-Pesa"},"account_number":{"type":"string"},"bank_name":{"type":"string","const":"Safaricom"},"swift_code":{"type":["string","null"]},"wallet_username":{"type":["string","null"]}},"required":["account_name","account_number","bank_name","swift_code","wallet_username"]},{"type":"object","properties":{"account_name":{"type":"null"},"account_number":{"type":"null"},"bank_name":{"type":"null"},"swift_code":{"type":"null"},"wallet_username":{"type":"null"}},"required":["account_name","account_number","bank_name","swift_code","wallet_username"]}]},"notifications":{"type":"object","properties":{"ticket_purchases":{"type":"string"},"event_reminders":{"type":"string"},"payout_notifications":{"type":"string"},"weekly_summary":{"type":"string"}},"required":["ticket_purchases","event_reminders","payout_notifications","weekly_summary"]}},"required":["timezone","currency","event_defaults","payout","notifications"],"title":"OrganizerSettingsResource"},"OrganizerSettlementResource":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"amount":{"type":"number"},"type":{"type":"string"},"status":{"type":"string"},"response":{"type":"string"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"event":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"slug":{"type":["string","null"]},"transactions_count":{"type":["string","null"]}},"required":["id","name","slug","transactions_count"]}},"required":["id","event_id","amount","type","status","response","created_at","updated_at"],"title":"OrganizerSettlementResource"},"OrganizerSlotResource":{"type":"object","properties":{"id":{"type":"string"},"start_time":{"type":"string"},"capacity":{"type":["integer","null"]},"sold":{"type":"integer"},"remaining":{},"is_active":{"type":"boolean"},"is_sold_out":{"type":"boolean"},"created_at":{"type":["string","null"]}},"required":["id","start_time","capacity","sold","remaining","is_active","is_sold_out","created_at"],"title":"OrganizerSlotResource"},"OrganizerTicketResource":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"price":{"type":"number"},"available":{"type":["integer","null"]},"sold":{"type":"integer"},"remaining":{},"per_person_limit":{"type":["integer","null"]},"max_attendees":{"type":"integer"},"is_private":{"type":"boolean"},"pricing_mode":{"type":"string","enum":["name_your_price","fixed"]},"is_flexipay":{"type":"boolean"},"flexipay_min_price":{"type":["number","null"]},"flexipay_max_price":{"type":["number","null"]},"allow_pay_later":{"type":"boolean"},"pay_later_deposit":{"type":["number","null"]},"pay_later_min_installments":{"type":["integer","null"]},"pay_later_max_installments":{"type":["integer","null"]},"sales_start_date":{"type":["string","null"]},"sales_end_date":{"type":["string","null"]},"status":{"type":"string"},"is_sold_out":{"type":"boolean"},"is_sold_out_effective":{"type":"string"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","name","price","available","sold","remaining","per_person_limit","max_attendees","is_private","pricing_mode","is_flexipay","flexipay_min_price","flexipay_max_price","allow_pay_later","pay_later_deposit","pay_later_min_installments","pay_later_max_installments","sales_start_date","sales_end_date","status","is_sold_out","is_sold_out_effective","created_at","updated_at"],"title":"OrganizerTicketResource"},"OrganizerUploadResource":{"type":"object","properties":{"id":{"type":"string"},"content_item_id":{"type":"string"},"mux_upload_id":{"type":"string"},"upload_url":{"type":"string"},"upload_status":{"type":"string"},"asset_id":{"type":["string","null"]},"expires_at":{"type":"string"},"created_at":{"type":["string","null"]}},"required":["id","content_item_id","mux_upload_id","upload_url","upload_status","asset_id","expires_at","created_at"],"title":"OrganizerUploadResource"},"PayOrderBalanceRequest":{"type":"object","properties":{"amount":{"type":["number","null"]}},"title":"PayOrderBalanceRequest"},"Payout":{"type":"object","properties":{"id":{"type":"string"},"payout_number":{"type":"string"},"tenant_id":{"type":"string"},"settlement_id":{"type":["string","null"]},"amount":{"type":"integer"},"currency":{"type":"string"},"bank_name":{"type":"string"},"bank_account":{"type":"string"},"status":{"type":"string"},"scheduled_date":{"type":"string","format":"date-time"},"period_label":{"type":"string"},"reference":{"type":["string","null"]},"completed_at":{"type":["string","null"],"format":"date-time"},"failure_reason":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"organization_id":{"type":["string","null"]},"event_id":{"type":["string","null"]},"settlement_batch_id":{"type":["string","null"]},"destination_wallet":{"type":["string","null"]},"method":{"type":"string"},"beneficiary_type":{"type":["string","null"]},"beneficiary_id":{"type":["string","null"]},"external_reference":{"type":["string","null"]},"idempotency_key":{"type":["string","null"]},"operator_notes":{"type":["string","null"]},"metadata":{"type":["array","null"],"items":{}},"deleted_at":{"type":["string","null"],"format":"date-time"},"livemode":{"type":"boolean"}},"required":["id","payout_number","tenant_id","settlement_id","amount","currency","bank_name","bank_account","status","scheduled_date","period_label","reference","completed_at","failure_reason","created_at","updated_at","organization_id","event_id","settlement_batch_id","destination_wallet","method","beneficiary_type","beneficiary_id","external_reference","idempotency_key","operator_notes","metadata","deleted_at","livemode"],"title":"Payout"},"PayoutRequestResource":{"type":"object","properties":{"id":{"type":"string"},"tenant_id":{"type":"string"},"organization_id":{"type":"string"},"event_id":{"type":["string","null"]},"requested_by_user_id":{"type":"string"},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"reason":{"type":"string"},"status":{"type":"string"},"tenant_reviewed_at":{"type":["string","null"]},"tenant_review_note":{"type":["string","null"]},"platform_reviewed_at":{"type":["string","null"]},"platform_review_note":{"type":["string","null"]},"settlement_batch_id":{"type":["string","null"]},"payout_ids":{"type":["array","null"],"items":{}},"rejection_reason":{"type":["string","null"]},"rejected_by":{"type":["string","null"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"tenant":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"event":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]}},"required":["id","name"]},"requested_by":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":["string","null"]},"last_name":{"type":["string","null"]},"username":{"type":["string","null"]}},"required":["id","first_name","last_name","username"]},"tenant_reviewed_by":{"type":"object","properties":{"id":{"type":["string","null"]},"first_name":{"type":["string","null"]},"last_name":{"type":["string","null"]},"username":{"type":["string","null"]}},"required":["id","first_name","last_name","username"]}},"required":["id","tenant_id","organization_id","event_id","requested_by_user_id","amount_cents","currency","reason","status","tenant_reviewed_at","tenant_review_note","platform_reviewed_at","platform_review_note","settlement_batch_id","payout_ids","rejection_reason","rejected_by","created_at","updated_at"],"title":"PayoutRequestResource"},"PlaybackHeartbeatRequest":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"},"order_code":{"type":["string","null"],"maxLength":60},"buyer_email":{"type":["string","null"],"format":"email","maxLength":255}},"required":["session_id"],"title":"PlaybackHeartbeatRequest"},"PreviewRenderRequest":{"type":"object","properties":{"channel":{"type":"string","enum":["email","sms","whatsapp"]},"subject":{"type":["string","null"],"maxLength":255},"body":{"type":"string"},"context":{"type":"string","enum":["event","community"]},"event_slug":{"type":["string","null"]}},"required":["channel","body","context"],"title":"PreviewRenderRequest"},"PublicAttendeeTicketResource":{"type":"object","properties":{"attendee":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"name":{"type":"string"},"first_name":{"type":"string"},"last_name":{"type":"string"},"email":{"type":"string"},"status":{"type":"string","enum":["confirmed","pending"]}},"required":["id","code","name","first_name","last_name","email","status"]},"event":{"type":"object","properties":{"id":{"type":["string","null"]},"name":{"type":["string","null"]},"start_date":{"type":["string","null"]},"location":{"type":"object","properties":{"venue":{"type":["string","null"]},"city":{"type":["string","null"]}},"required":["venue","city"]},"image_url":{"type":["string","null"]},"organizer_name":{"type":["string","null"]}},"required":["id","name","start_date","location","image_url","organizer_name"]},"ticket":{"type":"object","properties":{"booking_item_id":{"type":"string"},"ticket_type":{"type":"string"},"booking_code":{"type":["string","null"]}},"required":["booking_item_id","ticket_type","booking_code"]},"links":{"type":"object","properties":{"ticket_url":{"type":"string"},"wallet_url":{"type":"string"},"confirm_url":{"type":"string"}},"required":["ticket_url","wallet_url","confirm_url"]},"wallet":{"type":"object","properties":{"apple_enabled":{"type":"boolean"},"google_enabled":{"type":"boolean"},"apple_url":{"type":["string","null"]},"google_url":{"type":["string","null"]}},"required":["apple_enabled","google_enabled","apple_url","google_url"]}},"required":["attendee","event","ticket","links","wallet"],"title":"PublicAttendeeTicketResource"},"PublicContentItemResource":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"position":{"type":"integer"},"title":{"type":"string"},"duration_seconds":{"type":["integer","null"]},"is_released":{"type":"boolean"},"scheduled_release_at":{"type":["string","null"]},"preview_allowed":{"type":"boolean"},"price_individual":{"type":["number","null"]},"aspect_ratio":{"type":["string","null"]},"max_resolution_tier":{"type":["string","null"]},"has_captions":{"type":"boolean"}},"required":["id","type","position","title","duration_seconds","is_released","scheduled_release_at","preview_allowed","price_individual","aspect_ratio","max_resolution_tier","has_captions"],"title":"PublicContentItemResource"},"PublicContentResource":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"category":{"type":["string","null"]},"currency":{"type":"string"},"price":{"type":["number","null"]},"access_window_hours":{"type":["integer","null"]},"poster_url":{"type":["string","null"]},"banner_url":{"type":["string","null"]},"trailer":{"type":["object","null"],"properties":{"item_id":{"type":"string"},"duration_seconds":{"type":["integer","null"]},"available":{"type":"boolean"},"aspect_ratio":{"type":["string","null"]},"max_resolution_tier":{"type":["string","null"]},"thumbnail_url":{"type":"string"},"animated_preview_url":{"type":"string"}},"required":["item_id","duration_seconds","available","aspect_ratio","max_resolution_tier","thumbnail_url","animated_preview_url"]},"items_count":{"type":["integer","null"],"minimum":0},"items":{"type":"array","items":{"$ref":"#/components/schemas/PublicContentItemResource"}},"allow_per_episode_purchase":{"type":"boolean"},"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"handle":{"type":"string"},"avatar_url":{"type":["string","null"]}},"required":["id","name","slug","handle","avatar_url"]},"published_at":{"type":["string","null"]},"purchase_eligibility":{"type":"object","properties":{"can_purchase":{"type":"string"},"requires_auth":{"type":"boolean"},"subscription_included":{"type":"boolean"}},"required":["can_purchase","requires_auth","subscription_included"]}},"required":["id","slug","type","title","description","category","currency","price","access_window_hours","poster_url","banner_url","trailer","items_count","allow_per_episode_purchase","published_at","purchase_eligibility"],"title":"PublicContentResource"},"PublicEventDetailResource":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"string","enum":["physical"]}]},"is_paid":{"type":"boolean"},"requires_approval":{"type":"boolean"},"start_date":{"type":["string","null"]},"end_date":{"type":["string","null"]},"image_url":{"type":"string"},"location":{"type":"object","properties":{"venue":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"virtual_link":{"type":"string"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]}},"required":["venue","address","city","country","virtual_link","latitude","longitude"]},"organizer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"slug":{"type":["string","null"]},"logo_url":{"type":["string","null"]}},"required":["id","name","slug","logo_url"]},"ticket_types":{"type":"string"},"seo":{"type":"object","properties":{"meta_html":{"type":"string"},"short_url":{"type":"string"},"og_image_url":{"type":"string"}},"required":["meta_html","short_url","og_image_url"]}},"required":["id","slug","name","description","category","type","is_paid","requires_approval","start_date","end_date","image_url","location","organizer","ticket_types","seo"],"title":"PublicEventDetailResource"},"PublicEventResource":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"category":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"string","enum":["physical"]}]},"is_paid":{"type":"boolean"},"requires_approval":{"type":"boolean"},"start_date":{"type":["string","null"]},"end_date":{"type":["string","null"]},"image_url":{"type":"string"},"location":{"type":"object","properties":{"venue":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"country":{"type":"string"},"virtual_link":{"type":"string"},"latitude":{"type":["number","null"]},"longitude":{"type":["number","null"]}},"required":["venue","address","city","country","virtual_link","latitude","longitude"]},"organizer":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":["string","null"]},"slug":{"type":["string","null"]},"logo_url":{"type":["string","null"]}},"required":["id","name","slug","logo_url"]},"ticket_types":{"type":"string"}},"required":["id","slug","name","description","category","type","is_paid","requires_approval","start_date","end_date","image_url","location","organizer","ticket_types"],"title":"PublicEventResource"},"PublicFanbaseDetailResource":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"contact_email":{"type":"string"},"logo_url":{"type":"string"},"cover_url":{"type":"string"},"website":{"type":["string","null"]},"instagram":{"type":["string","null"]},"twitter":{"type":["string","null"]},"facebook":{"type":["string","null"]},"linkedin":{"type":["string","null"]},"youtube":{"type":["string","null"]},"followers_count":{"type":"integer"},"events_count":{"type":"integer"},"is_following":{"type":"boolean"}},"required":["id","name","slug","description","contact_email","logo_url","cover_url","website","instagram","twitter","facebook","linkedin","youtube","followers_count","events_count","is_following"],"title":"PublicFanbaseDetailResource"},"PublicFanbaseResource":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"logo_url":{"type":"string"},"cover_url":{"type":"string"},"followers_count":{"type":"integer"},"events_count":{"type":"integer"}},"required":["id","name","slug","description","logo_url","cover_url","followers_count","events_count"],"title":"PublicFanbaseResource"},"PublicOrderResource":{"type":"object","properties":{"id":{"type":"string"},"code":{"type":"string"},"status":{"type":"string"},"purchase_type":{"type":"string"},"amount":{"type":"number"},"paid":{"type":"number"},"balance":{"type":"number"},"currency":{"type":"string"},"checkout_url":{"type":["string","null"]},"buyer_email":{"type":"string"},"content":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"}},"required":["id","slug","title"]},"created_at":{"type":["string","null"]}},"required":["id","code","status","purchase_type","amount","paid","balance","currency","checkout_url","buyer_email","created_at"],"title":"PublicOrderResource"},"PublicPlaybackTokenResource":{"type":"object","properties":{"token":{"type":"string"},"mux_playback_id":{"type":"string"},"expires_at":{"type":"string"},"session_id":{"type":["string","null"]},"refresh_before_expiry_seconds":{"type":"integer"},"heartbeat_interval_seconds":{"type":"integer"},"player":{"type":"object","properties":{"playback_id":{"type":"string"},"token":{"type":"string"}},"required":["playback_id","token"]}},"required":["token","mux_playback_id","expires_at","session_id","refresh_before_expiry_seconds","heartbeat_interval_seconds","player"],"title":"PublicPlaybackTokenResource"},"PublicSubscriptionPlanResource":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"monthly_price":{"type":"number"},"currency":{"type":"string"},"trial_days":{"type":"integer"},"scope":{"type":"string"},"organization_id":{"type":["string","null"]}},"required":["id","slug","name","description","monthly_price","currency","trial_days","scope","organization_id"],"title":"PublicSubscriptionPlanResource"},"RefreshPlaybackTokenRequest":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"},"order_code":{"type":["string","null"],"maxLength":60},"buyer_email":{"type":["string","null"],"format":"email","maxLength":255}},"required":["session_id"],"title":"RefreshPlaybackTokenRequest"},"Refund":{"type":"object","properties":{"id":{"type":"string"},"booking_id":{"type":"string"},"event_id":{"type":"string"},"due_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"},"cancelled_at":{"type":["string","null"],"format":"date-time"},"reason":{"type":["string","null"]},"status":{"type":"string"},"payment_details":{"type":["array","null"],"items":{}},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"amount":{"type":"string"},"deleted_at":{"type":["string","null"],"format":"date-time"},"payment_transaction_id":{"type":["string","null"]},"tenant_id":{"type":"string"},"livemode":{"type":"boolean"}},"required":["id","booking_id","event_id","due_at","completed_at","cancelled_at","reason","status","payment_details","created_at","updated_at","amount","deleted_at","payment_transaction_id","tenant_id","livemode"],"title":"Refund"},"RejectContentRequest":{"type":"object","properties":{"reason":{"type":"string","maxLength":5000}},"required":["reason"],"title":"RejectContentRequest"},"ReorderContentItemsRequest":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"position":{"type":"integer","minimum":0}},"required":["id","position"]},"minItems":1}},"required":["items"],"title":"ReorderContentItemsRequest"},"ReorderDataFieldsRequest":{"type":"object","properties":{"order":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1}},"required":["order"],"title":"ReorderDataFieldsRequest"},"RequestApprovalRequest":{"type":"object","properties":{"notes":{"type":["string","null"],"maxLength":5000}},"title":"RequestApprovalRequest"},"RequestChangesRequest":{"type":"object","properties":{"notes":{"type":"string","maxLength":5000}},"required":["notes"],"title":"RequestChangesRequest"},"ResourceRequest":{"type":"object","description":"A customer and a resource, with the optional country and domain the limits are checked against. Used by check.","properties":{"customer":{"type":"string","maxLength":255},"contact_hash":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"},"resource":{"type":"object","properties":{"type":{"type":"string","pattern":"^[a-z][a-z0-9_]*$","maxLength":64},"id":{"type":"string","maxLength":255},"variant":{"type":["string","null"],"maxLength":255}},"required":["type","id"]},"country":{"type":["string","null"],"minLength":2,"maxLength":2},"domain":{"type":["string","null"],"maxLength":255}},"required":["resource"],"title":"ResourceRequest"},"SendEventCommunicationRequest":{"type":"object","properties":{"subject":{"type":["string","null"],"maxLength":255},"body":{"type":"string"},"recipients":{"type":"object","properties":{"type":{"type":"string","enum":["all","filtered"]},"filters":{"type":["object","null"],"properties":{"ticket_type_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}},"status":{"type":["string","null"],"enum":["confirmed","pending","cancelled",null]},"checked_in":{"type":["boolean","null"]},"payment_status":{"type":["string","null"],"enum":["completed","pending",null]}}}},"required":["type"]},"schedule_at":{"type":["string","null"],"format":"date-time"}},"required":["body","recipients"],"title":"SendEventCommunicationRequest"},"SendOrderReminderRequest":{"type":"object","properties":{"channel":{"type":["string","null"],"enum":["email","sms",null]}},"title":"SendOrderReminderRequest"},"SettlementBatch":{"type":"object","properties":{"id":{"type":"string"},"tenant_id":{"type":"string"},"organization_id":{"type":["string","null"]},"event_id":{"type":["string","null"]},"source":{"type":"string"},"window_start":{"type":"string","format":"date-time"},"window_end":{"type":"string","format":"date-time"},"status":{"type":"string"},"gross_amount_cents":{"type":"integer"},"platform_amount_cents":{"type":"integer"},"tenant_amount_cents":{"type":"integer"},"organizer_amount_cents":{"type":"integer"},"split_snapshot":{"type":["array","null"],"items":{}},"idempotency_key":{"type":"string"},"processed_at":{"type":["string","null"],"format":"date-time"},"notes":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"deleted_at":{"type":["string","null"],"format":"date-time"},"plus_content_id":{"type":["string","null"]},"plus_subscription_charge_id":{"type":["string","null"]},"mux_cost_cents":{"type":"integer"},"livemode":{"type":"boolean"}},"required":["id","tenant_id","organization_id","event_id","source","window_start","window_end","status","gross_amount_cents","platform_amount_cents","tenant_amount_cents","organizer_amount_cents","split_snapshot","idempotency_key","processed_at","notes","created_at","updated_at","deleted_at","plus_content_id","plus_subscription_charge_id","mux_cost_cents","livemode"],"title":"SettlementBatch"},"StandardContextResource":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserResource"},"tenants":{"type":"string"}},"required":["user","tenants"],"title":"StandardContextResource"},"StoreApiKeyRequest":{"type":"object","properties":{"type":{"type":"string","enum":["secret","restricted","publishable"]},"name":{"type":"string","maxLength":100},"livemode":{"type":"boolean"},"scopes":{"type":"array","items":{"type":"string","pattern":"^([a-z][a-z_]*):(read|write|\\*)$"},"minItems":1},"ip_allowlist":{"type":["array","null"],"items":{"type":"string","pattern":"^[0-9a-f.:]+(\\/\\d{1,3})?$"},"maxItems":50},"expires_at":{"type":["string","null"],"format":"date-time"}},"required":["type","name"],"title":"StoreApiKeyRequest"},"StoreContentItemRequest":{"type":"object","properties":{"type":{"type":["string","null"],"enum":["video","text_lesson","chapter_header",null]},"title":{"type":"string","maxLength":255},"body":{"type":["string","null"]},"position":{"type":["integer","null"],"minimum":0},"scheduled_release_at":{"type":["string","null"],"format":"date-time"},"price_individual":{"type":["number","null"],"minimum":0},"preview_allowed":{"type":["boolean","null"]},"parent_item_id":{"type":["string","null"],"format":"uuid"}},"required":["title"],"title":"StoreContentItemRequest"},"StoreContentRequest":{"type":"object","properties":{"type":{"type":"string","enum":["standalone_video","playlist","course","live_stream"]},"title":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"category":{"type":["string","null"],"maxLength":120},"proposed_price":{"type":"number","minimum":0},"currency":{"type":["string","null"],"minLength":3,"maxLength":3},"access_window_hours":{"type":["integer","null"],"minimum":1},"refund_window_hours":{"type":["integer","null"],"minimum":0,"maximum":720},"publish_at":{"type":["string","null"],"format":"date-time"},"require_trailer":{"type":["boolean","null"]},"trailer_max_seconds":{"type":["integer","null"],"minimum":5,"maximum":180},"allow_per_episode_purchase":{"type":["boolean","null"]},"subscription_included":{"type":["boolean","null"]},"poster":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."},"banner":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."},"scheduled_start_at":{"type":["string","null"],"format":"date-time","description":"Live stream specific fields — ignored for other content types."},"latency_mode":{"type":["string","null"],"enum":["low","reduced","standard",null]},"reconnect_window_seconds":{"type":["integer","null"],"minimum":0,"maximum":1800},"simulcast_targets":{"type":["array","null"],"items":{"type":"object","properties":{"url":{"type":"string","maxLength":500},"stream_key":{"type":"string","maxLength":500},"passthrough":{"type":["string","null"],"maxLength":255}}}}},"required":["type","title","proposed_price"],"title":"StoreContentRequest"},"StoreCouponRequest":{"type":"object","properties":{"code":{"type":"string","maxLength":50},"discount_type":{"type":"string","enum":["percentage","fixed","set_price"]},"discount_value":{"type":"number","minimum":0},"min_spend":{"type":["number","null"],"minimum":0},"max_discount":{"type":["number","null"],"minimum":0},"start_at":{"type":["string","null"],"format":"date-time"},"end_at":{"type":["string","null"],"format":"date-time"},"quantity":{"type":["integer","null"],"minimum":1},"per_user_limit":{"type":["integer","null"],"minimum":1},"status":{"type":["string","null"],"enum":["active","inactive",null]},"ticket_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}},"required":["code","discount_type","discount_value"],"title":"StoreCouponRequest"},"StoreDataFieldRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"field_type":{"type":"string","enum":["text","number","boolean","select","multiselect"]},"required":{"type":["boolean","null"]},"options":{"type":"array","items":{"type":"string","maxLength":255}},"ticket_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}},"required":["name","field_type"],"title":"StoreDataFieldRequest"},"StoreEventRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"category":{"type":["string","null"],"maxLength":100},"type":{"type":["string","null"],"enum":["physical","virtual","hybrid",null]},"privacy":{"type":["string","null"],"enum":["public","private","unlisted",null]},"is_paid":{"type":["boolean","null"]},"requires_approval":{"type":"boolean"},"image":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"Image (file upload)"},"gallery":{"type":["array","null"],"description":"Gallery (file uploads)","items":{"type":"string","format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."},"maxItems":10},"start_date":{"type":"string","format":"date-time","description":"Dates"},"start_time":{"type":["string","null"]},"end_date":{"type":["string","null"],"format":"date-time"},"end_time":{"type":["string","null"]},"location":{"type":"object","description":"Location","properties":{"venue":{"type":["string","null"],"maxLength":255},"address":{"type":["string","null"],"maxLength":255},"city":{"type":["string","null"],"maxLength":100},"country":{"type":["string","null"],"maxLength":100},"virtual_link":{"type":["string","null"],"format":"uri"},"latitude":{"type":["number","null"],"minimum":-90,"maximum":90},"longitude":{"type":["number","null"],"minimum":-180,"maximum":180}}},"settings":{"type":"object","description":"Settings","properties":{"ticketing_start":{"type":["string","null"],"enum":["immediate","scheduled",null]},"ticketing_start_date":{"type":["string","null"],"format":"date-time"},"custom_slug":{"type":["string","null"],"pattern":"^[a-z0-9-]+$","maxLength":50},"is_refundable":{"type":["boolean","null"]},"booking_expires_minutes":{"type":["integer","null"],"minimum":1},"flexible_payment":{"type":["object","null"],"properties":{"enabled":{"type":["boolean","null"]},"deposit_percent":{"type":["integer","null"],"minimum":1,"maximum":100},"max_installments":{"type":["integer","null"],"minimum":1,"maximum":12}}}}},"currency":{"type":["string","null"],"description":"Currency","maxLength":8},"ticket_types":{"type":["array","null"],"description":"Ticket types","items":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"price":{"type":"integer","minimum":0},"currency":{"type":["string","null"],"maxLength":8},"available":{"type":["integer","null"],"minimum":0},"is_group":{"type":["boolean","null"]},"max_attendees":{"type":["integer","null"],"minimum":1},"per_person_limit":{"type":["integer","null"],"minimum":1},"sales_start_date":{"type":["string","null"],"format":"date-time"},"sales_end_date":{"type":["string","null"],"format":"date-time"},"flexible_payment":{"type":["object","null"],"properties":{"enabled":{"type":["boolean","null"]},"deposit_percent":{"type":["integer","null"],"minimum":1,"maximum":100}}}},"required":["name","price"]}},"coupons":{"type":["array","null"],"description":"Coupons","items":{"type":"object","properties":{"code":{"type":"string","maxLength":50},"type":{"type":"string","enum":["percentage","fixed"]},"value":{"type":"integer","minimum":0},"limit":{"type":["integer","null"],"minimum":0},"ticket_type_id":{"type":["string","null"]},"expires_at":{"type":["string","null"],"format":"date-time"}},"required":["code","type","value"]}},"data_fields":{"type":["array","null"],"description":"Data fields (custom attendee data collection)","items":{"type":"object","properties":{"label":{"type":"string","maxLength":255},"type":{"type":"string","enum":["text","email","tel","number","select","checkbox","textarea"]},"required":{"type":["boolean","null"]},"ticket_type_id":{"type":["string","null"]},"options":{"type":["array","null"],"items":{"type":"string","maxLength":255}}},"required":["label","type"]}}},"required":["name","start_date"],"title":"StoreEventRequest"},"StoreMomentRequest":{"type":"object","description":"Body of `POST /v1/streams/live_streams/{id}/moments`. Who may call it is decided by the route's `#[Allows]`.","properties":{"type":{"type":"string","description":"What kind of moment it is, so a player can pick a design.","enum":["shoutout","request","dedication","poll","product","sponsor","highlight","custom"]},"label":{"type":"string","description":"Short text for the screen. Public: it is in the viewer feed.","maxLength":140},"payload":{"type":"object","description":"Data for the player, a JSON object of at most 4096 bytes. Public: it is in the viewer feed.","additionalProperties":{}},"customer":{"type":["string","null"],"description":"Your own reference for the fan behind the moment. Never in the viewer feed.","maxLength":255},"amount":{"type":["integer","null"],"description":"What the fan paid, in cents. Needs `currency`. Never in the viewer feed.","minimum":0},"currency":{"type":["string","null"],"description":"Three upper case letters, for example `KES`. Needs `amount`.","pattern":"^[A-Z]{3}$"},"occurred_at":{"type":["string","null"],"format":"date-time","description":"When it happened. Leave it out to use the server time. A time you send must be within 5 minutes of the server's.\nAn offset is required (`Z` or `+03:00`): a bare local time would be read in the server's timezone.","pattern":"(Z|[+-]\\d{2}:?\\d{2})$"},"display_ms":{"type":["integer","null"],"description":"How long the player shows it, in milliseconds. Default 8000.","minimum":500,"maximum":3600000},"visibility":{"type":["string","null"],"description":"`public` (default) puts it in the viewer feed. `private` keeps it to you.","enum":["public","private",null]},"clip_before_s":{"type":["integer","null"],"description":"Seconds before `occurred_at` that a clip cut from this moment should start. A clip is cut after the window closes (`clip_before_s` plus `clip_after_s` must be at least 1).","minimum":0,"maximum":600},"clip_after_s":{"type":["integer","null"],"description":"Seconds after `occurred_at` that a clip cut from this moment should end. A clip is cut after the window closes.","minimum":0,"maximum":600},"metadata":{"type":"object","description":"Your own string keys and values. Never in the viewer feed.","additionalProperties":{"type":"string"}}},"required":["type","label"],"title":"StoreMomentRequest"},"StoreOrganizationInviteRequest":{"type":"object","properties":{"email":{"type":["string","null"],"format":"email","maxLength":255},"invitee_user_id":{"type":["string","null"],"format":"uuid"},"role":{"type":"string","enum":["Owner","Admin","Editor","Moderator","Support"]},"expires_at":{"type":["string","null"],"format":"date-time"}},"required":["role"],"title":"StoreOrganizationInviteRequest"},"StoreOrganizationRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"handle":{"type":"string","pattern":"^[a-z0-9-]+$","maxLength":255},"bio":{"type":["string","null"]},"avatar":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"Image file uploads"},"banner":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."},"contact_email":{"type":["string","null"],"format":"email","maxLength":255},"contact_phone":{"type":["string","null"],"maxLength":32},"links":{"type":["array","null"],"items":{"type":"string"}},"is_active":{"type":"boolean"},"settings":{"type":["array","null"],"items":{"type":"string"}}},"required":["name","handle"],"title":"StoreOrganizationRequest"},"StoreSlotRequest":{"type":"object","properties":{"start_time":{"type":"string","format":"date-time"},"capacity":{"type":["integer","null"],"minimum":1},"is_active":{"type":["boolean","null"]}},"required":["start_time"],"title":"StoreSlotRequest"},"StoreSubscriptionPlanRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"monthly_price":{"type":"number","minimum":0},"currency":{"type":["string","null"],"minLength":3,"maxLength":3},"trial_days":{"type":["integer","null"],"minimum":0,"maximum":90},"scope":{"type":"string","enum":["organization","tenant"]},"organization_id":{"type":["string","null"],"format":"uuid"},"billing_anchor":{"type":["string","null"],"enum":["anniversary","calendar_first",null]},"status":{"type":["string","null"],"enum":["active","inactive",null]}},"required":["name","monthly_price","scope"],"title":"StoreSubscriptionPlanRequest"},"StoreTenantRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"username":{"type":"string","maxLength":255},"cut":{"type":"integer","minimum":0,"maximum":100},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":"string","maxLength":20},"contact_name":{"type":"string","maxLength":255},"contact_email":{"type":"string","format":"email","maxLength":255},"contact_phone":{"type":"string","maxLength":20},"description":{"type":["string","null"]},"settings":{"type":["array","null"],"items":{"type":"string"}}},"required":["name","username","cut","email","phone","contact_name","contact_email","contact_phone"],"title":"StoreTenantRequest"},"StoreTicketRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"price":{"type":["number","null"],"description":"Fixed-price tickets need a price; name-your-price tickets do not.","minimum":0},"available":{"type":["integer","null"],"minimum":0},"per_person_limit":{"type":["integer","null"],"minimum":1},"max_attendees":{"type":["integer","null"],"minimum":1},"is_private":{"type":["boolean","null"]},"is_flexipay":{"type":["boolean","null"],"description":"Name-your-price (flexipay)"},"flexipay_min_price":{"type":["number","null"],"minimum":0},"flexipay_max_price":{"type":["number","null"],"minimum":0},"allow_pay_later":{"type":["boolean","null"],"description":"Pay Later (installments / deferred)"},"pay_later_deposit":{"type":["number","null"],"minimum":0},"pay_later_min_installments":{"type":["integer","null"],"minimum":1},"pay_later_max_installments":{"type":["integer","null"],"minimum":1},"sales_start_date":{"type":["string","null"],"format":"date-time"},"sales_end_date":{"type":["string","null"],"format":"date-time"},"status":{"type":["string","null"],"enum":["draft","active","inactive",null]}},"required":["name"],"title":"StoreTicketRequest"},"SubjectRequest":{"type":"object","description":"A request made for one customer: `customer` (the tenant's own reference) or `contact_hash`, never both.","properties":{"customer":{"type":"string","maxLength":255},"contact_hash":{"type":"string","pattern":"^[a-fA-F0-9]{64}$"}},"title":"SubjectRequest"},"SubscriptionCheckoutRequest":{"type":"object","properties":{"plan_id":{"type":"string","format":"uuid"},"customer":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":30}},"required":["name","email"]},"success_url":{"type":["string","null"],"format":"uri"}},"required":["plan_id","customer"],"title":"SubscriptionCheckoutRequest"},"SubscriptionRenewRequest":{"type":"object","properties":{"customer":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"email":{"type":"string","format":"email","maxLength":255},"phone":{"type":["string","null"],"maxLength":30}},"required":["name","email"]},"success_url":{"type":["string","null"],"format":"uri"}},"required":["customer"],"title":"SubscriptionRenewRequest"},"Tenant":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string"},"username":{"type":"string"},"cut":{"type":"integer"},"description":{"type":["string","null"]},"settings":{"type":["array","null"],"items":{}},"is_active":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"code":{"type":"string"},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"contact_name":{"type":["string","null"]},"contact_email":{"type":["string","null"]},"contact_phone":{"type":["string","null"]},"status":{"type":"string"},"suspended_at":{"type":["string","null"],"format":"date-time"},"suspension_reason":{"type":["string","null"]},"internal_notes":{"type":["string","null"]},"type":{"type":"string"},"tier":{"type":"string"},"platform_fee_percentage":{"type":"string"},"custom_fee":{"type":"boolean"},"payment_terms":{"type":"string"},"bank_name":{"type":["string","null"]},"bank_account":{"type":["string","null"]},"products":{"type":"array","items":{}},"website":{"type":["string","null"]},"country":{"type":"string"},"city":{"type":["string","null"]},"is_flagship":{"type":"boolean"},"deleted_at":{"type":["string","null"],"format":"date-time"},"api_version":{"type":["string","null"]}},"required":["id","name","slug","username","cut","description","settings","is_active","created_at","updated_at","code","email","phone","contact_name","contact_email","contact_phone","status","suspended_at","suspension_reason","internal_notes","type","tier","platform_fee_percentage","custom_fee","payment_terms","bank_name","bank_account","products","website","country","city","is_flagship","deleted_at","api_version"],"title":"Tenant"},"TenantAdminApproveEventRequest":{"type":"object","properties":{"note":{"type":["string","null"],"maxLength":2000},"tenant_cut_percentage":{"type":["number","null"],"minimum":0,"maximum":93}},"title":"TenantAdminApproveEventRequest"},"TenantAdminContentResource":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"category":{"type":["string","null"]},"status":{"type":"string"},"pricing":{"type":"object","properties":{"proposed_price":{"type":"number"},"final_price":{"type":["number","null"]},"currency":{"type":"string"},"access_window_hours":{"type":["integer","null"]},"refund_window_hours":{"type":"integer"}},"required":["proposed_price","final_price","currency","access_window_hours","refund_window_hours"]},"splits":{"type":"object","properties":{"platform_fee_percentage":{"type":["number","null"]},"tenant_cut_percentage":{"type":["number","null"]},"organizer_cut_percentage":{"type":["number","null"]}},"required":["platform_fee_percentage","tenant_cut_percentage","organizer_cut_percentage"]},"trailer":{"anyOf":[{"$ref":"#/components/schemas/OrganizerContentItemResource"},{"type":"null"}]},"items":{"type":"array","items":{"$ref":"#/components/schemas/OrganizerContentItemResource"}},"approvals":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"decision":{"type":"string"},"notes":{"type":["string","null"]},"price_set":{"type":["number","null"]},"reviewer_user_id":{"type":"string"},"created_at":{"type":["string","null"]}},"required":["id","decision","notes","price_set","reviewer_user_id","created_at"]}},"organization":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"handle":{"type":"string"},"contact_email":{"type":["string","null"]}},"required":["id","name","handle","contact_email"]},"poster_url":{"type":["string","null"]},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","slug","type","title","description","category","status","pricing","splits","poster_url","created_at","updated_at"],"title":"TenantAdminContentResource"},"TenantAdminHideFanbaseRequest":{"type":"object","properties":{"reason":{"type":["string","null"],"maxLength":2000}},"title":"TenantAdminHideFanbaseRequest"},"TenantAdminPayoutRequestActionRequest":{"type":"object","properties":{"note":{"type":["string","null"],"maxLength":2000},"reason":{"type":["string","null"],"maxLength":2000}},"title":"TenantAdminPayoutRequestActionRequest"},"TenantAdminProcessSettlementRequest":{"type":"object","properties":{"note":{"type":["string","null"],"maxLength":2000}},"title":"TenantAdminProcessSettlementRequest"},"TenantAdminRejectEventRequest":{"type":"object","properties":{"reason":{"type":"string","maxLength":2000}},"required":["reason"],"title":"TenantAdminRejectEventRequest"},"TenantAdminRequestChangesEventRequest":{"type":"object","properties":{"reason":{"type":"string","maxLength":2000}},"required":["reason"],"title":"TenantAdminRequestChangesEventRequest"},"TenantAdminSubscriptionPlanResource":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]},"monthly_price":{"type":"number"},"currency":{"type":"string"},"trial_days":{"type":"integer"},"scope":{"type":"string"},"organization_id":{"type":["string","null"]},"billing_anchor":{"type":"string"},"status":{"type":"string"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]}},"required":["id","slug","name","description","monthly_price","currency","trial_days","scope","organization_id","billing_anchor","status","created_at","updated_at"],"title":"TenantAdminSubscriptionPlanResource"},"TenantAdminVerifyFanbaseRequest":{"type":"object","properties":{"note":{"type":["string","null"],"maxLength":2000}},"title":"TenantAdminVerifyFanbaseRequest"},"TenantContextResource":{"type":"object","properties":{"user":{"$ref":"#/components/schemas/UserResource"},"tenant":{"type":"string"},"tenant_membership":{"type":"string"},"team_membership":{"type":"string"},"organizations":{"type":"string"},"fanbases":{"type":"string"},"access_context":{"type":"string"}},"required":["user","tenant","tenant_membership","team_membership","organizations","fanbases","access_context"],"title":"TenantContextResource"},"TenantRoleResource":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"permissions":{"type":"string"},"is_system":{"type":["string","boolean"]}},"required":["key","name","description","permissions","is_system"],"title":"TenantRoleResource"},"TenantTeamMemberResource":{"anyOf":[{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"invite"},"email":{"type":"string"},"name":{"type":["string","null"]},"phone":{"type":"null"},"role":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]}},"required":["key","name","description"]},"permissions":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"},"minItems":0,"maxItems":0}]},"is_active":{"type":"boolean"},"status":{"type":"string","const":"pending"},"invited_at":{"type":["string","null"]},"expires_at":{"type":["string","null"]}},"required":["id","type","email","name","phone","role","permissions","is_active","status","invited_at","expires_at"]},{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","const":"member"},"email":{"type":"string"},"name":{"type":"string"},"phone":{"type":["string","null"]},"profile_photo_url":{"type":"string"},"role":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"},"description":{"type":["string","null"]}},"required":["key","name","description"]},"permissions":{"type":"array","items":{"type":"string"}},"is_active":{"type":"boolean"},"status":{"type":"string","enum":["active","inactive"]},"joined_at":{"type":["string","null"]}},"required":["id","type","email","name","phone","profile_photo_url","role","permissions","is_active","status","joined_at"]}],"title":"TenantTeamMemberResource"},"Ticket":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"is_private":{"type":"boolean"},"private_token":{"type":["string","null"]},"quantity":{"type":["integer","null"]},"per_person_limit":{"type":["integer","null"]},"people_per_ticket":{"type":"integer"},"start_sale_at":{"type":["string","null"],"format":"date-time"},"end_sale_at":{"type":["string","null"],"format":"date-time"},"is_flexipay":{"type":"boolean"},"pay_later_min_installments":{"type":["integer","null"]},"pay_later_max_installments":{"type":["integer","null"]},"allow_pay_later":{"type":"boolean"},"status":{"type":"string"},"is_sold_out":{"type":"boolean"},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"},"price":{"type":"string"},"pay_later_deposit":{"type":["string","null"]},"deleted_at":{"type":["string","null"],"format":"date-time"},"flexipay_min_price":{"type":["string","null"]},"flexipay_max_price":{"type":["string","null"]},"tenant_id":{"type":"string"},"livemode":{"type":"boolean"}},"required":["id","event_id","name","is_private","private_token","quantity","per_person_limit","people_per_ticket","start_sale_at","end_sale_at","is_flexipay","pay_later_min_installments","pay_later_max_installments","allow_pay_later","status","is_sold_out","created_at","updated_at","price","pay_later_deposit","deleted_at","flexipay_min_price","flexipay_max_price","tenant_id","livemode"],"title":"Ticket"},"ToggleSoldOutRequest":{"type":"object","properties":{"sold_out":{"type":"boolean"}},"required":["sold_out"],"title":"ToggleSoldOutRequest"},"UpdateContentItemRequest":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"body":{"type":["string","null"]},"position":{"type":"integer","minimum":0},"scheduled_release_at":{"type":["string","null"],"format":"date-time"},"price_individual":{"type":["number","null"],"minimum":0},"preview_allowed":{"type":"boolean"}},"title":"UpdateContentItemRequest"},"UpdateContentRequest":{"type":"object","properties":{"title":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"category":{"type":["string","null"],"maxLength":120},"proposed_price":{"type":"number","minimum":0},"currency":{"type":["string","null"],"minLength":3,"maxLength":3},"access_window_hours":{"type":["integer","null"],"minimum":1},"refund_window_hours":{"type":["integer","null"],"minimum":0,"maximum":720},"publish_at":{"type":["string","null"],"format":"date-time"},"require_trailer":{"type":"boolean"},"trailer_max_seconds":{"type":["integer","null"],"minimum":5,"maximum":180},"allow_per_episode_purchase":{"type":"boolean"},"subscription_included":{"type":"boolean"},"poster":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."},"banner":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."}},"title":"UpdateContentRequest"},"UpdateCouponRequest":{"type":"object","properties":{"code":{"type":"string","maxLength":50},"discount_type":{"type":"string","enum":["percentage","fixed","set_price"]},"discount_value":{"type":"number","minimum":0},"min_spend":{"type":["number","null"],"minimum":0},"max_discount":{"type":["number","null"],"minimum":0},"start_at":{"type":["string","null"],"format":"date-time"},"end_at":{"type":["string","null"],"format":"date-time"},"quantity":{"type":["integer","null"],"minimum":1},"per_user_limit":{"type":["integer","null"],"minimum":1},"status":{"type":"string","enum":["active","inactive"]},"ticket_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}},"title":"UpdateCouponRequest"},"UpdateDataFieldRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"field_type":{"type":"string","enum":["text","number","boolean","select","multiselect"]},"required":{"type":"boolean"},"options":{"type":"array","items":{"type":"string","maxLength":255}},"ticket_ids":{"type":["array","null"],"items":{"type":"string","format":"uuid"}}},"title":"UpdateDataFieldRequest"},"UpdateEventRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"category":{"type":["string","null"],"maxLength":100},"type":{"type":["string","null"],"enum":["physical","virtual","hybrid",null]},"privacy":{"type":["string","null"],"enum":["public","private","unlisted",null]},"is_paid":{"type":["boolean","null"]},"requires_approval":{"type":"boolean"},"image":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"Image (file upload)"},"gallery":{"type":["array","null"],"description":"Gallery (file uploads)","items":{"type":"string","format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."},"maxItems":10},"start_date":{"type":"string","format":"date-time","description":"Dates"},"start_time":{"type":["string","null"]},"end_date":{"type":["string","null"],"format":"date-time"},"end_time":{"type":["string","null"]},"location":{"type":"object","description":"Location","properties":{"venue":{"type":["string","null"],"maxLength":255},"address":{"type":["string","null"],"maxLength":255},"city":{"type":["string","null"],"maxLength":100},"country":{"type":["string","null"],"maxLength":100},"virtual_link":{"type":["string","null"],"format":"uri"},"latitude":{"type":["number","null"],"minimum":-90,"maximum":90},"longitude":{"type":["number","null"],"minimum":-180,"maximum":180}}},"settings":{"type":"object","description":"Settings","properties":{"ticketing_start":{"type":["string","null"],"enum":["immediate","scheduled",null]},"ticketing_start_date":{"type":["string","null"],"format":"date-time"},"custom_slug":{"type":["string","null"],"pattern":"^[a-z0-9-]+$","maxLength":50},"is_refundable":{"type":["boolean","null"]},"booking_expires_minutes":{"type":["integer","null"],"minimum":1},"flexible_payment":{"type":["object","null"],"properties":{"enabled":{"type":["boolean","null"]},"deposit_percent":{"type":["integer","null"],"minimum":1,"maximum":100},"max_installments":{"type":["integer","null"],"minimum":1,"maximum":12}}}}},"currency":{"type":["string","null"],"description":"Currency","maxLength":8},"ticket_types":{"type":["array","null"],"description":"Ticket types (for upsert)","items":{"type":"object","properties":{"id":{"type":["string","null"],"format":"uuid"},"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"price":{"type":"integer","minimum":0},"currency":{"type":["string","null"],"maxLength":8},"available":{"type":["integer","null"],"minimum":0},"is_group":{"type":["boolean","null"]},"max_attendees":{"type":["integer","null"],"minimum":1},"per_person_limit":{"type":["integer","null"],"minimum":1},"sales_start_date":{"type":["string","null"],"format":"date-time"},"sales_end_date":{"type":["string","null"],"format":"date-time"},"flexible_payment":{"type":["object","null"],"properties":{"enabled":{"type":["boolean","null"]},"deposit_percent":{"type":["integer","null"],"minimum":1,"maximum":100}}}}}},"coupons":{"type":["array","null"],"description":"Coupons (for upsert)","items":{"type":"object","properties":{"id":{"type":["string","null"],"format":"uuid"},"code":{"type":"string","maxLength":50},"type":{"type":"string","enum":["percentage","fixed"]},"value":{"type":"integer","minimum":0},"limit":{"type":["integer","null"],"minimum":0},"ticket_type_id":{"type":["string","null"]},"expires_at":{"type":["string","null"],"format":"date-time"}}}},"data_fields":{"type":["array","null"],"description":"Data fields (for upsert)","items":{"type":"object","properties":{"id":{"type":["string","null"],"format":"uuid"},"label":{"type":"string","maxLength":255},"type":{"type":"string","enum":["text","email","tel","number","select","checkbox","textarea"]},"required":{"type":["boolean","null"]},"ticket_type_id":{"type":["string","null"]},"options":{"type":["array","null"],"items":{"type":"string","maxLength":255}}}}}},"title":"UpdateEventRequest"},"UpdateFanbaseProfileRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":100},"description":{"type":["string","null"],"maxLength":500},"bio":{"type":["string","null"],"maxLength":500},"contact_email":{"type":["string","null"],"format":"email","maxLength":255},"website":{"type":["string","null"],"format":"uri","maxLength":255},"instagram":{"type":["string","null"],"maxLength":100},"twitter":{"type":["string","null"],"maxLength":100},"facebook":{"type":["string","null"],"maxLength":100},"logo_url":{"type":["string","null"],"pattern":"^(https?:\\/\\/|\\/storage\\/).+","maxLength":2048},"cover_url":{"type":["string","null"],"pattern":"^(https?:\\/\\/|\\/storage\\/).+","maxLength":2048},"avatar_url":{"type":["string","null"],"pattern":"^(https?:\\/\\/|\\/storage\\/).+","maxLength":2048},"banner_url":{"type":["string","null"],"pattern":"^(https?:\\/\\/|\\/storage\\/).+","maxLength":2048},"links":{"type":"object","properties":{"website":{"type":["string","null"],"format":"uri","maxLength":255},"instagram":{"type":["string","null"],"maxLength":100},"twitter":{"type":["string","null"],"maxLength":100},"facebook":{"type":["string","null"],"maxLength":100},"linkedin":{"type":["string","null"],"maxLength":100},"youtube":{"type":["string","null"],"maxLength":100}}}},"title":"UpdateFanbaseProfileRequest"},"UpdateFanbaseSettingsRequest":{"type":"object","properties":{"enabled":{"type":["boolean","null"]},"auto_enroll":{"type":["boolean","null"]},"points_multiplier":{"type":["number","null"],"minimum":0.1,"maximum":10},"welcome_bonus_points":{"type":["integer","null"],"minimum":0}},"title":"UpdateFanbaseSettingsRequest"},"UpdateFanbaseTiersRequest":{"type":"object","properties":{"tiers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","maxLength":50},"threshold":{"type":"integer","minimum":0},"perks":{"type":["array","null"],"items":{"type":"string","maxLength":255}}},"required":["id","name","threshold"]},"minItems":1,"maxItems":5}},"required":["tiers"],"title":"UpdateFanbaseTiersRequest"},"UpdateNotificationSettingsRequest":{"type":"object","properties":{"ticket_purchases":{"type":["boolean","null"]},"event_reminders":{"type":["boolean","null"]},"payout_notifications":{"type":["boolean","null"]},"weekly_summary":{"type":["boolean","null"]}},"title":"UpdateNotificationSettingsRequest"},"UpdateOrganizationMemberRequest":{"type":"object","properties":{"role":{"type":"string","enum":["Owner","Admin","Editor","Moderator","Support"]},"status":{"type":"string","enum":["active","invited","suspended"]}},"title":"UpdateOrganizationMemberRequest"},"UpdateOrganizationRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"handle":{"type":"string","pattern":"^[a-z0-9-]+$","maxLength":255},"bio":{"type":["string","null"]},"avatar":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"Image file uploads"},"banner":{"type":["string","null"],"format":"binary","contentMediaType":"application/octet-stream","description":"File size must be between 10 kilobytes and 10240 kilobytes."},"contact_email":{"type":["string","null"],"format":"email","maxLength":255},"contact_phone":{"type":["string","null"],"maxLength":32},"links":{"type":["array","null"],"items":{"type":"string"}},"is_active":{"type":"boolean"},"settings":{"type":["array","null"],"items":{"type":"string"}}},"title":"UpdateOrganizationRequest"},"UpdateOrganizerSettingsRequest":{"type":"object","properties":{"name":{"type":"string","description":"Organization profile","maxLength":255},"handle":{"type":"string","pattern":"^[a-z0-9_-]+$","maxLength":100},"description":{"type":["string","null"],"maxLength":2000},"logo_url":{"type":["string","null"],"pattern":"^(https?:\\/\\/|\\/storage\\/).+","maxLength":2048},"cover_url":{"type":["string","null"],"pattern":"^(https?:\\/\\/|\\/storage\\/).+","maxLength":2048},"email":{"type":["string","null"],"format":"email","description":"Contact","maxLength":255},"phone":{"type":["string","null"],"maxLength":20},"website":{"type":["string","null"],"format":"uri"},"timezone":{"type":["string","null"],"description":"General settings"},"currency":{"type":["string","null"],"maxLength":8},"event_defaults":{"type":"object","description":"Event defaults","properties":{"auto_approve_attendees":{"type":["boolean","null"]},"require_phone_number":{"type":["boolean","null"]}}},"social_links":{"type":"object","description":"Social links","properties":{"twitter":{"type":["string","null"],"format":"uri"},"instagram":{"type":["string","null"],"format":"uri"},"facebook":{"type":["string","null"],"format":"uri"},"youtube":{"type":["string","null"],"format":"uri"},"tiktok":{"type":["string","null"],"format":"uri"}}},"ticketing_defaults":{"type":"object","description":"Ticketing defaults","properties":{"currency":{"type":["string","null"],"maxLength":8},"is_refundable":{"type":["boolean","null"]},"booking_expires_minutes":{"type":["integer","null"],"minimum":1}}},"notification_preferences":{"type":"object","description":"Notification preferences","properties":{"email_on_sale":{"type":["boolean","null"]},"whatsapp_on_sale":{"type":["boolean","null"]},"daily_summary":{"type":["boolean","null"]}}}},"title":"UpdateOrganizerSettingsRequest"},"UpdatePayoutSettingsRequest":{"type":"object","properties":{"payout_method":{"type":"string","enum":["mpesa","bank"]},"mpesa_phone":{"type":["string","null"],"description":"M-Pesa","pattern":"^\\+254[17]\\d{8}$"},"account_name":{"type":["string","null"],"description":"Bank - per tenant-api.md contract","maxLength":255},"account_number":{"type":["string","null"],"maxLength":50},"bank_name":{"type":["string","null"],"maxLength":100},"swift_code":{"type":["string","null"],"maxLength":20},"wallet_username":{"type":["string","null"],"maxLength":80}},"required":["payout_method"],"title":"UpdatePayoutSettingsRequest"},"UpdateSlotRequest":{"type":"object","properties":{"start_time":{"type":"string","format":"date-time"},"capacity":{"type":["integer","null"],"minimum":1},"is_active":{"type":"boolean"}},"title":"UpdateSlotRequest"},"UpdateSubscriptionPlanRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"description":{"type":["string","null"]},"monthly_price":{"type":"number","minimum":0},"currency":{"type":["string","null"],"minLength":3,"maxLength":3},"trial_days":{"type":["integer","null"],"minimum":0,"maximum":90},"billing_anchor":{"type":"string","enum":["anniversary","calendar_first"]},"status":{"type":"string","enum":["active","inactive"]}},"title":"UpdateSubscriptionPlanRequest"},"UpdateTenantTeamMemberRequest":{"type":"object","properties":{"role":{"type":"string","enum":["admin","check_in","finance","org_management","events","developer","viewer","owner","support","content","door_staff"]},"is_active":{"type":"boolean"}},"title":"UpdateTenantTeamMemberRequest"},"UpdateTicketRequest":{"type":"object","properties":{"name":{"type":"string","maxLength":255},"price":{"type":"number","minimum":0},"available":{"type":["integer","null"],"minimum":0},"per_person_limit":{"type":["integer","null"],"minimum":1},"max_attendees":{"type":["integer","null"],"minimum":1},"is_private":{"type":"boolean"},"is_flexipay":{"type":"boolean"},"flexipay_min_price":{"type":["number","null"],"minimum":0},"flexipay_max_price":{"type":["number","null"],"minimum":0},"allow_pay_later":{"type":"boolean"},"pay_later_deposit":{"type":["number","null"],"minimum":0},"pay_later_min_installments":{"type":["integer","null"],"minimum":1},"pay_later_max_installments":{"type":["integer","null"],"minimum":1},"sales_start_date":{"type":["string","null"],"format":"date-time"},"sales_end_date":{"type":["string","null"],"format":"date-time"},"status":{"type":"string","enum":["draft","active","inactive"]}},"title":"UpdateTicketRequest"},"UploadFanbaseImageRequest":{"type":"object","properties":{"file":{"type":"string","format":"binary","contentMediaType":"application/octet-stream","description":"Maximum file size: 5120 kilobytes."}},"required":["file"],"title":"UploadFanbaseImageRequest"},"UserResource":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":["string","null"]},"last_name":{"type":["string","null"]},"username":{"type":["string","null"]},"email":{"type":["string","null"]},"dial_code":{"type":["string","null"]},"number":{"type":["string","null"]},"is_global_admin":{"type":"boolean"},"date_of_birth":{"type":["string","null"]},"bio":{"type":["string","null"]},"filename":{"type":["string","null"]},"status":{"type":["string","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"updated_at":{"type":["string","null"],"format":"date-time"}},"required":["id","first_name","last_name","username","email","dial_code","number","is_global_admin","date_of_birth","bio","filename","status","created_at","updated_at"],"title":"UserResource"},"ValidateCouponRequest":{"type":"object","properties":{"event_id":{"type":"string","format":"uuid"},"code":{"type":"string","maxLength":50}},"required":["event_id","code"],"title":"ValidateCouponRequest"},"ViewerCertificateResource":{"type":"object","properties":{"id":{"type":"string"},"serial_number":{"type":"string"},"issued_at":{"type":"string"},"revoked_at":{"type":["string","null"]},"verification_url":{"type":"string"},"pdf_url":{"type":["string","null"]},"course":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"}},"required":["id","slug","title"]}},"required":["id","serial_number","issued_at","revoked_at","verification_url","pdf_url"],"title":"ViewerCertificateResource"},"ViewerLibraryItemResource":{"type":"object","properties":{"purchase_id":{"type":"string"},"purchase_type":{"type":"string"},"access_granted_at":{"type":"string"},"access_expires_at":{"type":["string","null"]},"status":{"type":"string"},"content":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"type":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"poster_url":{"type":["string","null"]}},"required":["id","slug","type","title","description","poster_url"]}},"required":["purchase_id","purchase_type","access_granted_at","access_expires_at","status"],"title":"ViewerLibraryItemResource"},"ViewerSubscriptionResource":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"},"started_at":{"type":"string"},"current_cycle_start":{"type":"string"},"current_cycle_end":{"type":"string"},"next_charge_at":{"type":["string","null"]},"cancel_at_period_end":{"type":"boolean"},"cancelled_at":{"type":["string","null"]},"plan":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"monthly_price":{"type":"number"},"currency":{"type":"string"},"scope":{"type":"string"}},"required":["id","slug","name","monthly_price","currency","scope"]}},"required":["id","status","started_at","current_cycle_start","current_cycle_end","next_charge_at","cancel_at_period_end","cancelled_at"],"title":"ViewerSubscriptionResource"},"WatchPingRequest":{"type":"object","properties":{"content_item_id":{"type":"string","format":"uuid"},"position_seconds":{"type":"integer","minimum":0},"delta_seconds":{"type":"integer","minimum":0,"maximum":600},"session_id":{"type":["string","null"],"format":"uuid"}},"required":["content_item_id","position_seconds","delta_seconds"],"title":"WatchPingRequest"},"WebhookEndpointRequest":{"type":"object","description":"Create (POST) and change (PATCH) a webhook endpoint. On create the url is required.","properties":{"livemode":{"type":"boolean"},"url":{"type":"string","maxLength":2048},"description":{"type":["string","null"],"maxLength":500},"enabled_events":{"type":"array","items":{"type":"string","pattern":"^(\\*|[a-z0-9_]+(\\.[a-z0-9_]+)*(\\.\\*)?)$"},"minItems":1,"maxItems":100,"uniqueItems":true},"api_version":{"type":"string","enum":["2026-11-01"]},"status":{"type":"string","enum":["enabled","disabled"]},"metadata":{"type":["array","null"],"items":{"type":["string","null"],"maxLength":500},"maxItems":50}},"required":["url"],"title":"WebhookEndpointRequest"},"WebhookEndpointResource":{"type":"array","items":{},"title":"WebhookEndpointResource"}},"responses":{"ValidationException":{"description":"Validation error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Errors overview."},"errors":{"type":"object","description":"A detailed description of each field that failed validation.","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["message","errors"]}}}},"AuthenticationException":{"description":"Unauthenticated","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}},"ModelNotFoundException":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}},"AuthorizationException":{"description":"Authorization error","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error overview."}},"required":["message"]}}}}}}}