{"openapi":"3.1.0","info":{"title":"Konecto API","version":"1.0.0-beta","description":"Tickets, event pages, check-in, attendee profiles, challenges and exhibitor reports for trade shows and conferences. Base URL https://api.konec.to. Money is integer minor units; every admin write takes an Idempotency-Key header; ids are prefixed strings such as evt_… and tkt_….","contact":{"email":"hello@konec.to","url":"https://docs.konec.to"},"license":{"name":"Proprietary","url":"https://konec.to/legal/terms"}},"servers":[{"url":"https://api.konec.to"}],"tags":[{"name":"Public","description":"Browser-safe endpoints for event sites and checkout, called with a publishable key from an allowed origin or anonymously for published data"},{"name":"Organisations","description":"Organisation settings, the free team, API keys and Stripe Connect"},{"name":"Events","description":"Events, agenda, speakers, zones and booths"},{"name":"Tickets","description":"Ticket types, promo codes and waitlists"},{"name":"Orders","description":"Orders and refunds"},{"name":"Attendees","description":"Attendee lists, exports, imports and updates"},{"name":"Check-in","description":"Door scanning, offline sync and check-in summaries"},{"name":"Webhooks","description":"Inbound webhooks from payment providers"},{"name":"Webhook endpoints","description":"Outbound webhooks to your systems: order.paid, ticket.checked_in and friends, signed and retried"},{"name":"Pages","description":"Event page configuration: templates, branding, sections, publish and preview"},{"name":"Confirmations","description":"Organiser approval of agent-initiated actions, and connected applications"},{"name":"OAuth","description":"OAuth 2.1 authorization server for MCP clients and third-party apps (public clients, PKCE S256, dynamic registration)"},{"name":"Analytics","description":"Interactions log, rollups and engagement reports (analytics module)"},{"name":"Challenges","description":"Gamification: booth quests, connectors, leaderboards and fair draws (challenges module)"},{"name":"Finance","description":"Costs, income, budget and live P&L (finance module)"},{"name":"Sponsors","description":"Exhibitors, sponsors, tiers and reports"},{"name":"Modules","description":"Per-event module pricing, checkout and entitlements"},{"name":"Kanban","description":"Task board, runsheet and shifts (kanban module)"},{"name":"Communications","description":"Campaigns, reminders, the wrap-up survey and the event report (communications and wrap-up modules)"},{"name":"Moderation","description":"Event channels, reports, message removal and mutes"},{"name":"Integrations","description":"Connect Eventbrite or Meetup: an organiser's own upcoming events are listed on Konecto Discovery (link-out, attribution) and can be copied into Konecto"},{"name":"Me","description":"Attendee app (me.konec.to): ticket wallet, profile card, people to meet, connections, messages, communities and exhibitor mode, with the person’s own token"}],"components":{"securitySchemes":{"publishableKey":{"type":"http","scheme":"bearer","description":"pk_live_… key, browser-safe, restricted to allowed origins"},"secretKey":{"type":"http","scheme":"bearer","description":"sk_live_… key, an OAuth access token, or a Konecto app session token"}},"schemas":{"ApiError":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":{}}},"required":["code","message","request_id"]}},"required":["error"]},"Organisation":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string","minLength":1,"maxLength":120},"slug":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"default_currency":{"type":"string","minLength":3,"maxLength":3},"default_timezone":{"type":"string"},"fee_payer":{"type":"string","enum":["buyer","organiser"],"description":"Who covers the Konecto ticket fee by default"},"stripe_charges_enabled":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","name","slug","logo_url","accent_colour","default_currency","default_timezone","fee_payer","stripe_charges_enabled","created_at"]},"CreateOrgInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"eventKinds":{"type":"array","items":{"type":"string"},"default":[]},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","default":"#6b3bf5"},"default_currency":{"type":"string","minLength":3,"maxLength":3,"default":"GBP"},"default_timezone":{"type":"string","default":"Europe/London"}},"required":["name"]},"UpdateOrgInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"eventKinds":{"type":"array","items":{"type":"string"}},"accentColor":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"default_currency":{"type":"string","minLength":3,"maxLength":3},"default_timezone":{"type":"string"},"fee_payer":{"type":"string","enum":["buyer","organiser"]},"logo_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}}},"OrgMember":{"type":"object","properties":{"id":{"type":"string"},"user_id":{"type":"string","pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"email":{"type":"string","maxLength":254,"format":"email"},"full_name":{"type":["string","null"]},"role":{"type":"string","enum":["OWNER","ADMIN","EDITOR","DOOR_STAFF"]},"event_access":{"anyOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}}]},"invited_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"accepted_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["id","user_id","email","full_name","role","event_access","invited_at","accepted_at"]},"InviteMemberInput":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"role":{"type":"string","enum":["OWNER","ADMIN","EDITOR","DOOR_STAFF"],"default":"EDITOR"},"event_access":{"anyOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}}],"default":"all"}},"required":["email"]},"ApiKey":{"type":"object","properties":{"id":{"type":"string","pattern":"^key_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed key_"},"kind":{"type":"string","enum":["publishable","secret"]},"name":{"type":"string"},"prefix":{"type":"string","description":"First 12 characters, for display"},"allowed_origins":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"description":"Publishable keys only"},"scopes":{"type":"array","items":{"type":"string","enum":["events:read","events:write","orders:read","orders:refund","pages:write","domains:buy","finance:read","finance:write","tasks:read","tasks:write","analytics:read","challenges:write","sponsors:write"]}},"last_used_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","kind","name","prefix","allowed_origins","scopes","last_used_at","created_at"]},"ApiKeyCreated":{"type":"object","properties":{"id":{"type":"string","pattern":"^key_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed key_"},"kind":{"type":"string","enum":["publishable","secret"]},"name":{"type":"string"},"prefix":{"type":"string","description":"First 12 characters, for display"},"allowed_origins":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"description":"Publishable keys only"},"scopes":{"type":"array","items":{"type":"string","enum":["events:read","events:write","orders:read","orders:refund","pages:write","domains:buy","finance:read","finance:write","tasks:read","tasks:write","analytics:read","challenges:write","sponsors:write"]}},"last_used_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"secret":{"type":"string"}},"required":["id","kind","name","prefix","allowed_origins","scopes","last_used_at","created_at","secret"]},"CreateApiKeyInput":{"type":"object","properties":{"kind":{"type":"string","enum":["publishable","secret"]},"name":{"type":"string","minLength":1,"maxLength":60},"allowed_origins":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"default":[]},"scopes":{"type":"array","items":{"type":"string","enum":["events:read","events:write","orders:read","orders:refund","pages:write","domains:buy","finance:read","finance:write","tasks:read","tasks:write","analytics:read","challenges:write","sponsors:write"]},"default":[]}},"required":["kind","name"]},"Event":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"org_id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"slug":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"name":{"type":"string","minLength":1,"maxLength":160},"description":{"type":["string","null"],"maxLength":5000},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"status":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string","minLength":1,"description":"IANA time zone, e.g. Europe/London"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"capacity":{"type":["integer","null"],"exclusiveMinimum":0},"unlisted":{"type":"boolean","description":"Not in sitemaps or search; reachable by link"},"fee_payer":{"type":"string","enum":["buyer","organiser"]},"currency":{"type":"string","minLength":3,"maxLength":3},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"published_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","org_id","slug","name","description","kind","status","starts_at","ends_at","timezone","venue","capacity","unlisted","fee_payer","currency","public_url","published_at","created_at"]},"CreateEventInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"slug":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"],"default":"conference"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string","minLength":1,"description":"IANA time zone, e.g. Europe/London"},"venue":{"type":"object","properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"capacity":{"type":"integer","exclusiveMinimum":0},"description":{"type":"string","maxLength":5000}},"required":["name","starts_at","ends_at","timezone"]},"UpdateEventInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":160},"slug":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string","minLength":1,"description":"IANA time zone, e.g. Europe/London"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"capacity":{"type":["integer","null"],"exclusiveMinimum":0},"description":{"type":["string","null"],"maxLength":5000},"unlisted":{"type":"boolean"},"fee_payer":{"type":"string","enum":["buyer","organiser"]}}},"Session":{"type":"object","properties":{"id":{"type":"string","pattern":"^ses_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ses_"},"title":{"type":"string","minLength":1,"maxLength":200},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"room":{"type":["string","null"],"maxLength":80},"track":{"type":["string","null"],"maxLength":80},"speaker_ids":{"type":"array","items":{"type":"string","pattern":"^spk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spk_"}},"sponsor_id":{"type":["string","null"],"pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"description":{"type":["string","null"],"maxLength":3000}},"required":["id","title","starts_at","ends_at","room","track","speaker_ids","sponsor_id","description"]},"CreateSessionInput":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"room":{"type":["string","null"],"maxLength":80},"track":{"type":["string","null"],"maxLength":80},"speaker_ids":{"type":"array","items":{"type":"string","pattern":"^spk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spk_"}},"sponsor_id":{"type":["string","null"],"pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"description":{"type":["string","null"],"maxLength":3000}},"required":["title","starts_at","ends_at"]},"Speaker":{"type":"object","properties":{"id":{"type":"string","pattern":"^spk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spk_"},"name":{"type":"string","minLength":1,"maxLength":120},"headline":{"type":["string","null"],"maxLength":160},"bio":{"type":["string","null"],"maxLength":2000},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"links":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"maxItems":6}},"required":["id","name","headline","bio","photo_url","links"]},"CreateSpeakerInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"headline":{"type":["string","null"],"maxLength":160},"bio":{"type":["string","null"],"maxLength":2000},"links":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"},"maxItems":6},"photo_asset_id":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}},"required":["name"]},"Zone":{"type":"object","properties":{"id":{"type":"string","pattern":"^zon_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed zon_"},"name":{"type":"string","minLength":1,"maxLength":80},"sort":{"type":"integer"}},"required":["id","name","sort"]},"Booth":{"type":"object","properties":{"id":{"type":"string","pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"code":{"type":"string","minLength":1,"maxLength":12,"description":"Printed booth code, e.g. B12"},"zone_id":{"type":["string","null"],"pattern":"^zon_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed zon_"},"sponsor_id":{"type":["string","null"],"pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"qr_url":{"type":"string","maxLength":2048,"format":"uri","description":"Encoded in the printed booth QR"}},"required":["id","code","zone_id","sponsor_id","qr_url"]},"CreateBoothInput":{"type":"object","properties":{"code":{"type":"string","minLength":1,"maxLength":12,"description":"Printed booth code, e.g. B12"},"zone_id":{"type":"string","pattern":"^zon_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed zon_"},"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"}},"required":["code"]},"TicketType":{"type":"object","properties":{"id":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":1000},"kind":{"type":"string","enum":["free","paid"]},"price_minor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3},"capacity":{"type":["integer","null"],"exclusiveMinimum":0},"sold":{"type":"integer","minimum":0},"held":{"type":"integer","minimum":0,"description":"Pending orders holding seats"},"sale_from":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"sale_to":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"per_order_limit":{"type":"integer","minimum":1,"maximum":50},"visibility":{"type":"string","enum":["public","hidden"]},"hidden_link":{"type":["string","null"],"format":"uri","description":"Private link for hidden types; organiser only"},"sort":{"type":"integer"}},"required":["id","event_id","name","description","kind","price_minor","currency","capacity","sold","held","sale_from","sale_to","per_order_limit","visibility","hidden_link","sort"]},"PublicTicketType":{"type":"object","properties":{"id":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":1000},"kind":{"type":"string","enum":["free","paid"]},"price_minor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3},"per_order_limit":{"type":"integer","minimum":1,"maximum":50},"availability":{"type":"string","enum":["available","low","sold_out","not_yet","ended"]},"remaining":{"type":["integer","null"],"minimum":0,"description":"Only when low"},"fee_minor":{"type":"integer","minimum":0,"description":"Konecto fee the buyer pays per ticket; 0 when the organiser pays"}},"required":["id","name","description","kind","price_minor","currency","per_order_limit","availability","remaining","fee_minor"]},"CreateTicketTypeInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":1000},"kind":{"type":"string","enum":["free","paid"]},"price_minor":{"type":"integer","minimum":0,"default":0},"currency":{"type":"string","minLength":3,"maxLength":3},"capacity":{"type":"integer","exclusiveMinimum":0},"sale_from":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"sale_to":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"per_order_limit":{"type":"integer","minimum":1,"maximum":50,"default":10},"visibility":{"type":"string","enum":["public","hidden"],"default":"public"}},"required":["name","kind"]},"UpdateTicketTypeInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":1000},"kind":{"type":"string","enum":["free","paid"]},"price_minor":{"type":"integer","minimum":0,"default":0},"currency":{"type":"string","minLength":3,"maxLength":3},"capacity":{"type":"integer","exclusiveMinimum":0},"sale_from":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"sale_to":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"per_order_limit":{"type":"integer","minimum":1,"maximum":50,"default":10},"visibility":{"type":"string","enum":["public","hidden"],"default":"public"}}},"PromoCode":{"type":"object","properties":{"id":{"type":"string","pattern":"^pc_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed pc_"},"code":{"type":"string","minLength":3,"maxLength":32},"kind":{"type":"string","enum":["percent","fixed"]},"value":{"type":"integer","exclusiveMinimum":0,"description":"Percent (1-100) or minor units"},"max_uses":{"type":["integer","null"],"exclusiveMinimum":0},"uses":{"type":"integer","minimum":0},"ticket_type_ids":{"type":"array","items":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"description":"Empty means all"},"valid_from":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"valid_to":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["id","code","kind","value","max_uses","uses","ticket_type_ids","valid_from","valid_to"]},"CreatePromoCodeInput":{"type":"object","properties":{"code":{"type":"string","minLength":3,"maxLength":32},"kind":{"type":"string","enum":["percent","fixed"]},"value":{"type":"integer","exclusiveMinimum":0,"description":"Percent (1-100) or minor units"},"max_uses":{"type":["integer","null"],"exclusiveMinimum":0},"ticket_type_ids":{"type":"array","items":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"description":"Empty means all"},"valid_from":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"valid_to":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["code","kind","value"]},"Order":{"type":"object","properties":{"id":{"type":"string","pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"status":{"type":"string","enum":["PENDING","PAID","CANCELLED","REFUNDED","PARTIALLY_REFUNDED"]},"buyer_name":{"type":"string"},"buyer_email":{"type":"string","maxLength":254,"format":"email"},"items":{"type":"array","items":{"type":"object","properties":{"ticket_type_id":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"name":{"type":"string"},"quantity":{"type":"integer","exclusiveMinimum":0},"unit_price_minor":{"type":"integer","minimum":0},"unit_fee_minor":{"type":"integer","minimum":0}},"required":["ticket_type_id","name","quantity","unit_price_minor","unit_fee_minor"]}},"subtotal_minor":{"type":"integer","minimum":0},"fee_minor":{"type":"integer","minimum":0,"description":"Konecto fee on this order"},"discount_minor":{"type":"integer","minimum":0},"total_minor":{"type":"integer","minimum":0,"description":"What the buyer paid"},"currency":{"type":"string","minLength":3,"maxLength":3},"promo_code":{"type":["string","null"]},"utm":{"type":["object","null"],"additionalProperties":{"type":"string"}},"stripe_payment_intent":{"type":["string","null"]},"refunded_minor":{"type":"integer","minimum":0},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"order_id":{"type":"string","pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"ticket_type_id":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"attendee_id":{"type":"string","pattern":"^att_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed att_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","order_id","ticket_type_id","attendee_id","status","checked_in_at","issued_at"]}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"paid_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["id","event_id","status","buyer_name","buyer_email","items","subtotal_minor","fee_minor","discount_minor","total_minor","currency","promo_code","utm","stripe_payment_intent","refunded_minor","tickets","created_at","paid_at"]},"RefundInput":{"type":"object","properties":{"amount_minor":{"type":"integer","exclusiveMinimum":0,"description":"Omit for a full refund"},"reason":{"type":"string","maxLength":500},"ticket_ids":{"type":"array","items":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"description":"Cancel only these tickets"}}},"CreateCheckoutSessionInput":{"type":"object","properties":{"event":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$","description":"Event slug"},"items":{"type":"array","items":{"type":"object","properties":{"ticket_type":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"quantity":{"type":"integer","minimum":1,"maximum":50}},"required":["ticket_type","quantity"]},"minItems":1,"maxItems":10},"promo_code":{"type":"string","maxLength":32},"hidden_token":{"type":"string","description":"Unlocks hidden ticket types"},"success_url":{"type":"string","maxLength":2048,"format":"uri","description":"Where the buyer lands after paying; {CHECKOUT_SESSION_ID} is replaced. Defaults to the Konecto ticket page."},"cancel_url":{"type":"string","maxLength":2048,"format":"uri","description":"Defaults to the event page"},"utm":{"type":"object","additionalProperties":{"type":"string"}},"terms_accepted":{"type":"boolean","description":"True only when the buyer accepted the terms and privacy notice; consent is recorded only then (free and paid orders alike)"},"marketing":{"type":"boolean","description":"Marketing opt-in ticked by the buyer"}},"required":["event","items"]},"CheckoutSession":{"type":"object","properties":{"id":{"type":"string"},"order_id":{"type":"string","pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"url":{"type":"string","maxLength":2048,"format":"uri","description":"Konecto checkout URL to redirect the buyer to"},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","order_id","url","expires_at"]},"CheckoutSessionStatus":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","enum":["open","paid","expired","cancelled"]},"order":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"status":{"type":"string","enum":["PENDING","PAID","CANCELLED","REFUNDED","PARTIALLY_REFUNDED"]},"buyer_name":{"type":"string"},"buyer_email":{"type":"string","maxLength":254,"format":"email"},"items":{"type":"array","items":{"type":"object","properties":{"ticket_type_id":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"name":{"type":"string"},"quantity":{"type":"integer","exclusiveMinimum":0},"unit_price_minor":{"type":"integer","minimum":0},"unit_fee_minor":{"type":"integer","minimum":0}},"required":["ticket_type_id","name","quantity","unit_price_minor","unit_fee_minor"]}},"subtotal_minor":{"type":"integer","minimum":0},"fee_minor":{"type":"integer","minimum":0,"description":"Konecto fee on this order"},"discount_minor":{"type":"integer","minimum":0},"total_minor":{"type":"integer","minimum":0,"description":"What the buyer paid"},"currency":{"type":"string","minLength":3,"maxLength":3},"promo_code":{"type":["string","null"]},"utm":{"type":["object","null"],"additionalProperties":{"type":"string"}},"stripe_payment_intent":{"type":["string","null"]},"refunded_minor":{"type":"integer","minimum":0},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"order_id":{"type":"string","pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"ticket_type_id":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"attendee_id":{"type":"string","pattern":"^att_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed att_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","order_id","ticket_type_id","attendee_id","status","checked_in_at","issued_at"]}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"paid_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["id","event_id","status","buyer_name","buyer_email","items","subtotal_minor","fee_minor","discount_minor","total_minor","currency","promo_code","utm","stripe_payment_intent","refunded_minor","tickets","created_at","paid_at"]},"attendee_app_url":{"type":["string","null"],"maxLength":2048,"format":"uri","description":"me.konec.to magic link once paid"},"ticket_links":{"type":"array","items":{"type":"object","properties":{"ticket_id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"view_url":{"type":"string","maxLength":2048,"format":"uri"},"qr_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["ticket_id","view_url","qr_url"]},"default":[],"description":"Per-ticket QR view links once paid"},"event":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"name":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"venue":{},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"organiser":{"type":"object","properties":{"name":{"type":"string"},"accent_colour":{"type":"string"}},"required":["name","accent_colour"]}},"required":["id","slug","name","starts_at","ends_at","timezone","public_url","organiser"],"description":"Always present so checkout pages can render before payment"},"summary":{"type":["object","null"],"properties":{"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"quantity":{"type":"integer"},"unit_price_minor":{"type":"integer"},"unit_fee_minor":{"type":"integer"}},"required":["name","quantity","unit_price_minor","unit_fee_minor"]}},"subtotal_minor":{"type":"integer"},"fee_minor":{"type":"integer"},"discount_minor":{"type":"integer"},"total_minor":{"type":"integer"},"currency":{"type":"string","minLength":3,"maxLength":3},"buyer_name":{"type":"string"},"buyer_email":{"type":"string"},"expires_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["items","subtotal_minor","fee_minor","discount_minor","total_minor","currency","buyer_name","buyer_email","expires_at"]}},"required":["id","status","order","attendee_app_url","event","summary"]},"Attendee":{"type":"object","properties":{"id":{"type":"string","pattern":"^att_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed att_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"ticket_id":{"type":["string","null"],"pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"name":{"type":"string"},"email":{"type":"string","maxLength":254,"format":"email"},"ticket_type":{"type":["string","null"]},"answers":{"type":"object","additionalProperties":{}},"consent":{"type":"object","properties":{"terms_at":{"type":["string","null"],"format":"date-time","description":"When the buyer accepted the terms; null when consent was never collected"},"marketing":{"type":"boolean"}},"required":["terms_at","marketing"]},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","event_id","person_id","ticket_id","name","email","ticket_type","answers","consent","checked_in_at","created_at"]},"ImportAttendeesInput":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1},"email":{"type":"string","maxLength":254,"format":"email"},"ticket_type":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"answers":{"type":"object","additionalProperties":{"type":"string"}}},"required":["name","email","ticket_type"]},"maxItems":5000},"send_ticket_email":{"type":"boolean","default":false}},"required":["rows"]},"EmailAttendeesInput":{"type":"object","properties":{"subject":{"type":"string","minLength":1,"maxLength":200},"body_markdown":{"type":"string","minLength":1,"maxLength":20000},"filter":{"type":"object","properties":{"q":{"type":"string","maxLength":120},"ticket_type":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"checked_in":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}],"description":"true: checked in; false: not yet (query strings send the words true/false)"}}}},"required":["subject","body_markdown"]},"ScanInput":{"type":"object","properties":{"qr_token":{"type":"string","minLength":1},"device_id":{"type":"string","minLength":1,"maxLength":64},"source":{"type":"string","enum":["camera","manual","walkin"],"default":"camera"}},"required":["qr_token","device_id"]},"ScanResult":{"type":"object","properties":{"result":{"type":"string","enum":["checked_in","already_checked_in","not_valid","wrong_event"]},"attendee_name":{"type":["string","null"]},"ticket_type":{"type":["string","null"]},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"device_id":{"type":["string","null"],"description":"Device of the first scan when already checked in"}},"required":["result","attendee_name","ticket_type","checked_in_at","device_id"]},"SyncInput":{"type":"object","properties":{"device_id":{"type":"string","minLength":1,"maxLength":64},"scans":{"type":"array","items":{"type":"object","properties":{"qr_token":{"type":"string"},"scanned_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"source":{"type":"string","enum":["camera","manual","walkin"],"default":"camera"}},"required":["qr_token","scanned_at"]},"maxItems":2000}},"required":["device_id","scans"]},"SyncResult":{"type":"object","properties":{"accepted":{"type":"integer"},"duplicates":{"type":"integer","description":"Same device scanned twice"},"flagged":{"type":"array","items":{"type":"object","properties":{"ticket_id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"attendee_name":{"type":"string"},"first_device":{"type":"string"},"first_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"this_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["ticket_id","attendee_name","first_device","first_at","this_at"]}}},"required":["accepted","duplicates","flagged"]},"CheckinListEntry":{"type":"object","properties":{"token_hash":{"type":"string","description":"sha256(qr_token), hex"},"name":{"type":"string"},"ticket_type":{"type":"string"},"status":{"type":"string","enum":["valid","cancelled"]},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["token_hash","name","ticket_type","status","checked_in_at"]},"CheckinSummary":{"type":"object","properties":{"total":{"type":"integer"},"checked_in":{"type":"integer"},"flagged":{"type":"integer"},"last_15_min":{"type":"integer"},"by_hour":{"type":"array","items":{"type":"object","properties":{"hour":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"count":{"type":"integer"}},"required":["hour","count"]}}},"required":["total","checked_in","flagged","last_15_min","by_hour"]},"IngestInteractionsInput":{"type":"object","properties":{"event":{"type":"string","description":"Event slug or id"},"interactions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["site.view","widget.view","checkout.start","checkout.complete","checkin","session.checkin","booth.scanned","lead.captured","connection.made","challenge.action","challenge.completed","sponsor.impression","sponsor.view","sponsor.click","sponsor.chat","sponsor.redeem","profile.view","suggestion.shown","suggestion.accepted"]},"source":{"type":"string","enum":["page","widget","app","scanner","api","system"],"default":"page"},"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"session_id":{"type":"string","pattern":"^ses_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ses_"},"path":{"type":"string","maxLength":500},"utm":{"type":"object","additionalProperties":{"type":"string"}},"ts":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["type"]},"minItems":1,"maxItems":50}},"required":["event","interactions"]},"Profile":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string","minLength":3,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*$"},"name":{"type":"string","minLength":1,"maxLength":120},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"wants":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["role","industry","company_type","looking_for"]},"value":{"type":"string","maxLength":80}},"required":["kind","value"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"visibility":{"type":"object","properties":{"photo":{"type":"string","enum":["public","attendees","on_connect"]},"headline":{"type":"string","enum":["public","attendees","on_connect"]},"company":{"type":"string","enum":["public","attendees","on_connect"]},"bio":{"type":"string","enum":["public","attendees","on_connect"]},"links":{"type":"string","enum":["public","attendees","on_connect"]},"interests":{"type":"string","enum":["public","attendees","on_connect"]},"looking_for":{"type":"string","enum":["public","attendees","on_connect"]},"email":{"type":"string","enum":["public","attendees","on_connect"]},"phone":{"type":"string","enum":["public","attendees","on_connect"]}}},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["person_id","handle","name","photo_url","cover","headline","company","bio","links","interests","wants","looking_for","visibility","updated_at"]},"PageConfig":{"type":"object","properties":{"template":{"type":"string","enum":["classic","expo","minimal"]},"branding":{"type":"object","properties":{"logo_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"primary_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"font":{"type":"string","enum":["Geist","Inter","Manrope","Space Grotesk","Playfair Display","Fraunces","DM Serif Display","IBM Plex Sans"]},"theme":{"type":"string","enum":["light","dark"]}},"required":["logo_asset_id","primary_colour","background_colour","font","theme"]},"sections":{"type":"object","properties":{"hero":{"type":"object","properties":{"enabled":{"type":"boolean"},"headline":{"type":"string","maxLength":60},"sub":{"type":"string","maxLength":200},"image_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}},"required":["enabled","headline","image_asset_id"]},"about":{"type":"object","properties":{"enabled":{"type":"boolean"},"body":{"type":"string","maxLength":20000}},"required":["enabled","body"]},"speakers":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"agenda":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"venue":{"type":"object","properties":{"enabled":{"type":"boolean"},"show_map":{"type":"boolean"}},"required":["enabled","show_map"]},"sponsors":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"exhibitors":{"type":"object","properties":{"enabled":{"type":"boolean"},"group_by_zone":{"type":"boolean"}},"required":["enabled","group_by_zone"]},"gallery":{"type":"object","properties":{"enabled":{"type":"boolean"},"asset_ids":{"type":"array","items":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"maxItems":24}},"required":["enabled","asset_ids"]},"faq":{"type":"object","properties":{"enabled":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"q":{"type":"string","maxLength":200},"a":{"type":"string","maxLength":20000}},"required":["q","a"]},"maxItems":20}},"required":["enabled","items"]},"tickets":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60},"show_remaining":{"type":"boolean"}},"required":["enabled","show_remaining"]}},"required":["hero","about","speakers","agenda","venue","sponsors","exhibitors","gallery","faq","tickets"]},"section_order":{"type":"array","items":{"type":"string","enum":["hero","about","speakers","agenda","venue","sponsors","exhibitors","gallery","faq","tickets"]},"minItems":1},"seo":{"type":"object","properties":{"title":{"type":"string","maxLength":70},"description":{"type":"string","maxLength":160},"og_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}},"required":["og_asset_id"]}},"required":["template","branding","sections","section_order","seo"]},"EventPage":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"draft":{"type":"object","properties":{"template":{"type":"string","enum":["classic","expo","minimal"]},"branding":{"type":"object","properties":{"logo_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"primary_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"font":{"type":"string","enum":["Geist","Inter","Manrope","Space Grotesk","Playfair Display","Fraunces","DM Serif Display","IBM Plex Sans"]},"theme":{"type":"string","enum":["light","dark"]}},"required":["logo_asset_id","primary_colour","background_colour","font","theme"]},"sections":{"type":"object","properties":{"hero":{"type":"object","properties":{"enabled":{"type":"boolean"},"headline":{"type":"string","maxLength":60},"sub":{"type":"string","maxLength":200},"image_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}},"required":["enabled","headline","image_asset_id"]},"about":{"type":"object","properties":{"enabled":{"type":"boolean"},"body":{"type":"string","maxLength":20000}},"required":["enabled","body"]},"speakers":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"agenda":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"venue":{"type":"object","properties":{"enabled":{"type":"boolean"},"show_map":{"type":"boolean"}},"required":["enabled","show_map"]},"sponsors":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"exhibitors":{"type":"object","properties":{"enabled":{"type":"boolean"},"group_by_zone":{"type":"boolean"}},"required":["enabled","group_by_zone"]},"gallery":{"type":"object","properties":{"enabled":{"type":"boolean"},"asset_ids":{"type":"array","items":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"maxItems":24}},"required":["enabled","asset_ids"]},"faq":{"type":"object","properties":{"enabled":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"q":{"type":"string","maxLength":200},"a":{"type":"string","maxLength":20000}},"required":["q","a"]},"maxItems":20}},"required":["enabled","items"]},"tickets":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60},"show_remaining":{"type":"boolean"}},"required":["enabled","show_remaining"]}},"required":["hero","about","speakers","agenda","venue","sponsors","exhibitors","gallery","faq","tickets"]},"section_order":{"type":"array","items":{"type":"string","enum":["hero","about","speakers","agenda","venue","sponsors","exhibitors","gallery","faq","tickets"]},"minItems":1},"seo":{"type":"object","properties":{"title":{"type":"string","maxLength":70},"description":{"type":"string","maxLength":160},"og_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}},"required":["og_asset_id"]}},"required":["template","branding","sections","section_order","seo"]},"published":{"type":["object","null"],"properties":{"template":{"type":"string","enum":["classic","expo","minimal"]},"branding":{"type":"object","properties":{"logo_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"primary_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"font":{"type":"string","enum":["Geist","Inter","Manrope","Space Grotesk","Playfair Display","Fraunces","DM Serif Display","IBM Plex Sans"]},"theme":{"type":"string","enum":["light","dark"]}},"required":["logo_asset_id","primary_colour","background_colour","font","theme"]},"sections":{"type":"object","properties":{"hero":{"type":"object","properties":{"enabled":{"type":"boolean"},"headline":{"type":"string","maxLength":60},"sub":{"type":"string","maxLength":200},"image_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}},"required":["enabled","headline","image_asset_id"]},"about":{"type":"object","properties":{"enabled":{"type":"boolean"},"body":{"type":"string","maxLength":20000}},"required":["enabled","body"]},"speakers":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"agenda":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"venue":{"type":"object","properties":{"enabled":{"type":"boolean"},"show_map":{"type":"boolean"}},"required":["enabled","show_map"]},"sponsors":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}},"required":["enabled"]},"exhibitors":{"type":"object","properties":{"enabled":{"type":"boolean"},"group_by_zone":{"type":"boolean"}},"required":["enabled","group_by_zone"]},"gallery":{"type":"object","properties":{"enabled":{"type":"boolean"},"asset_ids":{"type":"array","items":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"maxItems":24}},"required":["enabled","asset_ids"]},"faq":{"type":"object","properties":{"enabled":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"q":{"type":"string","maxLength":200},"a":{"type":"string","maxLength":20000}},"required":["q","a"]},"maxItems":20}},"required":["enabled","items"]},"tickets":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60},"show_remaining":{"type":"boolean"}},"required":["enabled","show_remaining"]}},"required":["hero","about","speakers","agenda","venue","sponsors","exhibitors","gallery","faq","tickets"]},"section_order":{"type":"array","items":{"type":"string","enum":["hero","about","speakers","agenda","venue","sponsors","exhibitors","gallery","faq","tickets"]},"minItems":1},"seo":{"type":"object","properties":{"title":{"type":"string","maxLength":70},"description":{"type":"string","maxLength":160},"og_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}},"required":["og_asset_id"]}},"required":["template","branding","sections","section_order","seo"]},"published_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"preview_url":{"type":"string","maxLength":2048,"format":"uri"},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"version":{"type":"integer"}},"required":["event_id","draft","published","published_at","preview_url","public_url","version"]},"Challenge":{"type":"object","properties":{"id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":1000},"template":{"type":"string","enum":["booth_quest","connector","session_explorer","zone_passport","early_bird","profile_pro","team","custom"]},"actions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["booth_scan","exhibitor_connection","attendee_connection","session_checkin","sponsor_visit","offer_redemption","survey_answer","early_checkin","profile_complete"]},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["all"]}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["count"]},"value":{"type":"integer","exclusiveMinimum":0}},"required":["kind","value"]},{"type":"object","properties":{"kind":{"type":"string","enum":["percent"]},"value":{"type":"integer","minimum":1,"maximum":100}},"required":["kind","value"]},{"type":"object","properties":{"kind":{"type":"string","enum":["zone"]},"zone_id":{"type":"string","pattern":"^zon_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed zon_"},"all":{"type":"boolean","default":true}},"required":["kind","zone_id"]},{"type":"object","properties":{"kind":{"type":"string","enum":["list"]},"ids":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["kind","ids"]},{"type":"object","properties":{"kind":{"type":"string","enum":["before"]},"time":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["kind","time"]}]},"points":{"type":"integer","minimum":0,"default":1},"label":{"type":"string","maxLength":80,"description":"Shown to attendees, e.g. \"Scan 20 booths\""}},"required":["id","type","target"]},"minItems":1,"maxItems":10},"combine":{"type":"string","enum":["all","any","points"]},"points_threshold":{"type":["integer","null"],"exclusiveMinimum":0},"verification":{"type":"string","enum":["staff_scan","self_scan_allowed"]},"cooldown_seconds":{"type":"integer","minimum":0},"daily_cap":{"type":["integer","null"],"exclusiveMinimum":0},"reward":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["prize_draw"]},"prize":{"type":"string","maxLength":200},"winners":{"type":"integer","exclusiveMinimum":0},"draw_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["type","prize","winners"]},{"type":"object","properties":{"type":{"type":"string","enum":["instant"]},"description":{"type":"string","maxLength":200},"first_n":{"type":"integer","exclusiveMinimum":0}},"required":["type","description","first_n"]},{"type":"object","properties":{"type":{"type":"string","enum":["points"]},"levels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"min_points":{"type":"integer"}},"required":["name","min_points"]},"maxItems":10}},"required":["type","levels"]},{"type":"object","properties":{"type":{"type":"string","enum":["badge"]},"name":{"type":"string","maxLength":40},"icon":{"type":"string","maxLength":40}},"required":["type","name","icon"]},{"type":"object","properties":{"type":{"type":"string","enum":["leaderboard"]},"top_n":{"type":"integer","exclusiveMinimum":0},"prizes":{"type":"array","items":{"type":"string"},"maxItems":10}},"required":["type","top_n","prizes"]},{"type":"object","properties":{"type":{"type":"string","enum":["discount_code"]},"description":{"type":"string","maxLength":200},"percent":{"type":"integer","minimum":1,"maximum":100}},"required":["type","description","percent"]},{"type":"object","properties":{"type":{"type":"string","enum":["vip_access"]},"description":{"type":"string","maxLength":200}},"required":["type","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["donation"]},"charity":{"type":"string","maxLength":120},"amount_minor":{"type":"integer","exclusiveMinimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["type","charity","amount_minor","currency"]}]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"status":{"type":"string","enum":["DRAFT","SCHEDULED","LIVE","ENDED"]},"stats":{"type":"object","properties":{"participants":{"type":"integer"},"completions":{"type":"integer"}},"required":["participants","completions"]}},"required":["id","event_id","name","description","template","actions","combine","points_threshold","verification","cooldown_seconds","daily_cap","reward","starts_at","ends_at","status","stats"]},"CreateChallengeInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":1000},"template":{"type":"string","enum":["booth_quest","connector","session_explorer","zone_passport","early_bird","profile_pro","team","custom"]},"actions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["booth_scan","exhibitor_connection","attendee_connection","session_checkin","sponsor_visit","offer_redemption","survey_answer","early_checkin","profile_complete"]},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["all"]}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["count"]},"value":{"type":"integer","exclusiveMinimum":0}},"required":["kind","value"]},{"type":"object","properties":{"kind":{"type":"string","enum":["percent"]},"value":{"type":"integer","minimum":1,"maximum":100}},"required":["kind","value"]},{"type":"object","properties":{"kind":{"type":"string","enum":["zone"]},"zone_id":{"type":"string","pattern":"^zon_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed zon_"},"all":{"type":"boolean","default":true}},"required":["kind","zone_id"]},{"type":"object","properties":{"kind":{"type":"string","enum":["list"]},"ids":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["kind","ids"]},{"type":"object","properties":{"kind":{"type":"string","enum":["before"]},"time":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["kind","time"]}]},"points":{"type":"integer","minimum":0,"default":1},"label":{"type":"string","maxLength":80,"description":"Shown to attendees, e.g. \"Scan 20 booths\""}},"required":["type","target"]},"minItems":1,"maxItems":10},"combine":{"type":"string","enum":["all","any","points"]},"points_threshold":{"type":["integer","null"],"exclusiveMinimum":0},"verification":{"type":"string","enum":["staff_scan","self_scan_allowed"]},"cooldown_seconds":{"type":"integer","minimum":0},"daily_cap":{"type":["integer","null"],"exclusiveMinimum":0},"reward":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["prize_draw"]},"prize":{"type":"string","maxLength":200},"winners":{"type":"integer","exclusiveMinimum":0},"draw_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["type","prize","winners"]},{"type":"object","properties":{"type":{"type":"string","enum":["instant"]},"description":{"type":"string","maxLength":200},"first_n":{"type":"integer","exclusiveMinimum":0}},"required":["type","description","first_n"]},{"type":"object","properties":{"type":{"type":"string","enum":["points"]},"levels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"min_points":{"type":"integer"}},"required":["name","min_points"]},"maxItems":10}},"required":["type","levels"]},{"type":"object","properties":{"type":{"type":"string","enum":["badge"]},"name":{"type":"string","maxLength":40},"icon":{"type":"string","maxLength":40}},"required":["type","name","icon"]},{"type":"object","properties":{"type":{"type":"string","enum":["leaderboard"]},"top_n":{"type":"integer","exclusiveMinimum":0},"prizes":{"type":"array","items":{"type":"string"},"maxItems":10}},"required":["type","top_n","prizes"]},{"type":"object","properties":{"type":{"type":"string","enum":["discount_code"]},"description":{"type":"string","maxLength":200},"percent":{"type":"integer","minimum":1,"maximum":100}},"required":["type","description","percent"]},{"type":"object","properties":{"type":{"type":"string","enum":["vip_access"]},"description":{"type":"string","maxLength":200}},"required":["type","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["donation"]},"charity":{"type":"string","maxLength":120},"amount_minor":{"type":"integer","exclusiveMinimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["type","charity","amount_minor","currency"]}]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["name","actions","combine","verification","reward","starts_at","ends_at"]},"Sponsor":{"type":"object","properties":{"id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"kind":{"type":"string","enum":["exhibitor","sponsor","both"]},"name":{"type":"string","minLength":1,"maxLength":120},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"description":{"type":["string","null"],"maxLength":3000},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","maxLength":120},"code":{"type":["string","null"],"maxLength":40},"url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["id","title","code","url"]},"maxItems":10},"tier_id":{"type":["string","null"]},"booth_id":{"type":["string","null"],"pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"booth_code":{"type":["string","null"]},"lead_capture_enabled":{"type":"boolean"},"staff_count":{"type":"integer"},"looking_for":{"type":"array","items":{"type":"string","maxLength":40},"default":[]},"contact_email":{"type":["string","null"],"maxLength":254,"format":"email","default":null},"crm_webhook_url":{"type":["string","null"],"maxLength":2048,"format":"uri","default":null}},"required":["id","event_id","kind","name","logo_url","description","links","offers","tier_id","booth_id","booth_code","lead_capture_enabled","staff_count"]},"Lead":{"type":"object","properties":{"id":{"type":"string","pattern":"^led_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed led_"},"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"person":{"type":"object","properties":{"name":{"type":"string"},"headline":{"type":["string","null"]},"company":{"type":["string","null"]}},"required":["name","headline","company"]},"shared":{"type":"object","properties":{"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"links":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"}}},"required":["email","phone","links"]},"consent_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"rating":{"type":["string","null"],"enum":["hot","warm","cold"]},"notes":{"type":["string","null"],"maxLength":2000},"captured_by":{"type":"string"},"captured_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","sponsor_id","person","shared","consent_at","rating","notes","captured_by","captured_at"]},"EventAnalytics":{"type":"object","properties":{"range":{"type":"object","properties":{"from":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"to":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"}},"required":["from","to"]},"sales_over_time":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"tickets":{"type":"integer"},"revenue_minor":{"type":"integer"}},"required":["date","tickets","revenue_minor"]}},"sources":{"type":"array","items":{"type":"object","properties":{"source":{"type":"string"},"views":{"type":"integer"},"purchases":{"type":"integer"}},"required":["source","views","purchases"]}},"funnel":{"type":"object","properties":{"views":{"type":"integer"},"checkout_starts":{"type":"integer"},"purchases":{"type":"integer"}},"required":["views","checkout_starts","purchases"]},"checkin_rate":{"type":["number","null"],"minimum":0,"maximum":1},"arrivals_by_hour":{"type":"array","items":{"type":"object","properties":{"hour":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"count":{"type":"integer"}},"required":["hour","count"]}},"directory_opt_in_rate":{"type":["number","null"],"minimum":0,"maximum":1},"connections":{"type":"integer"},"suggestions":{"type":"object","properties":{"shown":{"type":"integer"},"accepted":{"type":"integer"}},"required":["shown","accepted"]}},"required":["range","sales_over_time","sources","funnel","checkin_rate","arrivals_by_hour","directory_opt_in_rate","connections","suggestions"]},"Pnl":{"type":"object","properties":{"currency":{"type":"string","minLength":3,"maxLength":3},"ticket_revenue_gross_minor":{"type":"integer"},"fees_minor":{"type":"integer"},"refunds_minor":{"type":"integer"},"ticket_revenue_net_minor":{"type":"integer"},"other_income_minor":{"type":"integer"},"costs_minor":{"type":"integer"},"profit_minor":{"type":"integer"},"break_even":{"type":"object","properties":{"tickets_needed":{"type":["integer","null"]},"average_net_ticket_minor":{"type":["integer","null"]}},"required":["tickets_needed","average_net_ticket_minor"]},"cost_per_attendee_minor":{"type":["integer","null"]},"budget":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["venue","food_drink","production","people","marketing","other"]},"planned_minor":{"type":"integer","minimum":0},"actual_minor":{"type":"integer","minimum":0}},"required":["category","planned_minor","actual_minor"]}}},"required":["currency","ticket_revenue_gross_minor","fees_minor","refunds_minor","ticket_revenue_net_minor","other_income_minor","costs_minor","profit_minor","break_even","cost_per_attendee_minor","budget"]},"ModuleState":{"type":"object","properties":{"module":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]},"enabled":{"type":"boolean"},"price_minor":{"type":"integer"},"unit":{"type":"string","enum":["per_event","per_booth"]},"source":{"type":["string","null"],"enum":["payment","org_plan","trial"]},"expires_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["module","enabled","price_minor","unit","source","expires_at"]},"Task":{"type":"object","properties":{"id":{"type":"string","pattern":"^tsk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tsk_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"column_id":{"type":"string"},"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":["string","null"],"maxLength":5000},"assignee_id":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"priority":{"type":"string","enum":["low","normal","urgent"]},"checklist":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":200},"done":{"type":"boolean"}},"required":["text","done"]},"maxItems":30},"sort":{"type":"integer"},"done_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["id","event_id","column_id","title","description","assignee_id","due_at","priority","checklist","sort","done_at"]},"WebhookEndpoint":{"type":"object","properties":{"id":{"type":"string","pattern":"^whe_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed whe_"},"url":{"type":"string","maxLength":2048,"format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["order.paid","order.refunded","attendee.registered","ticket.checked_in","event.published","event.updated","event_page.published","module.enabled","challenge.completed","booth.scanned"]},"minItems":1},"enabled":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","url","events","enabled","created_at"]},"WebhookEndpointCreated":{"type":"object","properties":{"id":{"type":"string","pattern":"^whe_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed whe_"},"url":{"type":"string","maxLength":2048,"format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["order.paid","order.refunded","attendee.registered","ticket.checked_in","event.published","event.updated","event_page.published","module.enabled","challenge.completed","booth.scanned"]},"minItems":1},"enabled":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"secret":{"type":"string"}},"required":["id","url","events","enabled","created_at","secret"]},"CreateWebhookEndpointInput":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["order.paid","order.refunded","attendee.registered","ticket.checked_in","event.published","event.updated","event_page.published","module.enabled","challenge.completed","booth.scanned"]},"minItems":1}},"required":["url","events"]},"WebhookDelivery":{"type":"object","properties":{"id":{"type":"string"},"event_type":{"type":"string","enum":["order.paid","order.refunded","attendee.registered","ticket.checked_in","event.published","event.updated","event_page.published","module.enabled","challenge.completed","booth.scanned"]},"status":{"type":"string","enum":["pending","delivered","failed","exhausted"]},"attempts":{"type":"integer"},"last_status_code":{"type":["integer","null"]},"next_attempt_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","event_type","status","attempts","last_status_code","next_attempt_at","created_at"]},"WebhookEnvelope":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string","enum":["order.paid","order.refunded","attendee.registered","ticket.checked_in","event.published","event.updated","event_page.published","module.enabled","challenge.completed","booth.scanned"]},"created":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"data":{"type":"object","additionalProperties":{}}},"required":["id","type","created","data"]},"Cost":{"type":"object","properties":{"id":{"type":"string","pattern":"^cst_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cst_"},"category":{"type":"string","enum":["venue","food_drink","production","people","marketing","other"]},"supplier":{"type":["string","null"],"maxLength":160},"description":{"type":"string","maxLength":300},"amount_minor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"receipt_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","category","supplier","description","amount_minor","currency","date","receipt_asset_id","created_at"]},"CreateCostInput":{"type":"object","properties":{"category":{"type":"string","enum":["venue","food_drink","production","people","marketing","other"]},"supplier":{"type":["string","null"],"maxLength":160},"description":{"type":"string","maxLength":300},"amount_minor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"receipt_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}},"required":["category","description","amount_minor","date"]},"Income":{"type":"object","properties":{"id":{"type":"string"},"description":{"type":"string","maxLength":300},"amount_minor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"source":{"type":"string","enum":["tickets","sponsorship","grant","other"]}},"required":["id","description","amount_minor","currency","date","source"]},"CreateIncomeInput":{"type":"object","properties":{"description":{"type":"string","maxLength":300},"amount_minor":{"type":"integer","minimum":0},"currency":{"type":"string","minLength":3,"maxLength":3},"date":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"source":{"type":"string","enum":["sponsorship","grant","other"]}},"required":["description","amount_minor","currency","date","source"]},"SponsorEngagement":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"reached":{"type":"integer","description":"Unique attendees with any interaction"},"reached_share":{"type":"number","minimum":0,"maximum":1},"page_views":{"type":"integer"},"link_clicks":{"type":"integer"},"chats":{"type":"integer"},"booth_scans":{"type":"integer"},"offer_redemptions":{"type":"integer"},"leads":{"type":"integer"},"by_hour":{"type":"array","items":{"type":"object","properties":{"hour":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"interactions":{"type":"integer"}},"required":["hour","interactions"]}}},"required":["sponsor_id","reached","reached_share","page_views","link_clicks","chats","booth_scans","offer_redemptions","leads","by_hour"]},"BoothHeatmap":{"type":"array","items":{"type":"object","properties":{"booth_id":{"type":"string","pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"code":{"type":"string"},"by_hour":{"type":"array","items":{"type":"object","properties":{"hour":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"visits":{"type":"integer"}},"required":["hour","visits"]}},"total":{"type":"integer"}},"required":["booth_id","code","by_hour","total"]}},"CreateSponsorInput":{"type":"object","properties":{"kind":{"type":"string","enum":["exhibitor","sponsor","both"]},"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":3000},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","maxLength":120},"code":{"type":["string","null"],"maxLength":40},"url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["id","title","code","url"]},"maxItems":10},"tier_id":{"type":["string","null"]},"booth_id":{"type":["string","null"],"pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"looking_for":{"type":"array","items":{"type":"string","maxLength":40},"default":[]},"contact_email":{"type":["string","null"],"maxLength":254,"format":"email","default":null},"crm_webhook_url":{"type":["string","null"],"maxLength":2048,"format":"uri","default":null},"logo_asset_id":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"staff_emails":{"type":"array","items":{"type":"string","maxLength":254,"format":"email"},"maxItems":20}},"required":["kind","name"]},"SponsorTier":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","maxLength":60},"price_minor":{"type":["integer","null"],"minimum":0},"benefits":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"placement":{"type":"string","enum":["top","middle","bottom"]}},"required":["id","name","price_minor","benefits","placement"]},"ChallengeProgress":{"type":"object","properties":{"challenge_id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"actions":{"type":"array","items":{"type":"object","properties":{"action_id":{"type":"string"},"label":{"type":"string"},"current":{"type":"integer"},"target":{"type":["integer","null"]},"done":{"type":"boolean"}},"required":["action_id","label","current","target","done"]}},"points":{"type":"integer"},"state":{"type":"string","enum":["not_started","in_progress","completed","entered","won","not_won"]},"rank":{"type":["integer","null"]},"completed_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["challenge_id","actions","points","state","rank","completed_at"]},"LeaderboardEntry":{"type":"object","properties":{"rank":{"type":"integer"},"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"points":{"type":"integer"},"completed_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["rank","person_id","name","points","completed_at"]},"DrawResult":{"type":"object","properties":{"challenge_id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"seed":{"type":"string"},"entrants":{"type":"integer"},"winners":{"type":"array","items":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"}},"required":["person_id","name"]}},"drawn_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["challenge_id","seed","entrants","winners","drawn_at"]},"EnableModuleInput":{"type":"object","properties":{"module":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]},"booths":{"type":"integer","exclusiveMinimum":0,"description":"Lead capture only"}},"required":["module"]},"EnableModuleResult":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","enum":["checkout"]},"url":{"type":"string","format":"uri"}},"required":["status","url"]},{"type":"object","properties":{"status":{"type":"string","enum":["contact_sales"]},"reason":{"type":"string"}},"required":["status","reason"]},{"type":"object","properties":{"status":{"type":"string","enum":["enabled"]}},"required":["status"]}]},"Home":{"type":"object","properties":{"next":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"status":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"is_live":{"type":"boolean"},"checked_in":{"type":"boolean"},"organiser":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"slug":{"type":"string"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"community_joined":{"type":"boolean"}},"required":["id","name","slug","accent_colour","logo_url","community_joined"]},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"type_name":{"type":"string"},"holder_name":{"type":"string"},"qr_token":{"type":"string"},"qr_image_url":{"type":"string","maxLength":2048,"format":"uri"},"manual_code":{"type":"string","minLength":6,"maxLength":6,"description":"The holder's 6-character code for doors and booths without a camera"},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"order_id":{"type":["string","null"],"pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"calendar_url":{"type":"string","maxLength":2048,"format":"uri"},"transferable":{"type":"boolean"}},"required":["id","status","type_name","holder_name","qr_token","qr_image_url","manual_code","checked_in_at","issued_at","order_id","calendar_url","transferable"]}},"exhibitor_mode":{"type":"array","items":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"}},"required":["sponsor_id","name"]},"description":"Exhibitors this person staffs at the event"}},"required":["id","slug","name","kind","status","starts_at","ends_at","timezone","venue","public_url","is_live","checked_in","organiser","tickets","exhibitor_mode"]},"live":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"status":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"is_live":{"type":"boolean"},"checked_in":{"type":"boolean"},"organiser":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"slug":{"type":"string"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"community_joined":{"type":"boolean"}},"required":["id","name","slug","accent_colour","logo_url","community_joined"]},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"type_name":{"type":"string"},"holder_name":{"type":"string"},"qr_token":{"type":"string"},"qr_image_url":{"type":"string","maxLength":2048,"format":"uri"},"manual_code":{"type":"string","minLength":6,"maxLength":6,"description":"The holder's 6-character code for doors and booths without a camera"},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"order_id":{"type":["string","null"],"pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"calendar_url":{"type":"string","maxLength":2048,"format":"uri"},"transferable":{"type":"boolean"}},"required":["id","status","type_name","holder_name","qr_token","qr_image_url","manual_code","checked_in_at","issued_at","order_id","calendar_url","transferable"]}},"exhibitor_mode":{"type":"array","items":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"}},"required":["sponsor_id","name"]},"description":"Exhibitors this person staffs at the event"}},"required":["id","slug","name","kind","status","starts_at","ends_at","timezone","venue","public_url","is_live","checked_in","organiser","tickets","exhibitor_mode"]},"profile_complete":{"type":"boolean"},"unread_messages":{"type":"integer"},"pending_connections":{"type":"integer"},"pending_lead_requests":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^ldr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ldr_"},"sponsor":{"type":"object","properties":{"id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["id","name","logo_url"]},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"person":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"headline":{"type":["string","null"]},"company":{"type":["string","null"]}},"required":["person_id","name","headline","company"]},"status":{"type":"string","enum":["pending","accepted","declined","expired"]},"fields":{"type":"array","items":{"type":"string"},"description":"What accepting shares: name, headline, company, email, phone, links"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","sponsor","event_id","person","status","fields","created_at","expires_at"]}},"notices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^ntf_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ntf_"},"kind":{"type":"string"},"title":{"type":"string"},"body":{"type":["string","null"]},"link":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}},"read_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"actor":{"type":["object","null"],"properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["person_id","name","photo_url"]}},"required":["id","kind","title","body","link","data","read_at","created_at","actor"]}},"updates":{"type":"array","items":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"event_name":{"type":"string"},"subject":{"type":"string"},"sent_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["event_id","event_name","subject","sent_at"]}},"suggestions_teaser":{"type":"array","items":{"type":"object","properties":{"person":{"type":["object","null"],"properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"relationship":{"type":"string","enum":["self","connected","same_event","stranger"]},"connection":{"type":"object","properties":{"id":{"type":["string","null"],"pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["none","pending_out","pending_in","accepted"]}},"required":["id","status"]},"shared_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]}},"can_message":{"type":"boolean"},"blocked":{"type":"boolean"}},"required":["person_id","handle","name","relationship","connection","shared_events","can_message","blocked"]},"exhibitor":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"kind":{"type":"string","enum":["exhibitor","sponsor","both"]},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"description":{"type":["string","null"]},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]}},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"code":{"type":["string","null"]},"url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"redeemed":{"type":"boolean"}},"required":["id","title","code","url","redeemed"]}},"booth_id":{"type":["string","null"],"pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"booth_code":{"type":["string","null"]},"zone":{"type":["string","null"]},"looking_for":{"type":"array","items":{"type":"string"}},"on_quest":{"type":"boolean","description":"Part of a live challenge"},"chat_available":{"type":"boolean"},"tier":{"type":["string","null"]}},"required":["id","kind","name","logo_url","description","links","offers","booth_id","booth_code","zone","looking_for","on_quest","chat_available","tier"]},"score":{"type":"number"},"reasons":{"type":"array","items":{"type":"string"},"minItems":1},"computed_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["person","exhibitor","score","reasons","computed_at"]}},"community_invite":{"type":["object","null"],"properties":{"org_id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"slug":{"type":"string"}},"required":["org_id","name","slug"]},"exhibitor_mode":{"type":"array","items":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"event_name":{"type":"string"}},"required":["sponsor_id","name","event_id","event_name"]}}},"required":["next","live","profile_complete","unread_messages","pending_connections","pending_lead_requests","notices","updates","suggestions_teaser","community_invite","exhibitor_mode"]},"Wallet":{"type":"object","properties":{"upcoming":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"status":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"is_live":{"type":"boolean"},"checked_in":{"type":"boolean"},"organiser":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"slug":{"type":"string"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"community_joined":{"type":"boolean"}},"required":["id","name","slug","accent_colour","logo_url","community_joined"]},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"type_name":{"type":"string"},"holder_name":{"type":"string"},"qr_token":{"type":"string"},"qr_image_url":{"type":"string","maxLength":2048,"format":"uri"},"manual_code":{"type":"string","minLength":6,"maxLength":6,"description":"The holder's 6-character code for doors and booths without a camera"},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"order_id":{"type":["string","null"],"pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"calendar_url":{"type":"string","maxLength":2048,"format":"uri"},"transferable":{"type":"boolean"}},"required":["id","status","type_name","holder_name","qr_token","qr_image_url","manual_code","checked_in_at","issued_at","order_id","calendar_url","transferable"]}},"exhibitor_mode":{"type":"array","items":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"}},"required":["sponsor_id","name"]},"description":"Exhibitors this person staffs at the event"}},"required":["id","slug","name","kind","status","starts_at","ends_at","timezone","venue","public_url","is_live","checked_in","organiser","tickets","exhibitor_mode"]}},"past":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"status":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"is_live":{"type":"boolean"},"checked_in":{"type":"boolean"},"organiser":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"slug":{"type":"string"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"community_joined":{"type":"boolean"}},"required":["id","name","slug","accent_colour","logo_url","community_joined"]},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"type_name":{"type":"string"},"holder_name":{"type":"string"},"qr_token":{"type":"string"},"qr_image_url":{"type":"string","maxLength":2048,"format":"uri"},"manual_code":{"type":"string","minLength":6,"maxLength":6,"description":"The holder's 6-character code for doors and booths without a camera"},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"order_id":{"type":["string","null"],"pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"calendar_url":{"type":"string","maxLength":2048,"format":"uri"},"transferable":{"type":"boolean"}},"required":["id","status","type_name","holder_name","qr_token","qr_image_url","manual_code","checked_in_at","issued_at","order_id","calendar_url","transferable"]}},"exhibitor_mode":{"type":"array","items":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"}},"required":["sponsor_id","name"]},"description":"Exhibitors this person staffs at the event"}},"required":["id","slug","name","kind","status","starts_at","ends_at","timezone","venue","public_url","is_live","checked_in","organiser","tickets","exhibitor_mode"]}}},"required":["upcoming","past"]},"WalletTicket":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"type_name":{"type":"string"},"holder_name":{"type":"string"},"qr_token":{"type":"string"},"qr_image_url":{"type":"string","maxLength":2048,"format":"uri"},"manual_code":{"type":"string","minLength":6,"maxLength":6,"description":"The holder's 6-character code for doors and booths without a camera"},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"order_id":{"type":["string","null"],"pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"calendar_url":{"type":"string","maxLength":2048,"format":"uri"},"transferable":{"type":"boolean"}},"required":["id","status","type_name","holder_name","qr_token","qr_image_url","manual_code","checked_in_at","issued_at","order_id","calendar_url","transferable"]},"WalletEvent":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"status":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"is_live":{"type":"boolean"},"checked_in":{"type":"boolean"},"organiser":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"slug":{"type":"string"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"community_joined":{"type":"boolean"}},"required":["id","name","slug","accent_colour","logo_url","community_joined"]},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"type_name":{"type":"string"},"holder_name":{"type":"string"},"qr_token":{"type":"string"},"qr_image_url":{"type":"string","maxLength":2048,"format":"uri"},"manual_code":{"type":"string","minLength":6,"maxLength":6,"description":"The holder's 6-character code for doors and booths without a camera"},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"order_id":{"type":["string","null"],"pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"calendar_url":{"type":"string","maxLength":2048,"format":"uri"},"transferable":{"type":"boolean"}},"required":["id","status","type_name","holder_name","qr_token","qr_image_url","manual_code","checked_in_at","issued_at","order_id","calendar_url","transferable"]}},"exhibitor_mode":{"type":"array","items":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"}},"required":["sponsor_id","name"]},"description":"Exhibitors this person staffs at the event"}},"required":["id","slug","name","kind","status","starts_at","ends_at","timezone","venue","public_url","is_live","checked_in","organiser","tickets","exhibitor_mode"]},"MyEvent":{"type":"object","properties":{"event":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"status":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"is_live":{"type":"boolean"},"checked_in":{"type":"boolean"},"organiser":{"type":"object","properties":{"id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"slug":{"type":"string"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"community_joined":{"type":"boolean"}},"required":["id","name","slug","accent_colour","logo_url","community_joined"]},"tickets":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"status":{"type":"string","enum":["valid","refunded","cancelled","transferred"]},"type_name":{"type":"string"},"holder_name":{"type":"string"},"qr_token":{"type":"string"},"qr_image_url":{"type":"string","maxLength":2048,"format":"uri"},"manual_code":{"type":"string","minLength":6,"maxLength":6,"description":"The holder's 6-character code for doors and booths without a camera"},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"issued_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"order_id":{"type":["string","null"],"pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"calendar_url":{"type":"string","maxLength":2048,"format":"uri"},"transferable":{"type":"boolean"}},"required":["id","status","type_name","holder_name","qr_token","qr_image_url","manual_code","checked_in_at","issued_at","order_id","calendar_url","transferable"]}},"exhibitor_mode":{"type":"array","items":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"}},"required":["sponsor_id","name"]},"description":"Exhibitors this person staffs at the event"}},"required":["id","slug","name","kind","status","starts_at","ends_at","timezone","venue","public_url","is_live","checked_in","organiser","tickets","exhibitor_mode"]},"sessions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^ses_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ses_"},"title":{"type":"string"},"description":{"type":["string","null"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"room":{"type":["string","null"]},"track":{"type":["string","null"]},"speakers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^spk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spk_"},"name":{"type":"string"},"headline":{"type":["string","null"]},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["id","name","headline","photo_url"]}},"bookmarked":{"type":"boolean"}},"required":["id","title","description","starts_at","ends_at","room","track","speakers","bookmarked"]}},"zones":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^zon_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed zon_"},"name":{"type":"string"},"booths":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"code":{"type":"string"},"sponsor_id":{"type":["string","null"],"pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"sponsor_name":{"type":["string","null"]}},"required":["id","code","sponsor_id","sponsor_name"]}}},"required":["id","name","booths"]}},"exhibitors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"kind":{"type":"string","enum":["exhibitor","sponsor","both"]},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"description":{"type":["string","null"]},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]}},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"code":{"type":["string","null"]},"url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"redeemed":{"type":"boolean"}},"required":["id","title","code","url","redeemed"]}},"booth_id":{"type":["string","null"],"pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"booth_code":{"type":["string","null"]},"zone":{"type":["string","null"]},"looking_for":{"type":"array","items":{"type":"string"}},"on_quest":{"type":"boolean","description":"Part of a live challenge"},"chat_available":{"type":"boolean"},"tier":{"type":["string","null"]}},"required":["id","kind","name","logo_url","description","links","offers","booth_id","booth_code","zone","looking_for","on_quest","chat_available","tier"]}},"updates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^cmp_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cmp_"},"subject":{"type":"string"},"body_html":{"type":"string"},"sent_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","subject","body_html","sent_at"]}},"challenges":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"name":{"type":"string"},"description":{"type":["string","null"]},"reward":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["prize_draw"]},"prize":{"type":"string","maxLength":200},"winners":{"type":"integer","exclusiveMinimum":0},"draw_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["type","prize","winners"]},{"type":"object","properties":{"type":{"type":"string","enum":["instant"]},"description":{"type":"string","maxLength":200},"first_n":{"type":"integer","exclusiveMinimum":0}},"required":["type","description","first_n"]},{"type":"object","properties":{"type":{"type":"string","enum":["points"]},"levels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"min_points":{"type":"integer"}},"required":["name","min_points"]},"maxItems":10}},"required":["type","levels"]},{"type":"object","properties":{"type":{"type":"string","enum":["badge"]},"name":{"type":"string","maxLength":40},"icon":{"type":"string","maxLength":40}},"required":["type","name","icon"]},{"type":"object","properties":{"type":{"type":"string","enum":["leaderboard"]},"top_n":{"type":"integer","exclusiveMinimum":0},"prizes":{"type":"array","items":{"type":"string"},"maxItems":10}},"required":["type","top_n","prizes"]},{"type":"object","properties":{"type":{"type":"string","enum":["discount_code"]},"description":{"type":"string","maxLength":200},"percent":{"type":"integer","minimum":1,"maximum":100}},"required":["type","description","percent"]},{"type":"object","properties":{"type":{"type":"string","enum":["vip_access"]},"description":{"type":"string","maxLength":200}},"required":["type","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["donation"]},"charity":{"type":"string","maxLength":120},"amount_minor":{"type":"integer","exclusiveMinimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["type","charity","amount_minor","currency"]}]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"status":{"type":"string","enum":["DRAFT","SCHEDULED","LIVE","ENDED"]},"verification":{"type":"string","enum":["staff_scan","self_scan_allowed"]},"progress":{"type":"object","properties":{"challenge_id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"actions":{"type":"array","items":{"type":"object","properties":{"action_id":{"type":"string"},"label":{"type":"string"},"current":{"type":"integer"},"target":{"type":["integer","null"]},"done":{"type":"boolean"}},"required":["action_id","label","current","target","done"]}},"points":{"type":"integer"},"state":{"type":"string","enum":["not_started","in_progress","completed","entered","won","not_won"]},"rank":{"type":["integer","null"]},"completed_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["challenge_id","actions","points","state","rank","completed_at"]},"redemption":{"type":["object","null"],"properties":{"code":{"type":"string"},"redeemed_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["code","redeemed_at"]},"draw":{"type":["object","null"],"properties":{"drawn_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"won":{"type":"boolean"}},"required":["drawn_at","won"]}},"required":["id","name","description","reward","starts_at","ends_at","status","verification","progress","redemption","draw"]}},"privacy":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"in_directory":{"type":"boolean","default":false},"suggest_me":{"type":"boolean","default":false},"allow_exhibitor_scan":{"type":"boolean","default":true}},"required":["event_id"]},"channels":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"title":{"type":"string"},"read_only_after":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"unread":{"type":"integer"}},"required":["id","title","read_only_after","unread"]}},"people":{"type":"object","properties":{"opted_in":{"type":"boolean"},"suggestions":{"type":"integer"},"directory_open":{"type":"boolean"}},"required":["opted_in","suggestions","directory_open"]}},"required":["event","sessions","zones","exhibitors","updates","challenges","privacy","channels","people"]},"MyChallengeDetail":{"type":"object","properties":{"id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"name":{"type":"string"},"description":{"type":["string","null"]},"reward":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["prize_draw"]},"prize":{"type":"string","maxLength":200},"winners":{"type":"integer","exclusiveMinimum":0},"draw_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["type","prize","winners"]},{"type":"object","properties":{"type":{"type":"string","enum":["instant"]},"description":{"type":"string","maxLength":200},"first_n":{"type":"integer","exclusiveMinimum":0}},"required":["type","description","first_n"]},{"type":"object","properties":{"type":{"type":"string","enum":["points"]},"levels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"min_points":{"type":"integer"}},"required":["name","min_points"]},"maxItems":10}},"required":["type","levels"]},{"type":"object","properties":{"type":{"type":"string","enum":["badge"]},"name":{"type":"string","maxLength":40},"icon":{"type":"string","maxLength":40}},"required":["type","name","icon"]},{"type":"object","properties":{"type":{"type":"string","enum":["leaderboard"]},"top_n":{"type":"integer","exclusiveMinimum":0},"prizes":{"type":"array","items":{"type":"string"},"maxItems":10}},"required":["type","top_n","prizes"]},{"type":"object","properties":{"type":{"type":"string","enum":["discount_code"]},"description":{"type":"string","maxLength":200},"percent":{"type":"integer","minimum":1,"maximum":100}},"required":["type","description","percent"]},{"type":"object","properties":{"type":{"type":"string","enum":["vip_access"]},"description":{"type":"string","maxLength":200}},"required":["type","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["donation"]},"charity":{"type":"string","maxLength":120},"amount_minor":{"type":"integer","exclusiveMinimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["type","charity","amount_minor","currency"]}]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"status":{"type":"string","enum":["DRAFT","SCHEDULED","LIVE","ENDED"]},"verification":{"type":"string","enum":["staff_scan","self_scan_allowed"]},"progress":{"type":"object","properties":{"challenge_id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"actions":{"type":"array","items":{"type":"object","properties":{"action_id":{"type":"string"},"label":{"type":"string"},"current":{"type":"integer"},"target":{"type":["integer","null"]},"done":{"type":"boolean"}},"required":["action_id","label","current","target","done"]}},"points":{"type":"integer"},"state":{"type":"string","enum":["not_started","in_progress","completed","entered","won","not_won"]},"rank":{"type":["integer","null"]},"completed_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["challenge_id","actions","points","state","rank","completed_at"]},"redemption":{"type":["object","null"],"properties":{"code":{"type":"string"},"redeemed_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["code","redeemed_at"]},"draw":{"type":["object","null"],"properties":{"drawn_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"won":{"type":"boolean"}},"required":["drawn_at","won"]},"actions":{"type":"array","items":{"type":"object","properties":{"action_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"},"current":{"type":"integer"},"target":{"type":["integer","null"]},"done":{"type":"boolean"},"remaining_booths":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"code":{"type":"string"},"zone":{"type":["string","null"]},"sponsor_name":{"type":["string","null"]}},"required":["id","code","zone","sponsor_name"]}}},"required":["action_id","label","type","current","target","done","remaining_booths"]}},"leaderboard":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"name":{"type":"string"},"points":{"type":"integer"},"me":{"type":"boolean"}},"required":["rank","name","points","me"]}},"my_rank":{"type":["integer","null"]},"rules":{"type":"string"}},"required":["id","name","description","reward","starts_at","ends_at","status","verification","progress","redemption","draw","actions","leaderboard","my_rank","rules"]},"Card":{"type":"object","properties":{"profile":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string","minLength":3,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*$"},"name":{"type":"string","minLength":1,"maxLength":120},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"wants":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["role","industry","company_type","looking_for"]},"value":{"type":"string","maxLength":80}},"required":["kind","value"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"visibility":{"type":"object","properties":{"photo":{"type":"string","enum":["public","attendees","on_connect"]},"headline":{"type":"string","enum":["public","attendees","on_connect"]},"company":{"type":"string","enum":["public","attendees","on_connect"]},"bio":{"type":"string","enum":["public","attendees","on_connect"]},"links":{"type":"string","enum":["public","attendees","on_connect"]},"interests":{"type":"string","enum":["public","attendees","on_connect"]},"looking_for":{"type":"string","enum":["public","attendees","on_connect"]},"email":{"type":"string","enum":["public","attendees","on_connect"]},"phone":{"type":"string","enum":["public","attendees","on_connect"]}}},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["person_id","handle","name","photo_url","cover","headline","company","bio","links","interests","wants","looking_for","visibility","updated_at"]},"email":{"type":"string","maxLength":254,"format":"email"},"phone":{"type":["string","null"],"description":"From the profile; shared with connections and leads according to visibility"},"manual_code":{"type":"string","minLength":6,"maxLength":6},"handle_changeable_after":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"qr":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri","description":"What the QR encodes"},"token":{"type":"string"},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["url","token","expires_at"]},"share_url":{"type":"string","maxLength":2048,"format":"uri"},"messaging":{"type":"string","enum":["connections","attendees","nobody"]},"notification_prefs":{"type":"object","properties":{"messages":{"type":"boolean"},"connections":{"type":"boolean"},"challenges":{"type":"boolean"},"updates":{"type":"boolean"}},"required":["messages","connections","challenges","updates"]},"badges":{"type":"array","items":{"type":"object","properties":{"challenge_id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"name":{"type":"string"},"icon":{"type":["string","null"]},"event_name":{"type":"string"}},"required":["challenge_id","name","icon","event_name"]}},"photo_upload_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["profile","email","phone","manual_code","handle_changeable_after","qr","share_url","messaging","notification_prefs","badges","photo_upload_url"]},"UpdateMeInput":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"handle":{"type":"string","minLength":3,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*$"},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"phone":{"type":["string","null"],"maxLength":40},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string","maxLength":40}}},"maxItems":25,"description":"Topics by id, or free tags by label (up to 5)"},"wants":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["role","industry","company_type"]},"value":{"type":"string","maxLength":80}},"required":["kind","value"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"visibility":{"type":"object","properties":{"photo":{"type":"string","enum":["public","attendees","on_connect"]},"headline":{"type":"string","enum":["public","attendees","on_connect"]},"company":{"type":"string","enum":["public","attendees","on_connect"]},"bio":{"type":"string","enum":["public","attendees","on_connect"]},"links":{"type":"string","enum":["public","attendees","on_connect"]},"interests":{"type":"string","enum":["public","attendees","on_connect"]},"looking_for":{"type":"string","enum":["public","attendees","on_connect"]},"email":{"type":"string","enum":["public","attendees","on_connect"]},"phone":{"type":"string","enum":["public","attendees","on_connect"]}}},"messaging":{"type":"string","enum":["connections","attendees","nobody"]},"notification_prefs":{"type":"object","properties":{"messages":{"type":"boolean"},"connections":{"type":"boolean"},"challenges":{"type":"boolean"},"updates":{"type":"boolean"}}},"photo_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}}},"SponsorMember":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string","maxLength":254,"format":"email"},"name":{"type":["string","null"]},"accepted_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"invite_url":{"type":["string","null"],"maxLength":2048,"format":"uri","description":"Organiser only, until accepted"}},"required":["id","email","name","accepted_at","invite_url"]},"ImportSponsorsInput":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["exhibitor","sponsor","both"]},"tier":{"type":"string","maxLength":60},"booth":{"type":"string","maxLength":12},"zone":{"type":"string","maxLength":80},"description":{"type":"string","maxLength":3000},"website":{"type":"string","maxLength":2048,"format":"uri"},"contact_email":{"type":"string","maxLength":254,"format":"email"},"staff_emails":{"type":"array","items":{"type":"string","maxLength":254,"format":"email"},"maxItems":10},"looking_for":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":8}},"required":["name"]},"minItems":1,"maxItems":500}},"required":["rows"]},"SponsorComparisonRow":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"},"booth_code":{"type":["string","null"]},"tier":{"type":["string","null"]},"reached":{"type":"integer"},"booth_scans":{"type":"integer"},"page_views":{"type":"integer"},"link_clicks":{"type":"integer"},"chats":{"type":"integer"},"offer_redemptions":{"type":"integer"},"leads":{"type":"integer"}},"required":["sponsor_id","name","booth_code","tier","reached","booth_scans","page_views","link_clicks","chats","offer_redemptions","leads"]},"Payment":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":["string","null"],"pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"event_name":{"type":["string","null"]},"modules":{"type":"array","items":{"type":"string"}},"booths":{"type":["integer","null"]},"amount_minor":{"type":"integer"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","paid","failed"]},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"paid_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"receipt_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["id","event_id","event_name","modules","booths","amount_minor","currency","status","created_at","paid_at","receipt_url"]},"TaskComment":{"type":"object","properties":{"id":{"type":"string"},"task_id":{"type":"string","pattern":"^tsk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tsk_"},"author":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"name":{"type":"string"}},"required":["id","name"]},"body":{"type":"string","maxLength":4000},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","task_id","author","body","created_at"]},"CreateTaskInput":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":["string","null"],"maxLength":5000},"assignee_id":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"priority":{"type":"string","enum":["low","normal","urgent"]},"checklist":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":200},"done":{"type":"boolean"}},"required":["text","done"]},"maxItems":30},"column_id":{"type":"string"}},"required":["title"]},"MoveTaskInput":{"type":"object","properties":{"column_id":{"type":"string"},"sort":{"type":"integer"}},"required":["column_id","sort"]},"UpdateTaskInput":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":["string","null"],"maxLength":5000},"assignee_id":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"priority":{"type":"string","enum":["low","normal","urgent"]},"checklist":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":200},"done":{"type":"boolean"}},"required":["text","done"]},"maxItems":30},"column_id":{"type":"string"},"done":{"type":"boolean"}}},"BoardWithMeta":{"type":"object","properties":{"columns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","maxLength":60},"sort":{"type":"integer"},"status":{"type":"string","enum":["todo","doing","done"]}},"required":["id","name","sort","status"]}},"tasks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tsk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tsk_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"column_id":{"type":"string"},"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":["string","null"],"maxLength":5000},"assignee_id":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"priority":{"type":"string","enum":["low","normal","urgent"]},"checklist":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":200},"done":{"type":"boolean"}},"required":["text","done"]},"maxItems":30},"sort":{"type":"integer"},"done_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"comments":{"type":"integer"},"created_by":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"}},"required":["id","event_id","column_id","title","description","assignee_id","due_at","priority","checklist","sort","done_at","comments","created_by"]}},"templates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"tasks":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"offset_days":{"type":"integer","description":"Relative to event start; negative is before"}},"required":["title","offset_days"]}}},"required":["id","name","kind","tasks"]}},"members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"name":{"type":"string"}},"required":["id","name"]}}},"required":["columns","tasks","templates","members"]},"Shift":{"type":"object","properties":{"id":{"type":"string"},"member_id":{"type":"string"},"role":{"type":"string","maxLength":60},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"location":{"type":["string","null"],"maxLength":120}},"required":["id","member_id","role","starts_at","ends_at","location"]},"RunsheetItem":{"type":"object","properties":{"id":{"type":"string"},"time":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"title":{"type":"string","maxLength":200},"owner_id":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"status":{"type":"string","enum":["pending","done","skipped"]}},"required":["id","time","title","owner_id","status"]},"Campaign":{"type":"object","properties":{"id":{"type":"string","pattern":"^cmp_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cmp_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"kind":{"type":"string","enum":["campaign","reminder_day_before","reminder_morning_of","announcement"]},"status":{"type":"string","enum":["draft","scheduled","sending","sent","failed"]},"subject":{"type":"string","maxLength":200},"body_md":{"type":"string","maxLength":20000},"segment":{"type":["object","null"],"properties":{"ticket_type_ids":{"type":"array","items":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"}},"checked_in":{"type":"boolean"},"answer":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}}},"scheduled_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"sent_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"stats":{"type":"object","properties":{"recipients":{"type":"integer"},"sent":{"type":"integer"},"failed":{"type":"integer"}},"required":["recipients","sent","failed"]},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","event_id","kind","status","subject","body_md","segment","scheduled_at","sent_at","stats","created_at","updated_at"]},"CreateCampaignInput":{"type":"object","properties":{"subject":{"type":"string","maxLength":200},"body_md":{"type":"string","maxLength":20000},"segment":{"type":["object","null"],"properties":{"ticket_type_ids":{"type":"array","items":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"}},"checked_in":{"type":"boolean"},"answer":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}}},"scheduled_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["subject","body_md"]},"Survey":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"title":{"type":"string","maxLength":120},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"kind":{"type":"string","enum":["rating","text","choice"]},"label":{"type":"string","minLength":1,"maxLength":200},"options":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":8},"required":{"type":"boolean","default":false}},"required":["id","kind","label"]},"maxItems":10},"send_after_hours":{"type":"integer","minimum":1,"maximum":168},"sent_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"responses":{"type":"integer"},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["event_id","title","questions","send_after_hours","sent_at","responses","updated_at"]},"SurveyResults":{"type":"object","properties":{"responses":{"type":"integer"},"sent_to":{"type":"integer"},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"kind":{"type":"string"},"average":{"type":["number","null"]},"distribution":{"type":"object","additionalProperties":{"type":"integer"}},"answers":{"type":"array","items":{"type":"string"}}},"required":["id","label","kind","average","distribution","answers"]}}},"required":["responses","sent_to","questions"]},"PublicSurvey":{"type":"object","properties":{"event_name":{"type":"string"},"organiser":{"type":"string"},"title":{"type":"string"},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"kind":{"type":"string","enum":["rating","text","choice"]},"label":{"type":"string","minLength":1,"maxLength":200},"options":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":8},"required":{"type":"boolean","default":false}},"required":["id","kind","label"]}},"answered":{"type":"boolean"}},"required":["event_name","organiser","title","questions","answered"]},"EventReport":{"type":"object","properties":{"event":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"status":{"type":"string"}},"required":["id","name","starts_at","ends_at","timezone","status"]},"tickets":{"type":"object","properties":{"sold":{"type":"integer"},"checked_in":{"type":"integer"},"checkin_rate":{"type":"number"},"revenue_net_minor":{"type":"integer"},"currency":{"type":"string"},"by_type":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"sold":{"type":"integer"},"checked_in":{"type":"integer"}},"required":["name","sold","checked_in"]}}},"required":["sold","checked_in","checkin_rate","revenue_net_minor","currency","by_type"]},"people":{"type":"object","properties":{"connections":{"type":"integer"},"suggestions_shown":{"type":"integer"},"suggestions_accepted":{"type":"integer"},"messages":{"type":"integer"}},"required":["connections","suggestions_shown","suggestions_accepted","messages"]},"exhibitors":{"type":"object","properties":{"count":{"type":"integer"},"booth_scans":{"type":"integer"},"leads":{"type":"integer"},"top":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"reached":{"type":"integer"}},"required":["name","reached"]}}},"required":["count","booth_scans","leads","top"]},"challenges":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"participants":{"type":"integer"},"completions":{"type":"integer"}},"required":["name","participants","completions"]}},"survey":{"type":["object","null"],"properties":{"responses":{"type":"integer"},"average_rating":{"type":["number","null"]}},"required":["responses","average_rating"]},"finance":{"type":["object","null"],"properties":{"income_minor":{"type":"integer"},"costs_minor":{"type":"integer"},"result_minor":{"type":"integer"}},"required":["income_minor","costs_minor","result_minor"]},"generated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["event","tickets","people","exhibitors","challenges","survey","finance","generated_at"]},"Channel":{"type":"object","properties":{"id":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"title":{"type":"string"},"members":{"type":"integer"},"messages":{"type":"integer"},"read_only_after":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","event_id","title","members","messages","read_only_after","created_at"]},"ModerationReport":{"type":"object","properties":{"id":{"type":"string"},"reason":{"type":"string"},"status":{"type":"string","enum":["open","resolved","dismissed"]},"reporter":{"type":["object","null"],"properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"}},"required":["person_id","name"]},"target":{"type":["object","null"],"properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"}},"required":["person_id","name"]},"message":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^msg_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed msg_"},"body":{"type":["string","null"]},"conversation_id":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"removed":{"type":"boolean"}},"required":["id","body","conversation_id","removed"]},"event_id":{"type":["string","null"],"pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","reason","status","reporter","target","message","event_id","created_at"]},"AssetView":{"type":"object","properties":{"id":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"kind":{"type":"string","enum":["image","logo","document"]},"url":{"type":"string","maxLength":2048,"format":"uri","description":"CDN URL; append /thumb, /card or /hero for presets"},"width":{"type":["integer","null"]},"height":{"type":["integer","null"]},"bytes":{"type":"integer"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"mime":{"type":"string"}},"required":["id","kind","url","width","height","bytes","created_at","mime"]},"DomainView":{"type":"object","properties":{"id":{"type":"string","pattern":"^dom_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed dom_"},"hostname":{"type":"string","minLength":3,"maxLength":253},"status":{"type":"string","enum":["pending_dns","pending_ssl","active","error"]},"records":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["CNAME","TXT"]},"name":{"type":"string"},"value":{"type":"string"},"status":{"type":"string","enum":["pending","ok"]}},"required":["type","name","value"]}},"canonical":{"type":"boolean"},"source":{"type":"string","enum":["connected","purchased"]},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"checked_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"error":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","hostname","status","records","canonical","source","event_id","checked_at","error","created_at"]},"DomainSearchResult":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"hostname":{"type":"string"},"available":{"type":"boolean"},"price_minor":{"type":["integer","null"]},"currency":{"type":"string"},"note":{"type":["string","null"]}},"required":["hostname","available","price_minor","currency","note"]}},"purchasing_enabled":{"type":"boolean"}},"required":["data","purchasing_enabled"]},"OrgDeletionStatus":{"type":"object","properties":{"requested_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"deletes_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["requested_at","deletes_at"]},"Health":{"type":"object","properties":{"ok":{"type":"boolean"},"db":{"type":"boolean"},"version":{"type":"string"},"time":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["ok","db","version","time"]},"ViewedProfile":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"relationship":{"type":"string","enum":["self","connected","same_event","stranger"]},"connection":{"type":"object","properties":{"id":{"type":["string","null"],"pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["none","pending_out","pending_in","accepted"]}},"required":["id","status"]},"shared_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]}},"can_message":{"type":"boolean"},"blocked":{"type":"boolean"}},"required":["person_id","handle","name","relationship","connection","shared_events","can_message","blocked"]},"ScanResolved":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["person"]},"person":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"relationship":{"type":"string","enum":["self","connected","same_event","stranger"]},"connection":{"type":"object","properties":{"id":{"type":["string","null"],"pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["none","pending_out","pending_in","accepted"]}},"required":["id","status"]},"shared_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]}},"can_message":{"type":"boolean"},"blocked":{"type":"boolean"}},"required":["person_id","handle","name","relationship","connection","shared_events","can_message","blocked"]},"stale":{"type":"boolean","description":"The QR token has expired; ask them to refresh their card"}},"required":["kind","person","stale"]},{"type":"object","properties":{"kind":{"type":"string","enum":["booth"]},"booth":{"type":"object","properties":{"id":{"type":"string","pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"code":{"type":"string"},"zone":{"type":["string","null"]},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}},"required":["id","code","zone","event_id"]},"exhibitor":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"kind":{"type":"string","enum":["exhibitor","sponsor","both"]},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"description":{"type":["string","null"]},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]}},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"code":{"type":["string","null"]},"url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"redeemed":{"type":"boolean"}},"required":["id","title","code","url","redeemed"]}},"booth_id":{"type":["string","null"],"pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"booth_code":{"type":["string","null"]},"zone":{"type":["string","null"]},"looking_for":{"type":"array","items":{"type":"string"}},"on_quest":{"type":"boolean","description":"Part of a live challenge"},"chat_available":{"type":"boolean"},"tier":{"type":["string","null"]}},"required":["id","kind","name","logo_url","description","links","offers","booth_id","booth_code","zone","looking_for","on_quest","chat_available","tier"]},"visit":{"type":"object","properties":{"recorded":{"type":"boolean"},"message":{"type":["string","null"]}},"required":["recorded","message"]}},"required":["kind","booth","exhibitor","visit"]},{"type":"object","properties":{"kind":{"type":"string","enum":["ticket"]},"ticket":{"type":"object","properties":{"id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"holder_name":{"type":"string"},"type_name":{"type":"string"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}},"required":["id","holder_name","type_name","event_id"]},"person":{"type":["object","null"],"properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"relationship":{"type":"string","enum":["self","connected","same_event","stranger"]},"connection":{"type":"object","properties":{"id":{"type":["string","null"],"pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["none","pending_out","pending_in","accepted"]}},"required":["id","status"]},"shared_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]}},"can_message":{"type":"boolean"},"blocked":{"type":"boolean"}},"required":["person_id","handle","name","relationship","connection","shared_events","can_message","blocked"]}},"required":["kind","ticket","person"]}]},"MyConnection":{"type":"object","properties":{"id":{"type":"string","pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["pending","accepted","declined","removed"]},"requested_by_me":{"type":"boolean"},"person":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"relationship":{"type":"string","enum":["self","connected","same_event","stranger"]},"connection":{"type":"object","properties":{"id":{"type":["string","null"],"pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["none","pending_out","pending_in","accepted"]}},"required":["id","status"]},"shared_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]}},"can_message":{"type":"boolean"},"blocked":{"type":"boolean"}},"required":["person_id","handle","name","relationship","connection","shared_events","can_message","blocked"]},"event":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]},"met_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"note":{"type":["string","null"],"maxLength":500,"description":"Private to the viewer"},"their_note":{"type":["string","null"],"maxLength":500,"description":"The note they sent with the request"},"conversation_id":{"type":["string","null"],"pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"}},"required":["id","status","requested_by_me","person","event","met_at","note","their_note","conversation_id"]},"MySuggestion":{"type":"object","properties":{"person":{"type":["object","null"],"properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"relationship":{"type":"string","enum":["self","connected","same_event","stranger"]},"connection":{"type":"object","properties":{"id":{"type":["string","null"],"pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["none","pending_out","pending_in","accepted"]}},"required":["id","status"]},"shared_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]}},"can_message":{"type":"boolean"},"blocked":{"type":"boolean"}},"required":["person_id","handle","name","relationship","connection","shared_events","can_message","blocked"]},"exhibitor":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"kind":{"type":"string","enum":["exhibitor","sponsor","both"]},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"description":{"type":["string","null"]},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]}},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"code":{"type":["string","null"]},"url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"redeemed":{"type":"boolean"}},"required":["id","title","code","url","redeemed"]}},"booth_id":{"type":["string","null"],"pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"booth_code":{"type":["string","null"]},"zone":{"type":["string","null"]},"looking_for":{"type":"array","items":{"type":"string"}},"on_quest":{"type":"boolean","description":"Part of a live challenge"},"chat_available":{"type":"boolean"},"tier":{"type":["string","null"]}},"required":["id","kind","name","logo_url","description","links","offers","booth_id","booth_code","zone","looking_for","on_quest","chat_available","tier"]},"score":{"type":"number"},"reasons":{"type":"array","items":{"type":"string"},"minItems":1},"computed_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["person","exhibitor","score","reasons","computed_at"]},"DirectoryEntry":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]}},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"relationship":{"type":"string","enum":["self","connected","same_event","stranger"]},"connection":{"type":"object","properties":{"id":{"type":["string","null"],"pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["none","pending_out","pending_in","accepted"]}},"required":["id","status"]},"shared_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]}},"can_message":{"type":"boolean"},"blocked":{"type":"boolean"}},"required":["person_id","handle","name","relationship","connection","shared_events","can_message","blocked"]},"ConversationSummary":{"type":"object","properties":{"id":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"kind":{"type":"string","enum":["direct","event_channel","exhibitor"]},"title":{"type":"string"},"event":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]},"sponsor_id":{"type":["string","null"],"pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"status":{"type":"string","enum":["open","pending","declined"]},"is_request":{"type":"boolean","description":"Waiting for the viewer to accept or decline"},"requested_by_me":{"type":"boolean"},"read_only_after":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"last_message":{"type":["object","null"],"properties":{"body":{"type":["string","null"]},"sender_name":{"type":"string"},"at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["body","sender_name","at"]},"unread":{"type":"integer"},"members":{"type":"array","items":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"handle":{"type":["string","null"]}},"required":["person_id","name","photo_url","handle"]}},"muted_until":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["id","kind","title","event","sponsor_id","status","is_request","requested_by_me","read_only_after","last_message","unread","members","muted_until"]},"ChatMessage":{"type":"object","properties":{"id":{"type":"string","pattern":"^msg_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed msg_"},"conversation_id":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"sender":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["person_id","name","photo_url"]},"body":{"type":["string","null"]},"image_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"reply_to":{"type":["string","null"],"pattern":"^msg_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed msg_"},"removed":{"type":"boolean"},"mine":{"type":"boolean"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"read_by_others":{"type":"boolean"}},"required":["id","conversation_id","sender","body","image_url","reply_to","removed","mine","created_at","read_by_others"]},"Notification":{"type":"object","properties":{"id":{"type":"string","pattern":"^ntf_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ntf_"},"kind":{"type":"string"},"title":{"type":"string"},"body":{"type":["string","null"]},"link":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}},"read_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"actor":{"type":["object","null"],"properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["person_id","name","photo_url"]}},"required":["id","kind","title","body","link","data","read_at","created_at","actor"]},"LeadRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"^ldr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ldr_"},"sponsor":{"type":"object","properties":{"id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["id","name","logo_url"]},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"person":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"headline":{"type":["string","null"]},"company":{"type":["string","null"]}},"required":["person_id","name","headline","company"]},"status":{"type":"string","enum":["pending","accepted","declined","expired"]},"fields":{"type":"array","items":{"type":"string"},"description":"What accepting shares: name, headline, company, email, phone, links"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","sponsor","event_id","person","status","fields","created_at","expires_at"]},"ExhibitorMe":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"event":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"is_live":{"type":"boolean"}},"required":["id","name","starts_at","ends_at","timezone","is_live"]},"booth_code":{"type":["string","null"]},"lead_capture_enabled":{"type":"boolean"},"stats":{"type":"object","properties":{"visits_today":{"type":"integer"},"leads":{"type":"integer"},"redemptions":{"type":"integer"},"pending_requests":{"type":"integer"}},"required":["visits_today","leads","redemptions","pending_requests"]}},"required":["sponsor_id","name","logo_url","event","booth_code","lead_capture_enabled","stats"]},"ExhibitorScanResult":{"type":"object","properties":{"request":{"type":["object","null"],"properties":{"id":{"type":"string","pattern":"^ldr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ldr_"},"sponsor":{"type":"object","properties":{"id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["id","name","logo_url"]},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"person":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"headline":{"type":["string","null"]},"company":{"type":["string","null"]}},"required":["person_id","name","headline","company"]},"status":{"type":"string","enum":["pending","accepted","declined","expired"]},"fields":{"type":"array","items":{"type":"string"},"description":"What accepting shares: name, headline, company, email, phone, links"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","sponsor","event_id","person","status","fields","created_at","expires_at"]},"person":{"type":["object","null"],"properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"headline":{"type":["string","null"]},"company":{"type":["string","null"]}},"required":["person_id","name","headline","company"]},"existing_lead":{"type":"boolean"},"visit_recorded":{"type":"boolean"},"message":{"type":["string","null"]}},"required":["request","person","existing_lead","visit_recorded","message"]},"ExhibitorLead":{"type":"object","properties":{"id":{"type":"string","pattern":"^led_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed led_"},"person":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"headline":{"type":["string","null"]},"company":{"type":["string","null"]}},"required":["person_id","name","headline","company"]},"shared":{"type":"object","additionalProperties":{}},"consent_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"rating":{"type":["string","null"],"enum":["hot","warm","cold"]},"notes":{"type":["string","null"]},"captured_by":{"type":["string","null"]},"captured_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","person","shared","consent_at","rating","notes","captured_by","captured_at"]},"MyCommunity":{"type":"object","properties":{"id":{"type":"string"},"org_id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"member_count":{"type":"integer"},"joined":{"type":"boolean"},"slug":{"type":"string"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upcoming_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"name":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"has_free_ticket":{"type":"boolean"},"registered":{"type":"boolean"}},"required":["id","slug","name","starts_at","public_url","has_free_ticket","registered"]}},"announcements":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^ann_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ann_"},"title":{"type":"string"},"body_html":{"type":"string"},"published_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","title","body_html","published_at"]}},"past_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","name","starts_at"]}},"invited":{"type":"boolean","description":"The person attended one of the organiser’s events but has not joined"}},"required":["id","org_id","name","logo_url","member_count","joined","slug","accent_colour","upcoming_events","announcements","past_events","invited"]},"DeletionStatus":{"type":"object","properties":{"requested_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"deletes_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["requested_at","deletes_at"]},"PublicEvent":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"org_id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"slug":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"name":{"type":"string","minLength":1,"maxLength":160},"description":{"type":["string","null"],"maxLength":5000},"kind":{"type":"string","enum":["trade_show","conference","meetup","workshop","festival","other"]},"status":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string","minLength":1,"description":"IANA time zone, e.g. Europe/London"},"venue":{"type":["object","null"],"properties":{"name":{"type":"string","maxLength":160},"address":{"type":"string","maxLength":400},"city":{"type":"string","maxLength":120},"country":{"type":"string","minLength":2,"maxLength":2},"lat":{"type":"number"},"lng":{"type":"number"},"online_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["name"]},"capacity":{"type":["integer","null"],"exclusiveMinimum":0},"unlisted":{"type":"boolean","description":"Not in sitemaps or search; reachable by link"},"fee_payer":{"type":"string","enum":["buyer","organiser"]},"currency":{"type":"string","minLength":3,"maxLength":3},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"published_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"canonical_url":{"type":"string","maxLength":2048,"format":"uri","description":"https://<custom domain>/ when the event has an active canonical domain, else public_url"},"custom_domain":{"type":["string","null"]}},"required":["id","org_id","slug","name","description","kind","status","starts_at","ends_at","timezone","venue","capacity","unlisted","fee_payer","currency","public_url","published_at","created_at","canonical_url","custom_domain"]},"PublicEventSummary":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"name":{"type":"string"},"kind":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"timezone":{"type":"string"},"venue":{},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"canonical_url":{"type":"string","maxLength":2048,"format":"uri"},"custom_domain":{"type":["string","null"]},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","slug","name","kind","starts_at","ends_at","timezone","public_url","canonical_url","custom_domain","updated_at"]},"BlockedPerson":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"name":{"type":"string"},"handle":{"type":["string","null"]},"blocked_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["person_id","name","handle","blocked_at"]},"IntegrationProviders":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"provider":{"type":"string","enum":["eventbrite","meetup"]},"label":{"type":"string"},"available":{"type":"boolean","description":"False when the platform app is not configured on this deployment; hide the feature"}},"required":["provider","label","available"]}}},"required":["data"]},"ConnectedAccount":{"type":"object","properties":{"id":{"type":"string","pattern":"^ica_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ica_"},"provider":{"type":"string","enum":["eventbrite","meetup"]},"external_name":{"type":["string","null"]},"org_id":{"type":["string","null"],"pattern":"^org_[A-Za-z0-9]{12,32}$","description":"The Konecto organisation it was connected from, if any"},"status":{"type":"string","enum":["active","error","revoked"]},"sources":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Discovery source key, eventbrite:<organisation id> or meetup:<group>"},"name":{"type":"string"},"events":{"type":"integer","description":"Upcoming events staged from this organisation or group"},"listed":{"type":"integer","description":"Live Discovery listings from it"}},"required":["key","name","events","listed"]}},"last_synced_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"last_sync_status":{"type":["string","null"],"enum":["ok","partial","failed"]},"last_error":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","provider","external_name","org_id","status","sources","last_synced_at","last_sync_status","last_error","created_at"]},"ConnectIntegrationInput":{"type":"object","properties":{"return_to":{"type":"string","enum":["organiser","discovery"],"default":"organiser","description":"Which app the browser comes back to"},"next":{"type":"string","maxLength":300,"description":"Path in that app to return to"}}},"ConnectIntegrationResult":{"type":"object","properties":{"authorize_url":{"type":"string","maxLength":2048,"format":"uri","description":"Open in the top-level window; it sets a short-lived cookie and continues to the platform"}},"required":["authorize_url"]},"IntegrationSyncResult":{"type":"object","properties":{"account":{"type":"object","properties":{"id":{"type":"string","pattern":"^ica_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ica_"},"provider":{"type":"string","enum":["eventbrite","meetup"]},"external_name":{"type":["string","null"]},"org_id":{"type":["string","null"],"pattern":"^org_[A-Za-z0-9]{12,32}$","description":"The Konecto organisation it was connected from, if any"},"status":{"type":"string","enum":["active","error","revoked"]},"sources":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","description":"Discovery source key, eventbrite:<organisation id> or meetup:<group>"},"name":{"type":"string"},"events":{"type":"integer","description":"Upcoming events staged from this organisation or group"},"listed":{"type":"integer","description":"Live Discovery listings from it"}},"required":["key","name","events","listed"]}},"last_synced_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"last_sync_status":{"type":["string","null"],"enum":["ok","partial","failed"]},"last_error":{"type":["string","null"]},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","provider","external_name","org_id","status","sources","last_synced_at","last_sync_status","last_error","created_at"]},"staged":{"type":"integer"},"removed":{"type":"integer"},"ingest":{"type":"string","enum":["ran","queued","unavailable"],"description":"ran: listings updated now; queued: on the next ten-minute tick"}},"required":["account","staged","removed","ingest"]},"ExternalEvent":{"type":"object","properties":{"external_id":{"type":"string"},"source_key":{"type":"string"},"title":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"url":{"type":"string","maxLength":2048,"format":"uri"},"venue_name":{"type":["string","null"]},"is_online":{"type":"boolean"},"is_free":{"type":["boolean","null"]},"status":{"type":"string","enum":["scheduled","cancelled","postponed","soldout","unknown"]},"listing_url":{"type":["string","null"],"description":"Its Discovery listing, once ingested"},"konecto_event_id":{"type":["string","null"],"pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Set once copied into Konecto"}},"required":["external_id","source_key","title","starts_at","ends_at","url","venue_name","is_online","is_free","status","listing_url","konecto_event_id"]},"CopyExternalEventResult":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"ticket_type":{"type":"string","enum":["free","paid"],"description":"General admission: free until the organisation can take payments, then at the original lowest price"},"paid_on_platform":{"type":"boolean","description":"The original sells paid tickets: add paid ticket types once payments are on"}},"required":["event_id","slug","ticket_type","paid_on_platform"]},"OrgAttendeeHit":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"event_name":{"type":"string"},"timezone":{"type":"string"},"attendee_id":{"type":"string","pattern":"^att_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed att_"},"name":{"type":"string"},"email":{"type":"string","maxLength":254,"format":"email"},"ticket_type":{"type":["string","null"]},"checked_in_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"registered_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["event_id","event_name","timezone","attendee_id","name","email","ticket_type","checked_in_at","registered_at"]},"Confirmation":{"type":"object","properties":{"token":{"type":"string"},"action":{"type":"string"},"summary":{"type":"string"},"status":{"type":"string","enum":["pending","confirmed","declined","expired"]},"request":{"type":"object","properties":{"method":{"type":"string"},"path":{"type":"string"},"body":{},"tool":{"type":["string","null"]}},"required":["method","path","tool"]},"requested_by":{"type":"string"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"confirmed_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"declined_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"result":{}},"required":["token","action","summary","status","request","requested_by","created_at","expires_at","confirmed_at","declined_at"]}},"parameters":{}},"paths":{"/v1/public/events":{"get":{"operationId":"listPublicEvents","summary":"Published, listed events (newest first)","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"}],"responses":{"200":{"description":"Events","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PublicEventSummary"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/events/{slug}":{"get":{"operationId":"getPublicEvent","summary":"Get a published event with its page configuration, agenda, speakers and exhibitors","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Published event","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicEvent"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/events/{slug}/canonical":{"get":{"operationId":"getPublicEventCanonical","summary":"Where the event page canonically lives (custom domain or konec.to)","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Canonical address","content":{"application/json":{"schema":{"type":"object","properties":{"slug":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"canonical_url":{"type":"string","maxLength":2048,"format":"uri"},"custom_domain":{"type":["string","null"]}},"required":["slug","canonical_url","custom_domain"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/people/{handle}":{"get":{"operationId":"getPublicPerson","summary":"A person's card as a signed-out visitor sees it (public fields only)","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"handle","in":"path"}],"responses":{"200":{"description":"Public card","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewedProfile"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/events/{slug}/ticket-types":{"get":{"operationId":"listPublicTicketTypes","summary":"List ticket types with live availability","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"required":true,"name":"slug","in":"path"},{"schema":{"type":"string","description":"Hidden ticket token"},"required":false,"description":"Hidden ticket token","name":"t","in":"query"}],"responses":{"200":{"description":"Ticket types with live availability","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PublicTicketType"}}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/checkout/sessions":{"post":{"operationId":"createCheckoutSession","summary":"Start a checkout","description":"Reserves seats (35 minutes, longer than the Stripe session). Paid orders return a Stripe Checkout URL; free orders complete immediately when buyer_name, buyer_email and terms_accepted are given. Free session ids look like free_<22 base62>_<40 hex> and cannot be derived from an order id.","tags":["Public"],"security":[{"publishableKey":[]},{}],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/CreateCheckoutSessionInput"},{"type":"object","properties":{"buyer_name":{"type":"string"},"buyer_email":{"type":"string","maxLength":254,"format":"email"}}}]}}}},"responses":{"201":{"description":"Checkout session","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSession"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/checkout/sessions/{id}/complete":{"post":{"operationId":"completeFreeCheckout","summary":"Finish a free registration with the buyer details and consent","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"buyer_name":{"type":"string"},"buyer_email":{"type":"string","maxLength":254,"format":"email"},"terms_accepted":{"type":"boolean","enum":[true],"description":"Required: the buyer accepted the terms and privacy notice"},"answers":{"type":"object","additionalProperties":{}},"marketing":{"type":"boolean"}},"required":["buyer_name","buyer_email","terms_accepted"]}}}},"responses":{"200":{"description":"Paid status with tickets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionStatus"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/checkout/sessions/{id}":{"get":{"operationId":"getCheckoutSession","summary":"Checkout status and tickets once paid","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"}],"responses":{"200":{"description":"Status and tickets once paid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckoutSessionStatus"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/marketing/subscribe":{"post":{"operationId":"marketingSubscribe","summary":"Join a Konecto email list (launch updates or Discovery weekly picks); double opt-in","description":"Always answers 202 for a well-formed request, whether or not the address is already on the list, so addresses cannot be probed. Nothing is sent to the list until the emailed confirmation link is opened. consent_text must be the wording shown next to the form (MARKETING_CONSENT). Rate limited per address and per IP.","tags":["Public"],"security":[{"publishableKey":[]},{}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"list":{"type":"string","enum":["organiser_updates","discovery_london_weekly"]},"consent":{"type":"boolean","enum":[true],"description":"The person ticked or pressed the button next to the consent text"},"consent_text":{"type":"string","minLength":10,"maxLength":1000},"page":{"type":"string","maxLength":500,"description":"The page the form was on"},"source":{"type":"object","properties":{"utm_source":{"type":"string","maxLength":200},"utm_medium":{"type":"string","maxLength":200},"utm_campaign":{"type":"string","maxLength":200},"utm_term":{"type":"string","maxLength":200},"utm_content":{"type":"string","maxLength":200},"ref":{"type":"string","maxLength":200,"description":"Referring host of the first visit"},"landing":{"type":"string","maxLength":200,"description":"Path of the first page seen"},"first_seen":{"type":"string","maxLength":40},"cta":{"type":"string","maxLength":200,"description":"Which call to action was clicked"},"site":{"type":"string","maxLength":40}}},"website":{"type":"string","maxLength":200}},"required":["email","list","consent","consent_text"]}}}},"responses":{"202":{"description":"Confirmation email queued","content":{"application/json":{"schema":{"type":"object","properties":{"received":{"type":"boolean","enum":[true]},"confirmation":{"type":"string","enum":["email_sent"]}},"required":["received","confirmation"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/marketing/plan-requests":{"post":{"operationId":"createPlanRequest","summary":"Ask for an organisation-wide plan or a quote for an event over 1,000 attendees","tags":["Public"],"security":[{"publishableKey":[]},{}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["organisation_plan","large_event"]},"name":{"type":"string","minLength":1,"maxLength":120},"email":{"type":"string","maxLength":254,"format":"email"},"organisation":{"type":"string","maxLength":160},"attendees":{"type":"integer","minimum":0,"maximum":1000000},"events_per_year":{"type":"integer","minimum":0,"maximum":10000},"message":{"type":"string","maxLength":4000},"consent_text":{"type":"string","minLength":10,"maxLength":1000},"page":{"type":"string","maxLength":500},"source":{"type":"object","properties":{"utm_source":{"type":"string","maxLength":200},"utm_medium":{"type":"string","maxLength":200},"utm_campaign":{"type":"string","maxLength":200},"utm_term":{"type":"string","maxLength":200},"utm_content":{"type":"string","maxLength":200},"ref":{"type":"string","maxLength":200,"description":"Referring host of the first visit"},"landing":{"type":"string","maxLength":200,"description":"Path of the first page seen"},"first_seen":{"type":"string","maxLength":40},"cta":{"type":"string","maxLength":200,"description":"Which call to action was clicked"},"site":{"type":"string","maxLength":40}}},"website":{"type":"string","maxLength":200}},"required":["kind","name","email","consent_text"]}}}},"responses":{"202":{"description":"Stored; Konecto replies by email within one working day","content":{"application/json":{"schema":{"type":"object","properties":{"received":{"type":"boolean","enum":[true]}},"required":["received"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/marketing/confirm":{"get":{"operationId":"marketingConfirm","summary":"The confirmation link from the email; redirects to the list page","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"query"}],"responses":{"302":{"description":"Redirect to konec.to/updates or discovery.konec.to/picks with ?status="},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/marketing/unsubscribe":{"get":{"operationId":"marketingUnsubscribe","summary":"Unsubscribe link from any list email; redirects to the list page","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"query"}],"responses":{"302":{"description":"Redirect with ?status=unsubscribed"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"marketingUnsubscribeOneClick","summary":"One-click unsubscribe (RFC 8058 List-Unsubscribe-Post)","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"query"}],"responses":{"200":{"description":"Unsubscribed","content":{"application/json":{"schema":{"type":"object","properties":{"unsubscribed":{"type":"boolean","enum":[true]}},"required":["unsubscribed"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/interactions":{"post":{"operationId":"ingestInteractions","summary":"Record page views, checkout starts and sponsor clicks from an event site","tags":["Public"],"security":[{"publishableKey":[]},{}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestInteractionsInput"}}}},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"type":"object","properties":{"accepted":{"type":"integer"}},"required":["accepted"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me":{"get":{"operationId":"whoami","summary":"Who is calling, which organisation is active and which scopes apply","tags":["Organisations"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Caller identity","content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string"},"active_org_id":{"type":["string","null"],"pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"role":{"type":["string","null"],"enum":["OWNER","ADMIN","EDITOR","DOOR_STAFF"]},"scopes":{"type":"array","items":{"type":"string","enum":["events:read","events:write","orders:read","orders:refund","pages:write","domains:buy","finance:read","finance:write","tasks:read","tasks:write","analytics:read","challenges:write","sponsors:write"]}},"organisations":{"type":"array","items":{"$ref":"#/components/schemas/Organisation"}}},"required":["kind","active_org_id","organisations"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations":{"get":{"operationId":"listOrganisations","summary":"Organisations the caller belongs to","tags":["Organisations"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Organisations","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Organisation"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createOrganisation","summary":"Create an organisation (signed-in users only)","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrgInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organisation"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}":{"get":{"operationId":"getOrganisation","summary":"Get an organisation","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"}],"responses":{"200":{"description":"Organisation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organisation"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateOrganisation","summary":"Update organisation settings","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrgInput"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Organisation"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/activity":{"get":{"operationId":"listActivity","summary":"Recent audit activity (who did what, through the app, API or an assistant)","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"}],"responses":{"200":{"description":"Activity","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"action":{"type":"string"},"target":{"type":["string","null"]},"via":{"type":"string","enum":["app","api","mcp","system"]},"tool":{"type":["string","null"]},"actor":{"type":"string"},"diff":{},"at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","action","target","via","tool","actor","at"]}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/active-organisation":{"post":{"operationId":"setActiveOrganisation","summary":"Remember the organisation the user is working in","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"org_id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"}},"required":["org_id"]}}}},"responses":{"200":{"description":"Saved","content":{"application/json":{"schema":{"type":"object","properties":{"active_org_id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"}},"required":["active_org_id"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/members":{"get":{"operationId":"listMembers","summary":"List team members (free, unlimited)","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"}],"responses":{"200":{"description":"Members","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrgMember"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"inviteMember","summary":"Invite a team member with a role and event access","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InviteMemberInput"}}}},"responses":{"201":{"description":"Invited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgMember"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/members/{memberId}":{"patch":{"operationId":"updateMember","summary":"Change a member role or per-event access","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"memberId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"type":"string","enum":["OWNER","ADMIN","EDITOR","DOOR_STAFF"]},"event_access":{"anyOf":[{"type":"string","enum":["all"]},{"type":"array","items":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}}]}}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgMember"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"removeMember","summary":"Remove a team member","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"memberId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Removed"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/api-keys":{"get":{"operationId":"listApiKeys","summary":"List API keys (prefixes only)","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"}],"responses":{"200":{"description":"Keys","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createApiKey","summary":"Create a publishable or secret key; the secret is shown once","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateApiKeyInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreated"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/api-keys/{keyId}":{"patch":{"operationId":"updateApiKey","summary":"Rename a key or change its allowed origins and scopes","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^key_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed key_"},"required":true,"description":"Public id, prefixed key_","name":"keyId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"allowed_origins":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"}},"scopes":{"type":"array","items":{"type":"string","enum":["events:read","events:write","orders:read","orders:refund","pages:write","domains:buy","finance:read","finance:write","tasks:read","tasks:write","analytics:read","challenges:write","sponsors:write"]}}}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"revokeApiKey","summary":"Revoke a key","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^key_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed key_"},"required":true,"description":"Public id, prefixed key_","name":"keyId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Revoked"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/stripe/onboard":{"post":{"operationId":"stripeOnboard","summary":"Start or resume Stripe Connect onboarding","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"201":{"description":"Onboarding link","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["url","expires_at"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/stripe/status":{"get":{"operationId":"stripeStatus","summary":"Whether the organisation can take card payments","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"}],"responses":{"200":{"description":"Status","content":{"application/json":{"schema":{"type":"object","properties":{"connected":{"type":"boolean"},"charges_enabled":{"type":"boolean"},"payouts_enabled":{"type":"boolean"},"details_submitted":{"type":"boolean"},"payments_available":{"type":"boolean","description":"False until Konecto switches card payments on for this deployment; free events work either way"}},"required":["connected","charges_enabled","payouts_enabled","details_submitted","payments_available"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events":{"get":{"operationId":"listEvents","summary":"List events","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","enum":["DRAFT","PUBLISHED","LIVE","ENDED","ARCHIVED"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string"},"required":false,"name":"q","in":"query"}],"responses":{"200":{"description":"Events","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createEvent","summary":"Create a draft event","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateEventInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}":{"get":{"operationId":"getEvent","summary":"Get an event with ticket types, sessions, speakers, zones and booths","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Event","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"object","properties":{"ticket_types":{"type":"array","items":{"$ref":"#/components/schemas/TicketType"}},"sessions":{"type":"array","items":{"$ref":"#/components/schemas/Session"}},"speakers":{"type":"array","items":{"$ref":"#/components/schemas/Speaker"}},"zones":{"type":"array","items":{"$ref":"#/components/schemas/Zone"}},"booths":{"type":"array","items":{"$ref":"#/components/schemas/Booth"}}},"required":["ticket_types","sessions","speakers","zones","booths"]}]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateEvent","summary":"Update event details","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEventInput"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteEvent","summary":"Delete a draft event, or archive one with sales","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted or archived"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/publish":{"post":{"operationId":"publishEvent","summary":"Publish the event and its page","description":"Events with paid ticket types need a connected Stripe account first (409 payments_not_connected).","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Published","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/unpublish":{"post":{"operationId":"unpublishEvent","summary":"Take the event back to draft","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Unpublished","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/fees/preview":{"get":{"operationId":"previewFees","summary":"What the buyer pays and the organiser receives for one ticket price","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":["integer","null"],"minimum":0},"required":false,"name":"price_minor","in":"query"},{"schema":{"type":"string","enum":["buyer","organiser"]},"required":false,"name":"fee_payer","in":"query"},{"schema":{"type":"string","minLength":3,"maxLength":3,"description":"ISO 4217; the fixed part of the fee depends on it. Defaults to GBP."},"required":false,"description":"ISO 4217; the fixed part of the fee depends on it. Defaults to GBP.","name":"currency","in":"query"}],"responses":{"200":{"description":"Preview","content":{"application/json":{"schema":{"type":"object","properties":{"price_minor":{"type":"integer"},"currency":{"type":"string"},"fee_minor":{"type":"integer"},"buyer_pays_minor":{"type":"integer"},"organiser_receives_minor":{"type":"integer"},"rate":{"type":"string"}},"required":["price_minor","currency","fee_minor","buyer_pays_minor","organiser_receives_minor","rate"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/duplicate":{"post":{"operationId":"duplicateEvent","summary":"Copy an event (tickets, page, agenda, speakers, zones, booths) to new dates","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["starts_at","ends_at"]}}}},"responses":{"201":{"description":"The copy (draft)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/sessions":{"get":{"operationId":"listSessions","summary":"List agenda sessions","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Sessions","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Session"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createSession","summary":"Add a session to the agenda","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSessionInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/sessions/{sessionId}":{"patch":{"operationId":"updateSession","summary":"Update a session","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ses_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ses_"},"required":true,"description":"Public id, prefixed ses_","name":"sessionId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"room":{"type":["string","null"],"maxLength":80},"track":{"type":["string","null"],"maxLength":80},"speaker_ids":{"type":"array","items":{"type":"string","pattern":"^spk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spk_"}},"sponsor_id":{"type":["string","null"],"pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"description":{"type":["string","null"],"maxLength":3000}}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Session"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteSession","summary":"Delete a session","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ses_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ses_"},"required":true,"description":"Public id, prefixed ses_","name":"sessionId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/speakers":{"get":{"operationId":"listSpeakers","summary":"List speakers","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Speakers","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Speaker"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createSpeaker","summary":"Add a speaker","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSpeakerInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Speaker"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/zones":{"get":{"operationId":"listZones","summary":"List floor zones","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Zones","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Zone"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createZone","summary":"Add a floor zone","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":80},"sort":{"type":"integer"}},"required":["name"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Zone"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/booths":{"get":{"operationId":"listBooths","summary":"List booths with their QR URLs","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Booths","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Booth"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createBooth","summary":"Add a booth with a printed code","tags":["Events"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBoothInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Booth"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/ticket-types":{"get":{"operationId":"listTicketTypes","summary":"List ticket types with sold and held counts","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Ticket types","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TicketType"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createTicketType","summary":"Add a free or paid ticket type","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTicketTypeInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketType"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/ticket-types/{ttId}":{"patch":{"operationId":"updateTicketType","summary":"Change a ticket type; capacity cannot go below sold plus pending","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"required":true,"description":"Public id, prefixed tt_","name":"ttId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTicketTypeInput"}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TicketType"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteTicketType","summary":"Delete a ticket type without sales","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"required":true,"description":"Public id, prefixed tt_","name":"ttId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/promo-codes":{"get":{"operationId":"listPromoCodes","summary":"List promo codes","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Promo codes","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PromoCode"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createPromoCode","summary":"Add a percentage or fixed-amount promo code","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePromoCodeInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PromoCode"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/waitlist":{"get":{"operationId":"listWaitlist","summary":"List waitlist entries","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Waitlist","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string","maxLength":254,"format":"email"},"name":{"type":["string","null"]},"ticket_type":{"type":"string"},"notified_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","email","name","ticket_type","notified_at","created_at"]}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"addToWaitlist","summary":"Add someone to a ticket type waitlist","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticket_type":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"email":{"type":"string","maxLength":254,"format":"email"},"name":{"type":"string"}},"required":["ticket_type","email"]}}}},"responses":{"201":{"description":"Added","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string","maxLength":254,"format":"email"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","email","created_at"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/orders":{"get":{"operationId":"listOrders","summary":"List orders (paid by default)","tags":["Orders"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","enum":["PENDING","PAID","CANCELLED","REFUNDED","PARTIALLY_REFUNDED"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string"},"required":false,"name":"email","in":"query"},{"schema":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"required":false,"description":"Public id, prefixed tt_","name":"ticket_type","in":"query"}],"responses":{"200":{"description":"Orders","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Order"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/orders/{orderId}":{"get":{"operationId":"getOrder","summary":"Get an order with its tickets","tags":["Orders"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"required":true,"description":"Public id, prefixed ord_","name":"orderId","in":"path"}],"responses":{"200":{"description":"Order","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/orders/{orderId}/refund":{"post":{"operationId":"refundOrder","summary":"Refund an order fully or partly (Owner/Admin, orders:refund)","tags":["Orders"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ord_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ord_"},"required":true,"description":"Public id, prefixed ord_","name":"orderId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RefundInput"}}}},"responses":{"200":{"description":"Refunded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Order"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/attendees":{"get":{"operationId":"listAttendees","summary":"List attendees; Accept: text/csv or ?format=csv exports","tags":["Attendees"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","maxLength":120},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"required":false,"description":"Public id, prefixed tt_","name":"ticket_type","in":"query"},{"schema":{"anyOf":[{"type":"boolean"},{"type":"string","enum":["true","false"]}],"description":"true: checked in; false: not yet (query strings send the words true/false)"},"required":false,"description":"true: checked in; false: not yet (query strings send the words true/false)","name":"checked_in","in":"query"},{"schema":{"type":"string","enum":["json","csv"]},"required":false,"name":"format","in":"query"}],"responses":{"200":{"description":"Attendees","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Attendee"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/attendees/{attendeeId}":{"get":{"operationId":"getAttendee","summary":"Get one attendee with registration answers","tags":["Attendees"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^att_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed att_"},"required":true,"description":"Public id, prefixed att_","name":"attendeeId","in":"path"}],"responses":{"200":{"description":"Attendee","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Attendee"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/attendees/{attendeeId}/resend-ticket":{"post":{"operationId":"resendTicket","summary":"Resend the ticket email","tags":["Attendees"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^att_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed att_"},"required":true,"description":"Public id, prefixed att_","name":"attendeeId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"boolean","enum":[true]}},"required":["queued"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/attendees/import":{"post":{"operationId":"importAttendees","summary":"Import a guest list; each row becomes a comped ticket","tags":["Attendees"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportAttendeesInput"}}}},"responses":{"201":{"description":"Import result","content":{"application/json":{"schema":{"type":"object","properties":{"imported":{"type":"integer"},"skipped":{"type":"integer"},"failed":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"status":{"type":"string","enum":["imported","exists","failed"]},"reason":{"type":"string"}},"required":["email","status"]}}},"required":["imported","skipped","failed","results"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/attendees/email":{"post":{"operationId":"emailAttendees","summary":"Queue a transactional update to attendees","tags":["Attendees"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailAttendeesInput"}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"boolean","enum":[true]},"recipients":{"type":"integer"}},"required":["queued","recipients"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/attendees/email/preview":{"post":{"operationId":"previewAttendeeEmail","summary":"How many attendees an update would reach, and the rendered email","description":"Uses exactly the rule of the send: attendees holding a valid ticket, then the q / checked_in / ticket_type filters.","tags":["Attendees"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmailAttendeesInput"}}}},"responses":{"200":{"description":"Preview","content":{"application/json":{"schema":{"type":"object","properties":{"recipients":{"type":"integer"},"subject":{"type":"string"},"html":{"type":"string"}},"required":["recipients","subject","html"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/attendees":{"get":{"operationId":"searchOrgAttendees","summary":"Search attendees across every event of the organisation","tags":["Attendees"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":120},"required":true,"name":"q","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":200},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Matches, newest first","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/OrgAttendeeHit"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/checkin/scan":{"post":{"operationId":"scanTicket","summary":"Scan a ticket at the door","tags":["Check-in"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanInput"}}}},"responses":{"200":{"description":"Scan result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/checkin/sync":{"post":{"operationId":"syncCheckins","summary":"Replay an offline scan queue; conflicts are flagged, never dropped","tags":["Check-in"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncInput"}}}},"responses":{"200":{"description":"Sync result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/checkin/undo":{"post":{"operationId":"undoCheckin","summary":"Undo a check-in (Owner/Admin)","tags":["Check-in"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ticket_id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"}},"required":["ticket_id"]}}}},"responses":{"200":{"description":"Undone","content":{"application/json":{"schema":{"type":"object","properties":{"undone":{"type":"boolean","enum":[true]}},"required":["undone"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/checkin/list":{"get":{"operationId":"getCheckinList","summary":"Compact guest list (token hashes) for offline validation; ETag cached","tags":["Check-in"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Guest list","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/CheckinListEntry"}},"generated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["data","generated_at"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/checkin/recent":{"get":{"operationId":"listRecentCheckins","summary":"Latest scans, including flagged offline duplicates with both devices","tags":["Check-in"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Recent scans","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"ticket_id":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"name":{"type":"string"},"ticket_type":{"type":"string"},"device_id":{"type":"string"},"source":{"type":"string","enum":["camera","manual","walkin"]},"scanned_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"flagged":{"type":"boolean"},"first_device":{"type":["string","null"]},"first_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["id","ticket_id","name","ticket_type","device_id","source","scanned_at","flagged","first_device","first_at"]}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/checkin/summary":{"get":{"operationId":"getCheckinSummary","summary":"Check-in totals, flagged duplicates and arrivals by hour","tags":["Check-in"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CheckinSummary"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/webhook-endpoints":{"get":{"operationId":"listWebhookEndpoints","summary":"List webhook endpoints","tags":["Webhook endpoints"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Endpoints","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEndpoint"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createWebhookEndpoint","summary":"Create an endpoint; the signing secret is shown once","description":"Deliveries are POSTed with a Konecto-Signature header: t=<unix seconds>,v1=<hex HMAC-SHA256 of \"t.body\"> using the secret. Non-2xx answers are retried with backoff for about 72 hours.","tags":["Webhook endpoints"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookEndpointInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreated"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/webhook-endpoints/{id}":{"patch":{"operationId":"updateWebhookEndpoint","summary":"Change URL, events or enabled","tags":["Webhook endpoints"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^whe_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed whe_"},"required":true,"description":"Public id, prefixed whe_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"events":{"type":"array","items":{"type":"string","enum":["order.paid","order.refunded","attendee.registered","ticket.checked_in","event.published","event.updated","event_page.published","module.enabled","challenge.completed","booth.scanned"]},"minItems":1},"enabled":{"type":"boolean"},"description":{"type":["string","null"],"maxLength":200}}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpoint"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteWebhookEndpoint","summary":"Delete an endpoint","tags":["Webhook endpoints"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^whe_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed whe_"},"required":true,"description":"Public id, prefixed whe_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/webhook-endpoints/{id}/rotate-secret":{"post":{"operationId":"rotateWebhookSecret","summary":"Rotate the signing secret (shown once)","tags":["Webhook endpoints"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^whe_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed whe_"},"required":true,"description":"Public id, prefixed whe_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Rotated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEndpointCreated"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/webhook-endpoints/{id}/deliveries":{"get":{"operationId":"listWebhookDeliveries","summary":"Recent deliveries with status and attempts","tags":["Webhook endpoints"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^whe_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed whe_"},"required":true,"description":"Public id, prefixed whe_","name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"cursor","in":"query"},{"schema":{"type":"string","enum":["pending","delivered","failed","exhausted"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Deliveries","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookDelivery"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/webhook-endpoints/{id}/test":{"post":{"operationId":"testWebhookEndpoint","summary":"Send a sample event now and report the response","tags":["Webhook endpoints"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^whe_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed whe_"},"required":true,"description":"Public id, prefixed whe_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["order.paid","order.refunded","attendee.registered","ticket.checked_in","event.published","event.updated","event_page.published","module.enabled","challenge.completed","booth.scanned"]}}}}}},"responses":{"200":{"description":"Outcome","content":{"application/json":{"schema":{"type":"object","properties":{"delivery_id":{"type":"string"},"status":{"type":"string","enum":["delivered","pending","exhausted"]},"status_code":{"type":["integer","null"]}},"required":["delivery_id","status","status_code"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/webhook-endpoints/{id}/deliveries/{deliveryId}/retry":{"post":{"operationId":"retryWebhookDelivery","summary":"Resend one delivery now","tags":["Webhook endpoints"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^whe_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed whe_"},"required":true,"description":"Public id, prefixed whe_","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deliveryId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Outcome","content":{"application/json":{"schema":{"type":"object","properties":{"delivery_id":{"type":"string"},"status":{"type":"string","enum":["delivered","pending","exhausted"]},"status_code":{"type":["integer","null"]}},"required":["delivery_id","status","status_code"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/page-templates":{"get":{"operationId":"listPageTemplates","summary":"Page templates, curated fonts, themes and section keys","tags":["Pages"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Templates","content":{"application/json":{"schema":{"type":"object","properties":{"templates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["classic","expo","minimal"]},"name":{"type":"string"},"for":{"type":"string"},"sections":{"type":"array","items":{"type":"string"}}},"required":["id","name","for","sections"]}},"fonts":{"type":"array","items":{"type":"string","enum":["Geist","Inter","Manrope","Space Grotesk","Playfair Display","Fraunces","DM Serif Display","IBM Plex Sans"]}},"themes":{"type":"array","items":{"type":"string","enum":["light","dark"]}},"sections":{"type":"array","items":{"type":"string","enum":["hero","about","speakers","agenda","venue","sponsors","exhibitors","gallery","faq","tickets"]}},"defaults":{"$ref":"#/components/schemas/PageConfig"}},"required":["templates","fonts","themes","sections","defaults"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/page":{"get":{"operationId":"getEventPage","summary":"Draft and published page configuration with preview and public URLs","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventPage"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateEventPage","summary":"Merge changes into the draft page (template, branding, sections, order, SEO)","description":"Partial per section; the whole draft is validated after the merge. The tickets section cannot be disabled. Fonts and templates come from GET /v1/page-templates.","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"draft":{"type":"object","properties":{"template":{"type":"string","enum":["classic","expo","minimal"]},"branding":{"type":"object","properties":{"logo_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"primary_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"background_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"font":{"type":"string","enum":["Geist","Inter","Manrope","Space Grotesk","Playfair Display","Fraunces","DM Serif Display","IBM Plex Sans"]},"theme":{"type":"string","enum":["light","dark"]}}},"sections":{"type":"object","properties":{"hero":{"type":"object","properties":{"enabled":{"type":"boolean"},"headline":{"type":"string","maxLength":60},"sub":{"type":"string","maxLength":200},"image_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}}},"about":{"type":"object","properties":{"enabled":{"type":"boolean"},"body":{"type":"string","maxLength":20000}}},"speakers":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}}},"agenda":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}}},"venue":{"type":"object","properties":{"enabled":{"type":"boolean"},"show_map":{"type":"boolean"}}},"sponsors":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60}}},"exhibitors":{"type":"object","properties":{"enabled":{"type":"boolean"},"group_by_zone":{"type":"boolean"}}},"gallery":{"type":"object","properties":{"enabled":{"type":"boolean"},"asset_ids":{"type":"array","items":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"maxItems":24}}},"faq":{"type":"object","properties":{"enabled":{"type":"boolean"},"items":{"type":"array","items":{"type":"object","properties":{"q":{"type":"string","maxLength":200},"a":{"type":"string","maxLength":20000}},"required":["q","a"]},"maxItems":20}}},"tickets":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string","maxLength":60},"show_remaining":{"type":"boolean"}}}}},"section_order":{"type":"array","items":{"type":"string","enum":["hero","about","speakers","agenda","venue","sponsors","exhibitors","gallery","faq","tickets"]},"minItems":1},"seo":{"type":"object","properties":{"title":{"type":"string","maxLength":70},"description":{"type":"string","maxLength":160},"og_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}}}}}},"required":["draft"]}}}},"responses":{"200":{"description":"Updated draft","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventPage"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/page/publish":{"post":{"operationId":"publishEventPage","summary":"Publish the draft page (new version)","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Published","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventPage"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/page/preview":{"get":{"operationId":"getEventPagePreview","summary":"A preview link of the draft page","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Preview link","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"note":{"type":"string"}},"required":["url","note"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/page/versions":{"get":{"operationId":"listEventPageVersions","summary":"Published page versions","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Versions","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"version":{"type":"integer"},"published_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"by":{"type":"string"}},"required":["version","published_at","by"]}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/page/versions/{version}":{"get":{"operationId":"getEventPageVersion","summary":"One published page version with its config","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":["integer","null"]},"required":false,"name":"version","in":"path"}],"responses":{"200":{"description":"Version","content":{"application/json":{"schema":{"type":"object","properties":{"version":{"type":"integer"},"published_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"config":{"$ref":"#/components/schemas/PageConfig"}},"required":["version","published_at","config"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/page/versions/{version}/restore":{"post":{"operationId":"restoreEventPageVersion","summary":"Copy a published version back into the draft","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":["integer","null"]},"required":false,"name":"version","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Draft restored","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventPage"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/sales":{"get":{"operationId":"getSales","summary":"Tickets sold, revenue and remaining capacity per ticket type","tags":["Tickets"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Sales","content":{"application/json":{"schema":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"currency":{"type":"string"},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"},"name":{"type":"string"},"kind":{"type":"string","enum":["free","paid"]},"price_minor":{"type":"integer"},"capacity":{"type":["integer","null"]},"sold":{"type":"integer"},"held":{"type":"integer"},"remaining":{"type":["integer","null"]},"revenue_minor":{"type":"integer"},"fees_minor":{"type":"integer"}},"required":["id","name","kind","price_minor","capacity","sold","held","remaining","revenue_minor","fees_minor"]}},"totals":{"type":"object","properties":{"orders":{"type":"integer"},"tickets_sold":{"type":"integer"},"gross_minor":{"type":"integer"},"refunded_minor":{"type":"integer"},"konecto_fees_minor":{"type":"integer"},"net_minor":{"type":"integer"},"capacity":{"type":["integer","null"]}},"required":["orders","tickets_sold","gross_minor","refunded_minor","konecto_fees_minor","net_minor","capacity"]},"by_day":{"type":"array","items":{"type":"object","properties":{"day":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"gross_minor":{"type":"integer"}},"required":["day","gross_minor"]}}},"required":["event_id","currency","ticket_types","totals","by_day"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/modules":{"get":{"operationId":"listModules","summary":"Modules with prices and which are enabled for the event","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Modules","content":{"application/json":{"schema":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"currency":{"type":"string"},"org_plan":{"type":"boolean"},"modules":{"type":"array","items":{"type":"object","properties":{"module":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]},"name":{"type":"string"},"price_minor":{"type":"integer"},"unit":{"type":"string"},"enabled":{"type":"boolean"},"source":{"type":["string","null"]},"enable_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["module","name","price_minor","unit","enabled","source","enable_url"]}}},"required":["event_id","currency","org_plan","modules"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/attendees.csv":{"get":{"operationId":"exportAttendees","summary":"A signed CSV download link (15 minutes)","tags":["Attendees"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Download link","content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"expires_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"filename":{"type":"string"}},"required":["url","expires_at","filename"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/events/{slug}/preview":{"get":{"operationId":"getEventPreview","summary":"Draft preview of an event page (any status) with the preview token","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string","minLength":3,"maxLength":80,"pattern":"^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$"},"required":true,"name":"slug","in":"path"},{"schema":{"type":"string"},"required":true,"name":"token","in":"query"}],"responses":{"200":{"description":"Event with draft page","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/downloads/{token}":{"get":{"operationId":"download","summary":"Signed short-lived download (attendee CSV)","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"File"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/confirmations":{"get":{"operationId":"listConfirmations","summary":"Pending confirmations for the signed-in organiser","tags":["Confirmations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","enum":["pending","all"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Confirmations","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Confirmation"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/confirmations/{token}":{"get":{"operationId":"getConfirmation","summary":"One confirmation (the confirm page)","tags":["Confirmations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Confirmation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Confirmation"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/confirmations/{token}/approve":{"post":{"operationId":"approveConfirmation","summary":"Approve: performs the stored request as the organiser","tags":["Confirmations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Approved, with the result of the replayed request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Confirmation"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/confirmations/{token}/decline":{"post":{"operationId":"declineConfirmation","summary":"Decline a confirmation","tags":["Confirmations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Declined","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Confirmation"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connected-apps":{"get":{"operationId":"listConnectedApps","summary":"Applications (MCP clients) the signed-in user connected","tags":["Confirmations"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Connections","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"client_id":{"type":"string"},"client_name":{"type":"string"},"client_uri":{"type":["string","null"]},"logo_uri":{"type":["string","null"]},"grants":{"type":"array","items":{"type":"object","properties":{"org_id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"org_name":{"type":"string"},"scopes":{"type":"array","items":{"type":"string","enum":["events:read","events:write","orders:read","orders:refund","pages:write","domains:buy","finance:read","finance:write","tasks:read","tasks:write","analytics:read","challenges:write","sponsors:write"]}},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"last_used_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"active_until":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}},"required":["org_id","org_name","scopes","created_at","last_used_at","active_until"]}}},"required":["client_id","client_name","client_uri","logo_uri","grants"]}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connected-apps/{clientId}":{"delete":{"operationId":"revokeConnectedApp","summary":"Revoke every token granted to an application","tags":["Confirmations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"clientId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Revoked"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/auth/magic-link":{"post":{"operationId":"requestMagicLink","summary":"Email a sign-in link for the attendee app","description":"Always answers 202 so addresses cannot be probed. The link signs the person in at me.konec.to.","tags":["Me"],"security":[{"publishableKey":[]},{}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"redirect_to":{"type":"string","maxLength":500},"context":{"type":"string","enum":["login","welcome"]}},"required":["email"]}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"boolean","enum":[true]}},"required":["sent"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/home":{"get":{"operationId":"getHome","summary":"Home: next ticket, live event, notices, requests and teasers","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Home","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Home"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/wallet":{"get":{"operationId":"getWallet","summary":"Tickets grouped by upcoming and past events","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Wallet","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Wallet"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/events/{id}":{"get":{"operationId":"getMyEvent","summary":"One event as an attendee: tickets, agenda, floor, exhibitors, challenges, updates, privacy","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Event","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyEvent"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/events/{id}/privacy":{"patch":{"operationId":"updateMyEventPrivacy","summary":"Directory, suggestions and exhibitor-scan choices for one event","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"in_directory":{"type":"boolean","default":false},"suggest_me":{"type":"boolean","default":false},"allow_exhibitor_scan":{"type":"boolean","default":true}}}}}},"responses":{"200":{"description":"Privacy","content":{"application/json":{"schema":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"in_directory":{"type":"boolean","default":false},"suggest_me":{"type":"boolean","default":false},"allow_exhibitor_scan":{"type":"boolean","default":true}},"required":["event_id"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/sessions/{sessionId}/bookmark":{"put":{"operationId":"bookmarkSession","summary":"Add a session to my schedule","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ses_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ses_"},"required":true,"description":"Public id, prefixed ses_","name":"sessionId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Bookmarked","content":{"application/json":{"schema":{"type":"object","properties":{"bookmarked":{"type":"boolean","enum":[true]}},"required":["bookmarked"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"unbookmarkSession","summary":"Remove a session from my schedule","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ses_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ses_"},"required":true,"description":"Public id, prefixed ses_","name":"sessionId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Removed"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/tickets/{ticketId}":{"get":{"operationId":"getMyTicket","summary":"One ticket with its event and QR","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"required":true,"description":"Public id, prefixed tkt_","name":"ticketId","in":"path"}],"responses":{"200":{"description":"Ticket","content":{"application/json":{"schema":{"type":"object","properties":{"ticket":{"$ref":"#/components/schemas/WalletTicket"},"event":{"$ref":"#/components/schemas/WalletEvent"}},"required":["ticket","event"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/tickets/{ticketId}/calendar.ics":{"get":{"operationId":"getMyTicketCalendar","summary":"Calendar file for the ticket’s event","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"required":true,"description":"Public id, prefixed tkt_","name":"ticketId","in":"path"}],"responses":{"200":{"description":"text/calendar"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/tickets/{ticketId}/transfer":{"post":{"operationId":"transferMyTicket","summary":"Transfer a ticket to someone else (voids this one, emails the new holder)","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tkt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tkt_"},"required":true,"description":"Public id, prefixed tkt_","name":"ticketId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email"},"name":{"type":"string","minLength":1,"maxLength":120}},"required":["email","name"]}}}},"responses":{"200":{"description":"New ticket","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WalletTicket"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/card":{"get":{"operationId":"getMyCard","summary":"My profile card, rotating QR and settings","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Card","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Card"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateMyCard","summary":"Edit profile, interests, privacy per field, messaging and notification choices","description":"The handle can change once every 30 days. Interests come from GET /v1/public/topics or as free tags (up to 5).","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"handle":{"type":"string","minLength":3,"maxLength":30,"pattern":"^[a-z0-9][a-z0-9-]*$"},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"phone":{"type":["string","null"],"maxLength":40},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string","maxLength":40}}},"maxItems":25,"description":"Topics by id, or free tags by label (up to 5)"},"wants":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["role","industry","company_type"]},"value":{"type":"string","maxLength":80}},"required":["kind","value"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"visibility":{"type":"object","properties":{"photo":{"type":"string","enum":["public","attendees","on_connect"]},"headline":{"type":"string","enum":["public","attendees","on_connect"]},"company":{"type":"string","enum":["public","attendees","on_connect"]},"bio":{"type":"string","enum":["public","attendees","on_connect"]},"links":{"type":"string","enum":["public","attendees","on_connect"]},"interests":{"type":"string","enum":["public","attendees","on_connect"]},"looking_for":{"type":"string","enum":["public","attendees","on_connect"]},"email":{"type":"string","enum":["public","attendees","on_connect"]},"phone":{"type":"string","enum":["public","attendees","on_connect"]}}},"messaging":{"type":"string","enum":["connections","attendees","nobody"]},"notification_prefs":{"type":"object","properties":{"messages":{"type":"boolean"},"connections":{"type":"boolean"},"challenges":{"type":"boolean"},"updates":{"type":"boolean"}}},"photo_asset_id":{"type":["string","null"],"pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"}}}}}},"responses":{"200":{"description":"Card","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Card"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/topics":{"get":{"operationId":"listTopics","summary":"Interest topics people can pick","tags":["Me"],"security":[{"publishableKey":[]},{}],"responses":{"200":{"description":"Topics","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"label":{"type":"string"},"category":{"type":"string"}},"required":["id","slug","label","category"]}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/people/{handle}":{"get":{"operationId":"getProfile","summary":"Someone’s profile as I am allowed to see it (public, same event, or connected)","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"handle","in":"path"},{"schema":{"type":"string","description":"Rotating card token from their QR"},"required":false,"description":"Rotating card token from their QR","name":"t","in":"query"}],"responses":{"200":{"description":"Profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ViewedProfile"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/scan":{"post":{"operationId":"resolveScan","summary":"Resolve a scanned code: a person, a booth or a ticket","description":"Booth QRs record a visit when the live challenge allows self-scans; otherwise the exhibitor page opens with a note.","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":3,"maxLength":600,"description":"A person QR URL, a 6-character code, a booth QR (konecto://booth/...) or a ticket QR"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}},"required":["code"]}}}},"responses":{"200":{"description":"Resolved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ScanResolved"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connections":{"get":{"operationId":"listMyConnections","summary":"Connections and requests, newest first","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","enum":["accepted","pending"]},"required":false,"name":"status","in":"query"},{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":false,"description":"Public id, prefixed evt_","name":"event_id","in":"query"},{"schema":{"type":"string","maxLength":80},"required":false,"name":"q","in":"query"}],"responses":{"200":{"description":"Connections","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MyConnection"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"requestConnection","summary":"Ask to connect (by person id, scanned QR or 6-character code); mutual requests connect at once","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"qr":{"type":"string"},"code":{"type":"string","minLength":6,"maxLength":6},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"note":{"type":"string","maxLength":500}}}}}},"responses":{"201":{"description":"Connection","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyConnection"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connections/{id}/accept":{"post":{"operationId":"acceptConnection","summary":"Accept a request","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"required":true,"description":"Public id, prefixed con_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Connected","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyConnection"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connections/{id}/decline":{"post":{"operationId":"declineConnection","summary":"Decline a request","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"required":true,"description":"Public id, prefixed con_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Declined","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyConnection"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connections/{id}":{"delete":{"operationId":"removeConnection","summary":"Remove a connection; shared details stop on both sides","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"required":true,"description":"Public id, prefixed con_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Removed"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connections/{id}/note":{"patch":{"operationId":"updateConnectionNote","summary":"My private note about this person","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"required":true,"description":"Public id, prefixed con_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"note":{"type":["string","null"],"maxLength":500}},"required":["note"]}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyConnection"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connections/{id}/vcard.vcf":{"get":{"operationId":"getConnectionVcard","summary":"vCard 4.0 of one connection","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"required":true,"description":"Public id, prefixed con_","name":"id","in":"path"}],"responses":{"200":{"description":"text/vcard"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/connections/export":{"get":{"operationId":"exportConnections","summary":"All connections as CSV or one .vcf","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","enum":["csv","vcf"],"default":"csv"},"required":false,"name":"format","in":"query"}],"responses":{"200":{"description":"File"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/events/{id}/suggestions":{"get":{"operationId":"listSuggestions","summary":"People to meet at this event, each with the reason","description":"Interest-based: shared and related topics, who you want to meet, complementary needs, shared sessions and zones. Up to ten a day. Never called matchmaking.","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Suggestions","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MySuggestion"}},"opted_in":{"type":"boolean"}},"required":["data","opted_in"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/events/{id}/suggestions/{personId}":{"post":{"operationId":"actOnSuggestion","summary":"Snooze a suggestion for a day or hide it for good","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"required":true,"description":"Public id, prefixed per_","name":"personId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"action":{"type":"string","enum":["snooze","hide"]}},"required":["action"]}}}},"responses":{"200":{"description":"Done","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","enum":[true]}},"required":["ok"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/events/{id}/directory":{"get":{"operationId":"listDirectory","summary":"Attendees who opted into the directory","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":80},"required":false,"name":"q","in":"query"},{"schema":{"type":"string"},"required":false,"name":"interest","in":"query"},{"schema":{"type":"string"},"required":false,"name":"looking_for","in":"query"}],"responses":{"200":{"description":"Directory","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DirectoryEntry"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/people/{personId}/block":{"post":{"operationId":"blockPerson","summary":"Block a person everywhere","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"required":true,"description":"Public id, prefixed per_","name":"personId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Blocked","content":{"application/json":{"schema":{"type":"object","properties":{"blocked":{"type":"boolean","enum":[true]}},"required":["blocked"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"unblockPerson","summary":"Unblock a person","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"required":true,"description":"Public id, prefixed per_","name":"personId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Unblocked"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/blocks":{"get":{"operationId":"listBlocks","summary":"People I have blocked","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Blocked people","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/BlockedPerson"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/people/{personId}/report":{"post":{"operationId":"reportPerson","summary":"Report a person","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"required":true,"description":"Public id, prefixed per_","name":"personId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","enum":["spam","harassment","inappropriate","impersonation","other"]},"details":{"type":"string","maxLength":1000}},"required":["reason"]}}}},"responses":{"201":{"description":"Reported","content":{"application/json":{"schema":{"type":"object","properties":{"reported":{"type":"boolean","enum":[true]}},"required":["reported"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/conversations":{"get":{"operationId":"listConversations","summary":"Conversations by last activity, with unread counts and requests","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Conversations","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ConversationSummary"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"startConversation","summary":"Find or start a thread with a person or an exhibitor","description":"Who can message whom follows the recipient’s setting: connections only, attendees at their events, or nobody. A first message from a non-connection is a request.","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}}}}}},"responses":{"200":{"description":"Conversation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSummary"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/conversations/{id}":{"get":{"operationId":"getConversation","summary":"One conversation with its members","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"id","in":"path"}],"responses":{"200":{"description":"Conversation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSummary"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/conversations/{id}/messages":{"get":{"operationId":"listMessages","summary":"Messages, newest last; page back with before","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"id","in":"path"},{"schema":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"required":false,"description":"ISO 8601 with offset","name":"before","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Messages","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ChatMessage"}},"has_more":{"type":"boolean"}},"required":["data","has_more"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"sendMessage","summary":"Send a message (text, one image, optional reply)","description":"Rate limits: 30 a minute; 300 a day for accounts under a week old.","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","maxLength":4000},"image_asset_id":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"reply_to":{"type":"string","pattern":"^msg_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed msg_"}}}}}},"responses":{"201":{"description":"Sent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatMessage"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/conversations/{id}/read":{"post":{"operationId":"markConversationRead","summary":"Mark everything read","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Read","content":{"application/json":{"schema":{"type":"object","properties":{"read_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["read_at"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/conversations/{id}/accept":{"post":{"operationId":"acceptConversation","summary":"Accept a message request","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Open","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSummary"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/conversations/{id}/decline":{"post":{"operationId":"declineConversation","summary":"Decline a message request","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Declined","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConversationSummary"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/messages/{messageId}/report":{"post":{"operationId":"reportMessage","summary":"Report a message","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^msg_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed msg_"},"required":true,"description":"Public id, prefixed msg_","name":"messageId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"reason":{"type":"string","enum":["spam","harassment","inappropriate","impersonation","other"]},"details":{"type":"string","maxLength":1000}},"required":["reason"]}}}},"responses":{"201":{"description":"Reported","content":{"application/json":{"schema":{"type":"object","properties":{"reported":{"type":"boolean","enum":[true]}},"required":["reported"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/notifications":{"get":{"operationId":"listNotifications","summary":"In-app notices, newest first","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":["boolean","null"]},"required":false,"name":"unread","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":30},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Notices","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Notification"}},"unread":{"type":"integer"}},"required":["data","unread"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/notifications/read":{"post":{"operationId":"markNotificationsRead","summary":"Mark notices read (all, or the given ids)","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","pattern":"^ntf_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ntf_"}}}}}}},"responses":{"200":{"description":"Marked","content":{"application/json":{"schema":{"type":"object","properties":{"read":{"type":"integer"}},"required":["read"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/push-subscriptions":{"post":{"operationId":"addPushSubscription","summary":"Register this device for Web Push","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string","maxLength":2048,"format":"uri"},"keys":{"type":"object","properties":{"p256dh":{"type":"string","minLength":10},"auth":{"type":"string","minLength":5}},"required":["p256dh","auth"]},"user_agent":{"type":"string","maxLength":300}},"required":["endpoint","keys"]}}}},"responses":{"201":{"description":"Registered","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"removePushSubscription","summary":"Remove this device’s Web Push subscription","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"endpoint":{"type":"string","maxLength":2048,"format":"uri"}},"required":["endpoint"]}}}},"responses":{"204":{"description":"Removed"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/push-devices":{"post":{"operationId":"addPushDevice","summary":"Register this phone (native app) for push through APNs or FCM","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["ios","android"]},"token":{"type":"string"},"app_version":{"type":"string"}},"required":["platform","token"]}}}},"responses":{"201":{"description":"Registered","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"removePushDevice","summary":"Forget this phone’s push token","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]}}}},"responses":{"204":{"description":"Removed"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/push/vapid":{"get":{"operationId":"getVapidKey","summary":"Public VAPID key for Web Push","tags":["Me"],"security":[{"publishableKey":[]},{}],"responses":{"200":{"description":"Key","content":{"application/json":{"schema":{"type":"object","properties":{"public_key":{"type":["string","null"]}},"required":["public_key"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/challenges/{challengeId}":{"get":{"operationId":"getMyChallenge","summary":"A challenge with my progress, remaining booths, rules and the live leaderboard","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"}],"responses":{"200":{"description":"Challenge","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyChallengeDetail"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/lead-requests":{"get":{"operationId":"listLeadRequests","summary":"Pending exhibitor requests to share my details","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Requests","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/LeadRequest"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/lead-requests/{id}/accept":{"post":{"operationId":"acceptLeadRequest","summary":"Share my details with the exhibitor","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ldr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ldr_"},"required":true,"description":"Public id, prefixed ldr_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Shared","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadRequest"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/lead-requests/{id}/decline":{"post":{"operationId":"declineLeadRequest","summary":"Keep my details private (the booth visit still counts)","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ldr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ldr_"},"required":true,"description":"Public id, prefixed ldr_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Declined","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadRequest"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/events/{id}/exhibitors/{sponsorId}/redeem":{"post":{"operationId":"redeemOffer","summary":"Redeem an exhibitor offer","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offer_id":{"type":"string"}},"required":["offer_id"]}}}},"responses":{"200":{"description":"Redeemed","content":{"application/json":{"schema":{"type":"object","properties":{"redeemed":{"type":"boolean","enum":[true]},"code":{"type":["string","null"]},"url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["redeemed","code","url"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/exhibitor":{"get":{"operationId":"listExhibitorMode","summary":"Exhibitors I staff, with booth stats","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Exhibitor mode","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ExhibitorMe"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/exhibitor/{sponsorId}/scan":{"post":{"operationId":"exhibitorScan","summary":"Scan an attendee card or ticket at the booth; asks the attendee for consent","description":"Records the booth visit at once. The lead is created only when the attendee accepts, on their phone or on yours.","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","minLength":3,"maxLength":600},"scanned_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["code"]}}}},"responses":{"200":{"description":"Scan","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExhibitorScanResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/exhibitor/{sponsorId}/requests/{id}/accept":{"post":{"operationId":"exhibitorAcceptOnDevice","summary":"The attendee accepted sharing on the staff phone","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","pattern":"^ldr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ldr_"},"required":true,"description":"Public id, prefixed ldr_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Shared","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LeadRequest"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/exhibitor/{sponsorId}/leads":{"get":{"operationId":"listExhibitorLeads","summary":"Leads for the booth (consented fields only)","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":80},"required":false,"name":"q","in":"query"},{"schema":{"type":"string","enum":["hot","warm","cold"]},"required":false,"name":"rating","in":"query"},{"schema":{"type":"string","enum":["json","csv"]},"required":false,"name":"format","in":"query"}],"responses":{"200":{"description":"Leads","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ExhibitorLead"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/exhibitor/{sponsorId}/leads/{leadId}":{"patch":{"operationId":"updateExhibitorLead","summary":"Note and rating on a lead","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","pattern":"^led_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed led_"},"required":true,"description":"Public id, prefixed led_","name":"leadId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"rating":{"type":["string","null"],"enum":["hot","warm","cold"]},"notes":{"type":["string","null"],"maxLength":2000}}}}}},"responses":{"200":{"description":"Lead","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ExhibitorLead"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/exhibitor/{sponsorId}/leads/send":{"post":{"operationId":"sendLeadsToCrm","summary":"POST the leads to the exhibitor’s CRM webhook","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"webhook_url":{"type":"string","maxLength":2048,"format":"uri"}}}}}},"responses":{"200":{"description":"Sent","content":{"application/json":{"schema":{"type":"object","properties":{"sent":{"type":"integer"},"status_code":{"type":["integer","null"]}},"required":["sent","status_code"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/communities":{"get":{"operationId":"listMyCommunities","summary":"Communities I joined and organisers inviting me","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Communities","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/MyCommunity"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/communities/{slug}":{"get":{"operationId":"getCommunity","summary":"One organiser’s community: upcoming events, announcements, members","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"slug","in":"path"}],"responses":{"200":{"description":"Community","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"org_id":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"name":{"type":"string"},"logo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"member_count":{"type":"integer"},"joined":{"type":"boolean"},"slug":{"type":"string"},"accent_colour":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"upcoming_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"slug":{"type":"string"},"name":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"public_url":{"type":"string","maxLength":2048,"format":"uri"},"has_free_ticket":{"type":"boolean"},"registered":{"type":"boolean"}},"required":["id","slug","name","starts_at","public_url","has_free_ticket","registered"]}},"announcements":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^ann_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ann_"},"title":{"type":"string"},"body_html":{"type":"string"},"published_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","title","body_html","published_at"]}},"past_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","name","starts_at"]}},"invited":{"type":"boolean","description":"The person attended one of the organiser’s events but has not joined"},"members":{"type":"array","items":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"handle":{"type":"string"},"name":{"type":"string"},"photo_url":{"type":["string","null"],"maxLength":2048,"format":"uri"},"cover":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"string","maxLength":2048,"format":"uri"},{"type":"null"}]},"headline":{"type":["string","null"],"maxLength":120},"company":{"type":["string","null"],"maxLength":120},"bio":{"type":["string","null"],"maxLength":280},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"interests":{"type":"array","items":{"type":"object","properties":{"topic_id":{"type":"string"},"label":{"type":"string"}},"required":["topic_id","label"]},"maxItems":20},"looking_for":{"type":"array","items":{"type":"string","enum":["investors","suppliers","distributors","customers","partners","hiring","job","speakers"]},"maxItems":8},"updated_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"email":{"type":["string","null"],"maxLength":254,"format":"email"},"phone":{"type":["string","null"]},"relationship":{"type":"string","enum":["self","connected","same_event","stranger"]},"connection":{"type":"object","properties":{"id":{"type":["string","null"],"pattern":"^con_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed con_"},"status":{"type":"string","enum":["none","pending_out","pending_in","accepted"]}},"required":["id","status"]},"shared_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"name":{"type":"string"}},"required":["id","name"]}},"can_message":{"type":"boolean"},"blocked":{"type":"boolean"}},"required":["person_id","handle","name","relationship","connection","shared_events","can_message","blocked"]}}},"required":["id","org_id","name","logo_url","member_count","joined","slug","accent_colour","upcoming_events","announcements","past_events","invited","members"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/communities/{slug}/join":{"post":{"operationId":"joinCommunity","summary":"Join a community","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"slug","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Joined","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MyCommunity"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"leaveCommunity","summary":"Leave a community","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"slug","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Left"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/export":{"post":{"operationId":"requestMyExport","summary":"Queue an export of my data (zip by email, link valid 24 hours)","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"boolean","enum":[true]}},"required":["queued"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/deletion":{"get":{"operationId":"getMyDeletion","summary":"Account deletion status","tags":["Me"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionStatus"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"requestMyDeletion","summary":"Delete my account after a 30-day grace period","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionStatus"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"cancelMyDeletion","summary":"Cancel the deletion","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"200":{"description":"Cancelled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletionStatus"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/challenges/{challengeId}/display":{"get":{"operationId":"getChallengeDisplay","summary":"Leaderboard for venue screens (no auth, big type)","tags":["Challenges"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"}],"responses":{"200":{"description":"Display","content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"event_name":{"type":"string"},"reward":{"type":"string"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"participants":{"type":"integer"},"completions":{"type":"integer"},"leaderboard":{"type":"array","items":{"type":"object","properties":{"rank":{"type":"integer"},"name":{"type":"string"},"points":{"type":"integer"}},"required":["rank","name","points"]}}},"required":["name","event_name","reward","ends_at","participants","completions","leaderboard"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/sponsors/{sponsorId}/members":{"get":{"operationId":"listSponsorMembers","summary":"Exhibitor staff and pending invites","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"}],"responses":{"200":{"description":"Members","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SponsorMember"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"inviteSponsorMembers","summary":"Invite exhibitor staff by email; they get exhibitor mode in the attendee app","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string","maxLength":254,"format":"email"},"minItems":1,"maxItems":20}},"required":["emails"]}}}},"responses":{"201":{"description":"Invited","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SponsorMember"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/sponsors/{sponsorId}/members/{memberId}":{"delete":{"operationId":"removeSponsorMember","summary":"Remove a staff member or invite","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"memberId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Removed"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/exhibitor/accept":{"post":{"operationId":"acceptExhibitorInvite","summary":"Accept an exhibitor staff invite (attendee app)","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string"}},"required":["token"]}}}},"responses":{"200":{"description":"Accepted","content":{"application/json":{"schema":{"type":"object","properties":{"sponsor_id":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"name":{"type":"string"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}},"required":["sponsor_id","name","event_id"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/sponsors/{sponsorId}/deliverables":{"get":{"operationId":"listDeliverables","summary":"Deliverables checklist for an exhibitor or sponsor","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"}],"responses":{"200":{"description":"Deliverables","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","maxLength":200},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"state":{"type":"string","enum":["not_yet","in_progress","delivered"]}},"required":["id","title","due_at","state"]}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createDeliverable","summary":"Add a deliverable","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"state":{"type":"string","enum":["not_yet","in_progress","delivered"]}},"required":["title"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","maxLength":200},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"state":{"type":"string","enum":["not_yet","in_progress","delivered"]}},"required":["id","title","due_at","state"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/sponsors/{sponsorId}/deliverables/{deliverableId}":{"patch":{"operationId":"updateDeliverable","summary":"Change a deliverable","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deliverableId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":200},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"state":{"type":"string","enum":["not_yet","in_progress","delivered"]}}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","maxLength":200},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"state":{"type":"string","enum":["not_yet","in_progress","delivered"]}},"required":["id","title","due_at","state"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteDeliverable","summary":"Delete a deliverable","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deliverableId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/sponsors/import":{"post":{"operationId":"importSponsors","summary":"Bulk import exhibitors and sponsors (tiers and booths created as needed)","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportSponsorsInput"}}}},"responses":{"201":{"description":"Import result","content":{"application/json":{"schema":{"type":"object","properties":{"imported":{"type":"integer"},"exists":{"type":"integer"},"failed":{"type":"integer"},"results":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string","enum":["imported","exists","failed"]},"reason":{"type":"string"}},"required":["name","status"]}}},"required":["imported","exists","failed","results"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/sponsors/engagement":{"get":{"operationId":"compareSponsors","summary":"Engagement comparison across exhibitors (sponsors module)","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Comparison","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SponsorComparisonRow"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/challenges/{challengeId}/notify-winners":{"post":{"operationId":"notifyWinners","summary":"Tell winners (email + in-app) and other entrants after a draw","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Notified","content":{"application/json":{"schema":{"type":"object","properties":{"winners_notified":{"type":"integer"},"entrants_notified":{"type":"integer"}},"required":["winners_notified","entrants_notified"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/challenges/{challengeId}/draw.csv":{"get":{"operationId":"exportWinners","summary":"Winners as CSV","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"}],"responses":{"200":{"description":"text/csv"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/redemptions/{code}":{"get":{"operationId":"getRedemption","summary":"Look up a reward redemption code shown at the desk","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"code","in":"path"}],"responses":{"200":{"description":"Redemption","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string"},"challenge_id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"challenge_name":{"type":"string"},"person_name":{"type":"string"},"redeemed_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"reward":{"type":"string"}},"required":["code","challenge_id","challenge_name","person_name","redeemed_at","reward"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/redemptions/{code}/redeem":{"post":{"operationId":"redeemReward","summary":"Mark a reward as handed over","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"code","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Redeemed","content":{"application/json":{"schema":{"type":"object","properties":{"redeemed":{"type":"boolean","enum":[true]}},"required":["redeemed"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/payments":{"get":{"operationId":"listPayments","summary":"Module purchases and receipts","tags":["Modules"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"}],"responses":{"200":{"description":"Payments","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Payment"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/tasks":{"get":{"operationId":"getBoard","summary":"Kanban board: columns, tasks, templates, team (kanban module)","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Board","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BoardWithMeta"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createTask","summary":"Add a task","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":200},"description":{"type":["string","null"],"maxLength":5000},"assignee_id":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"due_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"priority":{"type":"string","enum":["low","normal","urgent"]},"checklist":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","maxLength":200},"done":{"type":"boolean"}},"required":["text","done"]},"maxItems":30},"column_id":{"type":"string"}},"required":["title"]}}}},"responses":{"201":{"description":"Task","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/tasks/{taskId}":{"patch":{"operationId":"updateTask","summary":"Change a task (title, owner, due date, priority, checklist, done)","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tsk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tsk_"},"required":true,"description":"Public id, prefixed tsk_","name":"taskId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTaskInput"}}}},"responses":{"200":{"description":"Task","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteTask","summary":"Delete a task","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tsk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tsk_"},"required":true,"description":"Public id, prefixed tsk_","name":"taskId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/tasks/{taskId}/move":{"post":{"operationId":"moveTask","summary":"Move a task to a column and position","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tsk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tsk_"},"required":true,"description":"Public id, prefixed tsk_","name":"taskId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"column_id":{"type":"string"},"sort":{"type":"integer"}},"required":["column_id","sort"]}}}},"responses":{"200":{"description":"Task","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Task"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/tasks/{taskId}/comments":{"get":{"operationId":"listTaskComments","summary":"Comments on a task","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tsk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tsk_"},"required":true,"description":"Public id, prefixed tsk_","name":"taskId","in":"path"}],"responses":{"200":{"description":"Comments","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TaskComment"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"addTaskComment","summary":"Comment on a task","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^tsk_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tsk_"},"required":true,"description":"Public id, prefixed tsk_","name":"taskId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","maxLength":4000}},"required":["body"]}}}},"responses":{"201":{"description":"Comment","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskComment"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/tasks/apply-template":{"post":{"operationId":"applyTaskTemplate","summary":"Populate the board from a template (default: the one for the event kind)","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"template_id":{"type":"string"}}}}}},"responses":{"201":{"description":"Board","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BoardWithMeta"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/task-columns":{"post":{"operationId":"createColumn","summary":"Add a board column","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"status":{"type":"string","enum":["todo","doing","done"]},"sort":{"type":"integer"}},"required":["name"]}}}},"responses":{"201":{"description":"Column","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","maxLength":60},"sort":{"type":"integer"},"status":{"type":"string","enum":["todo","doing","done"]}},"required":["id","name","sort","status"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/task-columns/{columnId}":{"patch":{"operationId":"updateColumn","summary":"Rename or reorder a column","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"columnId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":60},"status":{"type":"string","enum":["todo","doing","done"]},"sort":{"type":"integer"}}}}}},"responses":{"200":{"description":"Column","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","maxLength":60},"sort":{"type":"integer"},"status":{"type":"string","enum":["todo","doing","done"]}},"required":["id","name","sort","status"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteColumn","summary":"Delete a column (tasks move to another column)","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"columnId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/runsheet":{"get":{"operationId":"listRunsheet","summary":"Runsheet for the day","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Runsheet","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RunsheetItem"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createRunsheetItem","summary":"Add a runsheet item","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"time":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"title":{"type":"string","minLength":1,"maxLength":200},"owner_id":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"status":{"type":"string","enum":["pending","done","skipped"]}},"required":["time","title"]}}}},"responses":{"201":{"description":"Item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsheetItem"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/runsheet/{itemId}":{"patch":{"operationId":"updateRunsheetItem","summary":"Change a runsheet item or its status","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"itemId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"time":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"title":{"type":"string","minLength":1,"maxLength":200},"owner_id":{"type":["string","null"],"pattern":"^usr_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed usr_"},"status":{"type":"string","enum":["pending","done","skipped"]}}}}}},"responses":{"200":{"description":"Item","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunsheetItem"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteRunsheetItem","summary":"Delete a runsheet item","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"itemId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/shifts":{"get":{"operationId":"listShifts","summary":"Team shifts","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Shifts","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"member_id":{"type":"string"},"role":{"type":"string","maxLength":60},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"location":{"type":["string","null"],"maxLength":120},"member_name":{"type":"string"}},"required":["id","member_id","role","starts_at","ends_at","location","member_name"]}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createShift","summary":"Add a shift","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"member_id":{"type":"string"},"role":{"type":"string","minLength":1,"maxLength":60},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"location":{"type":["string","null"],"maxLength":120}},"required":["member_id","role","starts_at","ends_at"]}}}},"responses":{"201":{"description":"Shift","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"member_id":{"type":"string"},"role":{"type":"string","maxLength":60},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"location":{"type":["string","null"],"maxLength":120},"member_name":{"type":"string"}},"required":["id","member_id","role","starts_at","ends_at","location","member_name"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/shifts/{shiftId}":{"patch":{"operationId":"updateShift","summary":"Change a shift","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"shiftId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"member_id":{"type":"string"},"role":{"type":"string","minLength":1,"maxLength":60},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"location":{"type":["string","null"],"maxLength":120}}}}}},"responses":{"200":{"description":"Shift","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"member_id":{"type":"string"},"role":{"type":"string","maxLength":60},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"location":{"type":["string","null"],"maxLength":120},"member_name":{"type":"string"}},"required":["id","member_id","role","starts_at","ends_at","location","member_name"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteShift","summary":"Delete a shift","tags":["Kanban"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"shiftId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/campaigns":{"get":{"operationId":"listCampaigns","summary":"Campaigns, reminder settings and merge fields (communications module)","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Campaigns","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Campaign"}},"reminders":{"type":"object","properties":{"day_before":{"type":"boolean"},"morning_of":{"type":"boolean"}},"required":["day_before","morning_of"]},"merge_fields":{"type":"array","items":{"type":"string"}}},"required":["data","reminders","merge_fields"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createCampaign","summary":"Draft a campaign (Markdown with {{first_name}}, {{event}}, {{ticket_url}}…)","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCampaignInput"}}}},"responses":{"201":{"description":"Campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/campaigns/{campaignId}":{"get":{"operationId":"getCampaign","summary":"One campaign with delivery stats","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cmp_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cmp_"},"required":true,"description":"Public id, prefixed cmp_","name":"campaignId","in":"path"}],"responses":{"200":{"description":"Campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateCampaign","summary":"Edit a draft or scheduled campaign","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cmp_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cmp_"},"required":true,"description":"Public id, prefixed cmp_","name":"campaignId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string","maxLength":200},"body_md":{"type":"string","maxLength":20000},"segment":{"type":["object","null"],"properties":{"ticket_type_ids":{"type":"array","items":{"type":"string","pattern":"^tt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed tt_"}},"checked_in":{"type":"boolean"},"answer":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}},"required":["key","value"]}}},"scheduled_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"}}}}}},"responses":{"200":{"description":"Campaign","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteCampaign","summary":"Delete a campaign that has not gone out","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cmp_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cmp_"},"required":true,"description":"Public id, prefixed cmp_","name":"campaignId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/campaigns/{campaignId}/send":{"post":{"operationId":"sendCampaign","summary":"Send now, or at a time","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cmp_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cmp_"},"required":true,"description":"Public id, prefixed cmp_","name":"campaignId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}}}}}},"responses":{"202":{"description":"Sending or scheduled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/campaigns/{campaignId}/test":{"post":{"operationId":"testCampaign","summary":"Send a test to yourself","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cmp_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cmp_"},"required":true,"description":"Public id, prefixed cmp_","name":"campaignId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","maxLength":254,"format":"email"}}}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"boolean","enum":[true]},"to":{"type":"string","maxLength":254,"format":"email"}},"required":["queued","to"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/reminders":{"patch":{"operationId":"updateReminders","summary":"Toggle the day-before and morning-of reminders","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"day_before":{"type":"boolean"},"morning_of":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Reminders","content":{"application/json":{"schema":{"type":"object","properties":{"day_before":{"type":"boolean"},"morning_of":{"type":"boolean"}},"required":["day_before","morning_of"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/survey":{"get":{"operationId":"getSurvey","summary":"The wrap-up survey (wrap-up module)","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Survey","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Survey"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"put":{"operationId":"updateSurvey","summary":"Set the survey questions (up to 10) and when it goes out","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"questions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":40},"kind":{"type":"string","enum":["rating","text","choice"]},"label":{"type":"string","minLength":1,"maxLength":200},"options":{"type":"array","items":{"type":"string","maxLength":80},"maxItems":8},"required":{"type":"boolean","default":false}},"required":["id","kind","label"]},"maxItems":10},"send_after_hours":{"type":"integer","minimum":1,"maximum":168}}}}}},"responses":{"200":{"description":"Survey","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Survey"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/survey/send":{"post":{"operationId":"sendSurvey","summary":"Send the survey now","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"boolean","enum":[true]}},"required":["queued"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/survey/results":{"get":{"operationId":"getSurveyResults","summary":"Survey results","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SurveyResults"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/surveys/{token}":{"get":{"operationId":"getPublicSurvey","summary":"A survey from an emailed link","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Survey","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicSurvey"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"answerSurvey","summary":"Submit survey answers","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"token","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"answers":{"type":"object","additionalProperties":{"anyOf":[{"type":"string","maxLength":2000},{"type":"number"}]}}},"required":["answers"]}}}},"responses":{"200":{"description":"Saved","content":{"application/json":{"schema":{"type":"object","properties":{"saved":{"type":"boolean","enum":[true]}},"required":["saved"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/report":{"get":{"operationId":"getEventReport","summary":"One-page event report (wrap-up module)","tags":["Communications"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Report","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventReport"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/channels":{"get":{"operationId":"listChannels","summary":"Event channels attendees can read and post in","tags":["Moderation"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Channels","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Channel"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"openChannel","summary":"Open a channel (every ticket holder joins; read-only 7 days after the event)","tags":["Moderation"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","maxLength":80}},"required":["title"]}}}},"responses":{"201":{"description":"Channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Channel"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/channels/{channelId}/announce":{"post":{"operationId":"announceInChannel","summary":"Post as the organiser","tags":["Moderation"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"channelId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","maxLength":4000}},"required":["body"]}}}},"responses":{"201":{"description":"Posted","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^msg_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed msg_"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","created_at"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/channels/{channelId}/mute":{"post":{"operationId":"muteInChannel","summary":"Mute a person in a channel for a number of hours","tags":["Moderation"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"channelId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"person_id":{"type":"string","pattern":"^per_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed per_"},"hours":{"type":"integer","minimum":1,"maximum":720,"default":24}},"required":["person_id"]}}}},"responses":{"200":{"description":"Muted","content":{"application/json":{"schema":{"type":"object","properties":{"muted_until":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["muted_until"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/channels/{channelId}":{"delete":{"operationId":"closeChannel","summary":"Close a channel (read-only)","tags":["Moderation"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cnv_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cnv_"},"required":true,"description":"Public id, prefixed cnv_","name":"channelId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Closed"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/reports":{"get":{"operationId":"listReports","summary":"Reports about the event’s channels and attendees","tags":["Moderation"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","enum":["open","resolved","dismissed"]},"required":false,"name":"status","in":"query"}],"responses":{"200":{"description":"Reports","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ModerationReport"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/reports/{reportId}":{"patch":{"operationId":"updateReport","summary":"Resolve or dismiss a report","tags":["Moderation"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"reportId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["resolved","dismissed"]}},"required":["status"]}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"}},"required":["id","status"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/messages/{messageId}/remove":{"post":{"operationId":"removeMessage","summary":"Remove a message from one of your channels","tags":["Moderation"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^msg_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed msg_"},"required":true,"description":"Public id, prefixed msg_","name":"messageId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Removed","content":{"application/json":{"schema":{"type":"object","properties":{"removed":{"type":"boolean","enum":[true]}},"required":["removed"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/assets":{"post":{"operationId":"uploadAsset","summary":"Upload an image (JSON url/base64, or multipart \"file\"); max 10 MB","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"data_base64":{"type":"string"},"mime":{"type":"string","enum":["image/jpeg","image/png","image/webp","image/gif","image/svg+xml"]},"purpose":{"type":"string","enum":["hero","logo","gallery","og","speaker","sponsor","receipt","photo","cover"],"default":"gallery"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}}}}}},"responses":{"201":{"description":"Asset","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"kind":{"type":"string","enum":["image","logo","document"]},"url":{"type":"string","maxLength":2048,"format":"uri","description":"CDN URL; append /thumb, /card or /hero for presets"},"width":{"type":["integer","null"]},"height":{"type":["integer","null"]},"bytes":{"type":"integer"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"mime":{"type":"string"},"purpose":{"type":"string"}},"required":["id","kind","url","width","height","bytes","created_at","mime","purpose"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/assets/{assetId}":{"get":{"operationId":"getAsset","summary":"Asset details","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"required":true,"description":"Public id, prefixed ast_","name":"assetId","in":"path"}],"responses":{"200":{"description":"Asset","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetView"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteAsset","summary":"Delete an asset","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"required":true,"description":"Public id, prefixed ast_","name":"assetId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/photo":{"post":{"operationId":"uploadMyPhoto","summary":"Upload my profile photo (multipart \"file\" or JSON base64)","tags":["Me"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","maxLength":2048,"format":"uri"},"data_base64":{"type":"string"},"mime":{"type":"string","enum":["image/jpeg","image/png","image/webp","image/gif","image/svg+xml"]},"purpose":{"type":"string","enum":["hero","logo","gallery","og","speaker","sponsor","receipt","photo","cover"],"default":"gallery"},"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"}}}}}},"responses":{"201":{"description":"Photo","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssetView"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/assets/{assetId}":{"get":{"operationId":"getPublicAsset","summary":"The image bytes","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"required":true,"description":"Public id, prefixed ast_","name":"assetId","in":"path"}],"responses":{"200":{"description":"Image"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/domains":{"get":{"operationId":"listDomains","summary":"Custom domains for the event page","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Domains","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/DomainView"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"connectDomain","summary":"Connect a domain you own; returns the CNAME and TXT records (Pro site module)","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"hostname":{"type":"string","minLength":4,"maxLength":253,"pattern":"^(?!-)[a-z0-9-]+(\\.[a-z0-9-]+)+$"}},"required":["hostname"]}}}},"responses":{"201":{"description":"Domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainView"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/{domainId}":{"get":{"operationId":"getDomain","summary":"Domain status","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^dom_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed dom_"},"required":true,"description":"Public id, prefixed dom_","name":"domainId","in":"path"}],"responses":{"200":{"description":"Domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainView"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"disconnectDomain","summary":"Disconnect a domain","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^dom_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed dom_"},"required":true,"description":"Public id, prefixed dom_","name":"domainId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Disconnected"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/{domainId}/verify":{"post":{"operationId":"verifyDomain","summary":"Re-check DNS and certificate","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^dom_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed dom_"},"required":true,"description":"Public id, prefixed dom_","name":"domainId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Domain","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainView"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/search":{"get":{"operationId":"searchDomains","summary":"Domain ideas (purchasing is feature-flagged)","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":80},"required":true,"name":"query","in":"query"}],"responses":{"200":{"description":"Ideas","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainSearchResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/domains/check":{"get":{"operationId":"checkDomain","summary":"Availability of one domain","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"hostname","in":"query"}],"responses":{"200":{"description":"Availability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainSearchResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/domains/buy":{"post":{"operationId":"buyDomain","summary":"Buy a domain (coming soon)","tags":["Pages"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"hostname":{"type":"string"}},"required":["hostname"]}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string"}},"required":["status"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/export":{"post":{"operationId":"exportOrganisation","summary":"Queue a zip export (one CSV per event, team, manifest) by email","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"boolean","enum":[true]},"to":{"type":"string","maxLength":254,"format":"email"}},"required":["queued","to"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/organisations/{id}/deletion":{"get":{"operationId":"getOrgDeletion","summary":"Deletion status","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"}],"responses":{"200":{"description":"Status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgDeletionStatus"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"requestOrgDeletion","summary":"Delete the organisation after 30 days (owner; type the name to confirm)","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"confirm_name":{"type":"string"}},"required":["confirm_name"]}}}},"responses":{"200":{"description":"Requested","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgDeletionStatus"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"cancelOrgDeletion","summary":"Cancel the deletion","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^org_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed org_"},"required":true,"description":"Public id, prefixed org_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"200":{"description":"Cancelled","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrgDeletionStatus"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/public/domains/{hostname}":{"get":{"operationId":"resolveDomain","summary":"Which event a custom hostname serves (active domains only)","tags":["Public"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"hostname","in":"path"}],"responses":{"200":{"description":"Resolved","content":{"application/json":{"schema":{"type":"object","properties":{"hostname":{"type":"string"},"slug":{"type":"string"},"canonical":{"type":"boolean"}},"required":["hostname","slug","canonical"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/sponsor-tiers/{tierId}":{"patch":{"operationId":"updateSponsorTier","summary":"Change a tier","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tierId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":60},"price_minor":{"type":["integer","null"],"minimum":0},"benefits":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"placement":{"type":"string","enum":["top","middle","bottom"]},"sort":{"type":"integer"}}}}}},"responses":{"200":{"description":"Tier","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SponsorTier"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteSponsorTier","summary":"Delete a tier (sponsors keep their other details)","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"tierId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/incomes/{incomeId}":{"delete":{"operationId":"deleteIncome","summary":"Delete a manual income line","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string"},"required":true,"name":"incomeId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/api-keys/{keyId}/rotate":{"post":{"operationId":"rotateApiKey","summary":"Rotate a key: the old one stops working at once, the new secret is shown once","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^key_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed key_"},"required":true,"description":"Public id, prefixed key_","name":"keyId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"201":{"description":"New key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreated"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/org-notifications":{"get":{"operationId":"listOrgNotifications","summary":"The signed-in organiser’s notifications for the active organisation, newest first","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":["boolean","null"]},"required":false,"name":"unread","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":40},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Notifications","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"kind":{"type":"string"},"title":{"type":"string"},"body":{"type":["string","null"]},"link":{"type":["string","null"]},"data":{"type":"object","additionalProperties":{}},"read_at":{"type":["string","null"],"format":"date-time","description":"ISO 8601 with offset"},"created_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["id","kind","title","body","link","data","read_at","created_at"]}},"unread":{"type":"integer"}},"required":["data","unread"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/me/org-notifications/read":{"post":{"operationId":"readOrgNotifications","summary":"Mark notifications read (all, or the given ids)","tags":["Organisations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"200":{"description":"Marked","content":{"application/json":{"schema":{"type":"object","properties":{"read":{"type":"integer"}},"required":["read"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/health":{"get":{"operationId":"health","summary":"Liveness and database check","tags":["Public"],"security":[{"publishableKey":[]},{}],"responses":{"200":{"description":"Health","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/.well-known/oauth-authorization-server":{"get":{"operationId":"oauthMetadata","summary":"Authorization server metadata (RFC 8414)","tags":["OAuth"],"security":[],"responses":{"200":{"description":"Metadata","content":{"application/json":{"schema":{"type":"object","properties":{"issuer":{"type":"string","maxLength":2048,"format":"uri"},"authorization_endpoint":{"type":"string","maxLength":2048,"format":"uri"},"token_endpoint":{"type":"string","maxLength":2048,"format":"uri"},"registration_endpoint":{"type":"string","maxLength":2048,"format":"uri"},"revocation_endpoint":{"type":"string","maxLength":2048,"format":"uri"},"code_challenge_methods_supported":{"type":"array","items":{"type":"string","enum":["S256"]}},"scopes_supported":{"type":"array","items":{"type":"string","enum":["events:read","events:write","orders:read","orders:refund","pages:write","domains:buy","finance:read","finance:write","tasks:read","tasks:write","analytics:read","challenges:write","sponsors:write"]}}},"required":["issuer","authorization_endpoint","token_endpoint","registration_endpoint","revocation_endpoint","code_challenge_methods_supported","scopes_supported"]}}}}}}},"/oauth/register":{"post":{"operationId":"oauthRegister","summary":"Dynamic client registration (RFC 7591), public clients with PKCE","tags":["OAuth"],"security":[],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"client_name":{"type":"string"},"redirect_uris":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"}},"client_uri":{"type":"string","maxLength":2048,"format":"uri"},"logo_uri":{"type":"string","maxLength":2048,"format":"uri"}},"required":["client_name","redirect_uris"]}}}},"responses":{"201":{"description":"Client","content":{"application/json":{"schema":{"type":"object","properties":{"client_id":{"type":"string"},"client_id_issued_at":{"type":"integer"},"client_name":{"type":"string"},"redirect_uris":{"type":"array","items":{"type":"string","maxLength":2048,"format":"uri"}},"token_endpoint_auth_method":{"type":"string","enum":["none"]},"grant_types":{"type":"array","items":{"type":"string"}},"response_types":{"type":"array","items":{"type":"string","enum":["code"]}},"scope":{"type":"string"}},"required":["client_id","client_id_issued_at","client_name","redirect_uris","token_endpoint_auth_method","grant_types","response_types","scope"]}}}},"400":{"description":"OAuth error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"error_description":{"type":"string"}},"required":["error","error_description"]}}}}}}},"/oauth/authorize":{"get":{"operationId":"oauthAuthorize","summary":"Start authorisation; redirects to the consent screen in the organiser app","tags":["OAuth"],"security":[],"parameters":[{"schema":{"type":"string","enum":["code"]},"required":true,"name":"response_type","in":"query"},{"schema":{"type":"string"},"required":true,"name":"client_id","in":"query"},{"schema":{"type":"string","maxLength":2048,"format":"uri"},"required":true,"name":"redirect_uri","in":"query"},{"schema":{"type":"string"},"required":false,"name":"scope","in":"query"},{"schema":{"type":"string"},"required":false,"name":"state","in":"query"},{"schema":{"type":"string"},"required":true,"name":"code_challenge","in":"query"},{"schema":{"type":"string","enum":["S256"]},"required":true,"name":"code_challenge_method","in":"query"},{"schema":{"type":"string","maxLength":2048,"format":"uri"},"required":false,"name":"resource","in":"query"}],"responses":{"302":{"description":"Redirect to consent, or back to the client with an error"},"400":{"description":"OAuth error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"error_description":{"type":"string"}},"required":["error","error_description"]}}}}}}},"/oauth/token":{"post":{"operationId":"oauthToken","summary":"Exchange a code (PKCE) or refresh token for an access token","tags":["OAuth"],"security":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"grant_type":{"type":"string","enum":["authorization_code","refresh_token"]},"code":{"type":"string"},"redirect_uri":{"type":"string","maxLength":2048,"format":"uri"},"client_id":{"type":"string"},"code_verifier":{"type":"string"},"refresh_token":{"type":"string"}},"required":["grant_type"]}}}},"responses":{"200":{"description":"Tokens (access 1 hour, refresh 30 days, rotated)","content":{"application/json":{"schema":{"type":"object","properties":{"access_token":{"type":"string"},"token_type":{"type":"string","enum":["Bearer"]},"expires_in":{"type":"integer"},"refresh_token":{"type":"string"},"scope":{"type":"string"}},"required":["access_token","token_type","expires_in","refresh_token","scope"]}}}},"400":{"description":"OAuth error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"error_description":{"type":"string"}},"required":["error","error_description"]}}}}}}},"/oauth/revoke":{"post":{"operationId":"oauthRevoke","summary":"Revoke an access or refresh token (RFC 7009)","tags":["OAuth"],"security":[],"requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"type":"object","properties":{"token":{"type":"string"},"token_type_hint":{"type":"string"}},"required":["token"]}}}},"responses":{"200":{"description":"Always 200 for well-formed requests","content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"400":{"description":"OAuth error","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"error_description":{"type":"string"}},"required":["error","error_description"]}}}}}}},"/v1/events/{id}/analytics":{"get":{"operationId":"getEventAnalytics","summary":"Sales over time, sources, funnel, check-in rate, arrivals, opt-in, connections","description":"Needs the analytics module (403 module_required otherwise).","tags":["Analytics"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"required":false,"name":"from","in":"query"},{"schema":{"type":"string","pattern":"^\\d{4}-\\d{2}-\\d{2}$"},"required":false,"name":"to","in":"query"}],"responses":{"200":{"description":"Analytics","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventAnalytics"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/sponsors/{sponsorId}/engagement":{"get":{"operationId":"getSponsorEngagement","summary":"Reach, views, clicks, chats, scans, redemptions and leads for one sponsor","tags":["Analytics"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"}],"responses":{"200":{"description":"Engagement","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SponsorEngagement"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/booths/heatmap":{"get":{"operationId":"getBoothHeatmap","summary":"Visits per booth per hour","tags":["Analytics"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Heatmap","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BoothHeatmap"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/analytics/rollup":{"post":{"operationId":"runRollup","summary":"Run the hourly and daily rollups now (the cron does this hourly)","tags":["Analytics"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Rollup summary","content":{"application/json":{"schema":{"type":"object","properties":{"hourly_rows_written":{"type":"integer"},"daily_rows_written":{"type":"integer"}},"required":["hourly_rows_written","daily_rows_written"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/interactions":{"post":{"operationId":"recordInteractions","summary":"Record app interactions as the signed-in attendee (sponsor views, clicks, booth scans)","tags":["Analytics"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/IngestInteractionsInput"}}}},"responses":{"202":{"description":"Accepted","content":{"application/json":{"schema":{"type":"object","properties":{"accepted":{"type":"integer"}},"required":["accepted"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/challenges":{"get":{"operationId":"listChallenges","summary":"Challenges with participants and completions","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Challenges","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Challenge"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createChallenge","summary":"Create a challenge from actions, targets and a reward","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateChallengeInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Challenge"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/challenges/{challengeId}":{"get":{"operationId":"getChallenge","summary":"One challenge","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"}],"responses":{"200":{"description":"Challenge","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Challenge"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateChallenge","summary":"Change a challenge (actions only while scheduled)","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":1000},"template":{"type":"string","enum":["booth_quest","connector","session_explorer","zone_passport","early_bird","profile_pro","team","custom"]},"actions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["booth_scan","exhibitor_connection","attendee_connection","session_checkin","sponsor_visit","offer_redemption","survey_answer","early_checkin","profile_complete"]},"target":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","enum":["all"]}},"required":["kind"]},{"type":"object","properties":{"kind":{"type":"string","enum":["count"]},"value":{"type":"integer","exclusiveMinimum":0}},"required":["kind","value"]},{"type":"object","properties":{"kind":{"type":"string","enum":["percent"]},"value":{"type":"integer","minimum":1,"maximum":100}},"required":["kind","value"]},{"type":"object","properties":{"kind":{"type":"string","enum":["zone"]},"zone_id":{"type":"string","pattern":"^zon_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed zon_"},"all":{"type":"boolean","default":true}},"required":["kind","zone_id"]},{"type":"object","properties":{"kind":{"type":"string","enum":["list"]},"ids":{"type":"array","items":{"type":"string"},"minItems":1}},"required":["kind","ids"]},{"type":"object","properties":{"kind":{"type":"string","enum":["before"]},"time":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["kind","time"]}]},"points":{"type":"integer","minimum":0,"default":1},"label":{"type":"string","maxLength":80,"description":"Shown to attendees, e.g. \"Scan 20 booths\""}},"required":["type","target"]},"minItems":1,"maxItems":10},"combine":{"type":"string","enum":["all","any","points"]},"points_threshold":{"type":["integer","null"],"exclusiveMinimum":0},"verification":{"type":"string","enum":["staff_scan","self_scan_allowed"]},"cooldown_seconds":{"type":"integer","minimum":0},"daily_cap":{"type":["integer","null"],"exclusiveMinimum":0},"reward":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["prize_draw"]},"prize":{"type":"string","maxLength":200},"winners":{"type":"integer","exclusiveMinimum":0},"draw_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"}},"required":["type","prize","winners"]},{"type":"object","properties":{"type":{"type":"string","enum":["instant"]},"description":{"type":"string","maxLength":200},"first_n":{"type":"integer","exclusiveMinimum":0}},"required":["type","description","first_n"]},{"type":"object","properties":{"type":{"type":"string","enum":["points"]},"levels":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"min_points":{"type":"integer"}},"required":["name","min_points"]},"maxItems":10}},"required":["type","levels"]},{"type":"object","properties":{"type":{"type":"string","enum":["badge"]},"name":{"type":"string","maxLength":40},"icon":{"type":"string","maxLength":40}},"required":["type","name","icon"]},{"type":"object","properties":{"type":{"type":"string","enum":["leaderboard"]},"top_n":{"type":"integer","exclusiveMinimum":0},"prizes":{"type":"array","items":{"type":"string"},"maxItems":10}},"required":["type","top_n","prizes"]},{"type":"object","properties":{"type":{"type":"string","enum":["discount_code"]},"description":{"type":"string","maxLength":200},"percent":{"type":"integer","minimum":1,"maximum":100}},"required":["type","description","percent"]},{"type":"object","properties":{"type":{"type":"string","enum":["vip_access"]},"description":{"type":"string","maxLength":200}},"required":["type","description"]},{"type":"object","properties":{"type":{"type":"string","enum":["donation"]},"charity":{"type":"string","maxLength":120},"amount_minor":{"type":"integer","exclusiveMinimum":0},"currency":{"type":"string","minLength":3,"maxLength":3}},"required":["type","charity","amount_minor","currency"]}]},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"ends_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"status":{"type":"string","enum":["DRAFT","SCHEDULED","LIVE","ENDED"]}}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Challenge"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/challenges/{challengeId}/stats":{"get":{"operationId":"getChallengeStats","summary":"Completion and per-action progress distribution","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"}],"responses":{"200":{"description":"Stats","content":{"application/json":{"schema":{"type":"object","properties":{"challenge_id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"participants":{"type":"integer"},"completions":{"type":"integer"},"redemptions":{"type":"integer"},"actions":{"type":"array","items":{"type":"object","properties":{"action_id":{"type":"string"},"label":{"type":["string","null"]},"type":{"type":"string","enum":["booth_scan","exhibitor_connection","attendee_connection","session_checkin","sponsor_visit","offer_redemption","survey_answer","early_checkin","profile_complete"]},"target":{"type":"integer"},"started":{"type":"integer"},"done":{"type":"integer"},"distribution":{"type":"object","additionalProperties":{"type":"integer"}}},"required":["action_id","label","type","target","started","done","distribution"]}},"completions_by_hour":{"type":"array","items":{"type":"object","properties":{"hour":{"type":"string","format":"date-time","description":"ISO 8601 with offset"},"count":{"type":"integer"}},"required":["hour","count"]}}},"required":["challenge_id","participants","completions","redemptions","actions","completions_by_hour"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/challenges/{challengeId}/leaderboard":{"get":{"operationId":"getLeaderboard","summary":"Top entries by points and completion time","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Leaderboard","content":{"application/json":{"schema":{"type":"object","properties":{"challenge_id":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"entries":{"type":"array","items":{"$ref":"#/components/schemas/LeaderboardEntry"}}},"required":["challenge_id","entries"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/challenges/{challengeId}/draw":{"post":{"operationId":"drawWinners","summary":"Draw winners fairly (seeded shuffle, recorded); agents get a confirmation link","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"201":{"description":"Draw","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrawResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"get":{"operationId":"getDraw","summary":"The recorded draw","tags":["Challenges"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^chl_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed chl_"},"required":true,"description":"Public id, prefixed chl_","name":"challengeId","in":"path"}],"responses":{"200":{"description":"Draw","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrawResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/costs":{"get":{"operationId":"listCosts","summary":"Costs","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Costs","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Cost"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"addCost","summary":"Record a cost against a budget category","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCostInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cost"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/costs/{costId}":{"delete":{"operationId":"deleteCost","summary":"Delete a cost","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^cst_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed cst_"},"required":true,"description":"Public id, prefixed cst_","name":"costId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/incomes":{"get":{"operationId":"listIncomes","summary":"Non-ticket income","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Incomes","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Income"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"addIncome","summary":"Record sponsorship, grant or other income","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIncomeInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Income"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/budget":{"get":{"operationId":"getBudget","summary":"Budget lines, planned against actual","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Budget","content":{"application/json":{"schema":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"currency":{"type":"string"},"lines":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["venue","food_drink","production","people","marketing","other"]},"planned_minor":{"type":"integer","minimum":0},"actual_minor":{"type":"integer","minimum":0}},"required":["category","planned_minor","actual_minor"]}}},"required":["event_id","currency","lines"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"put":{"operationId":"setBudget","summary":"Set planned amounts per category","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"lines":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["venue","food_drink","production","people","marketing","other"]},"planned_minor":{"type":"integer","minimum":0}},"required":["category","planned_minor"]}}},"required":["lines"]}}}},"responses":{"200":{"description":"Budget","content":{"application/json":{"schema":{"type":"object","properties":{"event_id":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"currency":{"type":"string"},"lines":{"type":"array","items":{"type":"object","properties":{"category":{"type":"string","enum":["venue","food_drink","production","people","marketing","other"]},"planned_minor":{"type":"integer","minimum":0},"actual_minor":{"type":"integer","minimum":0}},"required":["category","planned_minor","actual_minor"]}}},"required":["event_id","currency","lines"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/pnl":{"get":{"operationId":"getPnl","summary":"Live profit and loss with break-even","tags":["Finance"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"P&L","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pnl"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/sponsors":{"get":{"operationId":"listSponsors","summary":"Exhibitors and sponsors with booth, tier, staff and engagement count","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Sponsors","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Sponsor"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createSponsor","summary":"Add an exhibitor or sponsor (optionally with a tier, booth and staff invites)","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSponsorInput"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sponsor"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/sponsors/{sponsorId}":{"get":{"operationId":"getSponsor","summary":"One exhibitor or sponsor","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"}],"responses":{"200":{"description":"Sponsor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sponsor"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"patch":{"operationId":"updateSponsor","summary":"Change an exhibitor or sponsor","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["exhibitor","sponsor","both"]},"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":["string","null"],"maxLength":3000},"links":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":40},"url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["label","url"]},"maxItems":6},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string","maxLength":120},"code":{"type":["string","null"],"maxLength":40},"url":{"type":["string","null"],"maxLength":2048,"format":"uri"}},"required":["id","title","code","url"]},"maxItems":10},"tier_id":{"type":["string","null"]},"booth_id":{"type":["string","null"],"pattern":"^bth_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed bth_"},"looking_for":{"type":"array","items":{"type":"string","maxLength":40},"default":[]},"contact_email":{"type":["string","null"],"maxLength":254,"format":"email","default":null},"crm_webhook_url":{"type":["string","null"],"maxLength":2048,"format":"uri","default":null},"logo_asset_id":{"type":"string","pattern":"^ast_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ast_"},"staff_emails":{"type":"array","items":{"type":"string","maxLength":254,"format":"email"},"maxItems":20},"lead_capture_enabled":{"type":"boolean"}}}}}},"responses":{"200":{"description":"Updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Sponsor"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"delete":{"operationId":"deleteSponsor","summary":"Remove an exhibitor or sponsor","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"responses":{"204":{"description":"Deleted"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/sponsor-tiers":{"get":{"operationId":"listSponsorTiers","summary":"Sponsor tiers","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"}],"responses":{"200":{"description":"Tiers","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/SponsorTier"}},"next_cursor":{"type":["string","null"]}},"required":["data","next_cursor"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}},"post":{"operationId":"createSponsorTier","summary":"Add a sponsor tier","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","maxLength":60},"price_minor":{"type":["integer","null"],"minimum":0},"benefits":{"type":"array","items":{"type":"string","maxLength":200},"maxItems":20},"placement":{"type":"string","enum":["top","middle","bottom"]}},"required":["name"]}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SponsorTier"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/sponsors/{sponsorId}/report":{"post":{"operationId":"sendSponsorReport","summary":"Email the post-event report to the exhibitor (sponsors module)","tags":["Sponsors"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^spn_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed spn_"},"required":true,"description":"Public id, prefixed spn_","name":"sponsorId","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"array","items":{"type":"string","maxLength":254,"format":"email"}},"message":{"type":"string","maxLength":2000}}}}}},"responses":{"202":{"description":"Queued","content":{"application/json":{"schema":{"type":"object","properties":{"queued":{"type":"boolean","enum":[true]},"recipients":{"type":"array","items":{"type":"string","maxLength":254,"format":"email"}}},"required":["queued","recipients"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/modules/quote":{"post":{"operationId":"quoteModules","summary":"Price a selection of modules (bundle applies automatically)","tags":["Modules"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"modules":{"type":"array","items":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]},"minItems":1},"booths":{"type":"integer","exclusiveMinimum":0}},"required":["modules"]}}}},"responses":{"200":{"description":"Quote","content":{"application/json":{"schema":{"type":"object","properties":{"modules":{"type":"array","items":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]}},"amount_minor":{"type":"integer"},"bundle":{"type":"boolean"},"lines":{"type":"array","items":{"type":"object","properties":{"module":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]},"label":{"type":"string"},"amount_minor":{"type":"integer"}},"required":["module","label","amount_minor"]}},"currency":{"type":"string"},"booths":{"type":"integer"}},"required":["modules","amount_minor","bundle","lines","currency","booths"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/modules/checkout":{"post":{"operationId":"enableModules","summary":"Start a Stripe Checkout for modules on this event (agents get a confirmation link)","tags":["Modules"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"modules":{"type":"array","items":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]},"minItems":1},"booths":{"type":"integer","exclusiveMinimum":0},"success_url":{"type":"string","maxLength":2048,"format":"uri"},"cancel_url":{"type":"string","maxLength":2048,"format":"uri"}},"required":["modules"]}}}},"responses":{"201":{"description":"Checkout URL, enabled, or contact_sales","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableModuleResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/modules/{module}/checkout":{"post":{"operationId":"enableModule","summary":"Start a Stripe Checkout for one module","tags":["Modules"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]},"required":true,"name":"module","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"booths":{"type":"integer","exclusiveMinimum":0},"success_url":{"type":"string","maxLength":2048,"format":"uri"},"cancel_url":{"type":"string","maxLength":2048,"format":"uri"}}}}}},"responses":{"201":{"description":"Checkout URL, enabled, or contact_sales","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnableModuleResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/events/{id}/modules/{module}/grant":{"post":{"operationId":"grantModule","summary":"Owner grant: trial or organisation-wide plan entitlement","tags":["Modules"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^evt_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed evt_"},"required":true,"description":"Public id, prefixed evt_","name":"id","in":"path"},{"schema":{"type":"string","enum":["challenges","analytics","kanban","finance","sponsors","lead_capture","communications","pro_site","wrap_up","bundle"]},"required":true,"name":"module","in":"path"},{"schema":{"type":"string","maxLength":200,"description":"Unique per logical write (a UUID is fine). Repeats return the first response."},"required":true,"description":"Unique per logical write (a UUID is fine). Repeats return the first response.","name":"Idempotency-Key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"type":"string","enum":["trial","org_plan"]},"days":{"type":"integer"},"booths":{"type":"integer"}}}}}},"responses":{"201":{"description":"Granted","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModuleState"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/webhooks/stripe":{"post":{"operationId":"stripeWebhook","summary":"Stripe events (checkout.session.completed, charge.refunded, account.updated)","tags":["Webhooks"],"security":[],"parameters":[{"schema":{"type":"string"},"required":true,"name":"stripe-signature","in":"header"}],"responses":{"200":{"description":"Received","content":{"application/json":{"schema":{"type":"object","properties":{"received":{"type":"boolean","enum":[true]}},"required":["received"]}}}},"400":{"description":"Bad signature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations/providers":{"get":{"operationId":"listIntegrationProviders","summary":"Which event platforms this deployment can connect","tags":["Integrations"],"security":[{"publishableKey":[]},{}],"responses":{"200":{"description":"Providers with availability","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationProviders"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations":{"get":{"operationId":"listConnectedAccounts","summary":"The signed-in person's connected Eventbrite and Meetup accounts","tags":["Integrations"],"security":[{"secretKey":[]}],"responses":{"200":{"description":"Connected accounts (no token material)","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ConnectedAccount"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations/{provider}/connect":{"post":{"operationId":"connectIntegration","summary":"Start connecting Eventbrite or Meetup (returns a one-time link to open in the top-level window)","description":"Eventbrite and Meetup events are read only through the platforms' official APIs with the organiser's own OAuth grant; their pages are never fetched. Hidden (404) when the platform app is not configured. The link sets a short-lived state cookie and continues to the platform; the platform redirects to /v1/integrations/{provider}/callback, which returns the browser to the app with ?integration=&result=.","tags":["Integrations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","enum":["eventbrite","meetup"]},"required":true,"name":"provider","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectIntegrationInput"}}}},"responses":{"200":{"description":"Link to open","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectIntegrationResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations/{provider}/start":{"get":{"operationId":"startIntegration","summary":"Browser hop: sets the state cookie and redirects to the platform's authorize page","tags":["Integrations"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string","enum":["eventbrite","meetup"]},"required":true,"name":"provider","in":"path"},{"schema":{"type":"string"},"required":true,"name":"state","in":"query"}],"responses":{"302":{"description":"Redirect to Eventbrite or Meetup"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations/{provider}/callback":{"get":{"operationId":"integrationCallback","summary":"OAuth redirect URI registered with the platform","tags":["Integrations"],"security":[{"publishableKey":[]},{}],"parameters":[{"schema":{"type":"string","enum":["eventbrite","meetup"]},"required":true,"name":"provider","in":"path"},{"schema":{"type":"string"},"required":false,"name":"code","in":"query"},{"schema":{"type":"string"},"required":false,"name":"state","in":"query"},{"schema":{"type":"string"},"required":false,"name":"error","in":"query"}],"responses":{"302":{"description":"Back to the organiser app or Discovery with ?integration=<provider>&result=connected|error"},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations/{id}/sync":{"post":{"operationId":"syncConnectedAccount","summary":"Sync now: re-read upcoming events from the platform and update Discovery","tags":["Integrations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ica_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ica_"},"required":true,"description":"Public id, prefixed ica_","name":"id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"200":{"description":"Synced","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IntegrationSyncResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations/{id}":{"delete":{"operationId":"disconnectAccount","summary":"Disconnect: deletes the stored tokens and removes the listings it supplied","tags":["Integrations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ica_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ica_"},"required":true,"description":"Public id, prefixed ica_","name":"id","in":"path"}],"responses":{"200":{"description":"Disconnected","content":{"application/json":{"schema":{"type":"object","properties":{"disconnected":{"type":"boolean","enum":[true]},"sources_removed":{"type":"integer"},"events_removed":{"type":"integer"}},"required":["disconnected","sources_removed","events_removed"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations/{id}/events":{"get":{"operationId":"listExternalEvents","summary":"Upcoming events from a connected account","tags":["Integrations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ica_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ica_"},"required":true,"description":"Public id, prefixed ica_","name":"id","in":"path"}],"responses":{"200":{"description":"Events","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ExternalEvent"}}},"required":["data"]}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}},"/v1/integrations/{id}/events/{external_id}/copy":{"post":{"operationId":"copyExternalEvent","summary":"Copy a platform event into the active organisation as a draft Konecto event","description":"Needs X-Konecto-Org and the EDITOR role. Adds a General admission ticket: free until the organisation can take payments.","tags":["Integrations"],"security":[{"secretKey":[]}],"parameters":[{"schema":{"type":"string","pattern":"^ica_[A-Za-z0-9]{12,32}$","description":"Public id, prefixed ica_"},"required":true,"description":"Public id, prefixed ica_","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"external_id","in":"path"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}}},"responses":{"201":{"description":"Draft event created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CopyExternalEventResult"}}}},"400":{"description":"Invalid request or missing Idempotency-Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"401":{"description":"Missing or invalid credential","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"403":{"description":"Missing role, scope or module","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"409":{"description":"Conflict: sold out, already exists, or state does not allow this","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}},"429":{"description":"Rate limited","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiError"}}}}}}}},"webhooks":{}}