{"openapi":"3.1.0","info":{"title":"Valore API","version":"2026-09-28","description":"REST API for Valore calendars, events, guests and more. Authenticate with `Authorization: Bearer vlr_…`. Rate limit: 300 requests per minute per key. Docs: https://valore.app/docs","contact":{"name":"Valore developers","url":"https://valore.app/docs"}},"servers":[{"url":"https://valore.app"}],"security":[{"bearerAuth":[]}],"tags":[{"name":"Key introspection","description":"Find out which calendar and account a key acts as, and its scope."},{"name":"Calendar","description":"The calendar (organization) this key belongs to. Every other resource is scoped to it."},{"name":"Events","description":"Create, update, publish, duplicate, cancel and delete events."},{"name":"Guests","description":"Registrations for an event: approve, decline, waitlist, check in, add or remove people."},{"name":"Invitations","description":"Email invitations to an event, and whether they were opened or accepted."},{"name":"Hosts & staff","description":"Who runs an event: hosts (shown on the page), managers (hidden) and check-in staff."},{"name":"Ticket types","description":"Free and paid tickets. Prices are integer cents in the event's currency."},{"name":"Coupons","description":"Discount codes for paid tickets."},{"name":"Registration questions","description":"Questions guests answer when registering. Answers appear on the guest as `answers`."},{"name":"Orders","description":"Ticket purchases. Amounts are integer cents."},{"name":"Feedback","description":"Post-event ratings (1–5) and comments."},{"name":"Blasts","description":"Email updates to an event's guests, written in markdown."},{"name":"Subscribers","description":"People following the calendar (your newsletter audience)."},{"name":"Team","description":"People with a role on the calendar: owner, admins and members."},{"name":"Webhooks","description":"Manage endpoints and inspect deliveries programmatically. See the Webhooks guide for payloads and signatures."}],"paths":{"/api/v1/me":{"get":{"tags":["Key introspection"],"operationId":"get_me","summary":"Retrieve the current key","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"key":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"scope":{"type":"string"}}},"calendar":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}}},"rate_limit":{"type":"object","properties":{"requests_per_minute":{"type":"integer"}}}}}}},"example":{"data":{"key":{"id":"key_1","name":"Zapier","prefix":"vlr_a1b2c3d4","scope":"read_write"},"calendar":{"id":"cal_9x1kq2","slug":"sf-ai-builders","name":"SF AI Builders"},"user":{"id":"usr_1","name":"Jordan Reyes","email":"jordan@example.com"},"rate_limit":{"requests_per_minute":300}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/calendar":{"get":{"tags":["Calendar"],"operationId":"get_calendar","summary":"Retrieve the calendar","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"avatar_url":{"type":"string"},"cover_url":{"type":"string","nullable":true},"tint_color":{"type":"string"},"timezone":{"type":"string"},"city":{"type":"string"},"website_url":{"type":"string"},"is_personal":{"type":"boolean"},"is_verified":{"type":"boolean"},"event_count":{"type":"integer"},"subscriber_count":{"type":"integer"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"cal_9x1kq2","slug":"sf-ai-builders","name":"SF AI Builders","description":"Monthly demo nights for people shipping AI products.","url":"https://valore.app/sf-ai-builders","avatar_url":"https://…/avatar.jpg","cover_url":null,"tint_color":"#18181b","timezone":"America/Los_Angeles","city":"San Francisco","website_url":"https://sfaibuilders.com","is_personal":false,"is_verified":true,"event_count":42,"subscriber_count":1830,"created_at":"2026-01-12T18:04:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"tags":["Calendar"],"operationId":"patch_calendar","summary":"Update the calendar","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"avatar_url":{"type":"string"},"cover_url":{"type":"string","nullable":true},"tint_color":{"type":"string"},"timezone":{"type":"string"},"city":{"type":"string"},"website_url":{"type":"string"},"is_personal":{"type":"boolean"},"is_verified":{"type":"boolean"},"event_count":{"type":"integer"},"subscriber_count":{"type":"integer"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"cal_9x1kq2","slug":"sf-ai-builders","name":"SF AI Builders","description":"Monthly demo nights for people shipping AI products.","url":"https://valore.app/sf-ai-builders","avatar_url":"https://…/avatar.jpg","cover_url":null,"tint_color":"#18181b","timezone":"America/Los_Angeles","city":"San Francisco","website_url":"https://sfaibuilders.com","is_personal":false,"is_verified":true,"event_count":42,"subscriber_count":1830,"created_at":"2026-01-12T18:04:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"2–80 characters."},"description":{"type":"string"},"slug":{"type":"string","description":"Public URL slug."},"timezone":{"type":"string","description":"IANA zone."},"city":{"type":"string"},"website_url":{"type":"string"},"avatar_url":{"type":"string"},"cover_url":{"type":"string"},"tint_color":{"type":"string","description":"Hex, e.g. `#18181b`."},"instagram":{"type":"string","description":"Handle."},"x_handle":{"type":"string"},"linkedin":{"type":"string"}},"required":[]},"example":{"description":"Monthly demo nights for people shipping AI products.","city":"San Francisco"}}}}}},"/api/v1/events":{"get":{"tags":["Events"],"operationId":"get_events","summary":"List events","description":"Sorted by start time, ascending. Includes ticket types.","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["draft","published","canceled"]}},{"name":"from","in":"query","required":false,"description":"Events starting at or after this time.","schema":{"type":"string","format":"date-time"}},{"name":"to","in":"query","required":false,"description":"Events starting at or before this time.","schema":{"type":"string","format":"date-time"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"calendar_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"cover_url":{"type":"string"},"status":{"type":"string"},"visibility":{"type":"string"},"starts_at":{"type":"string"},"ends_at":{"type":"string"},"timezone":{"type":"string"},"location":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"country":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"virtual_url":{"type":"string","nullable":true}}},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"capacity":{"type":"integer"},"require_approval":{"type":"boolean"},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","nullable":true},"currency":{"type":"string"},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"price_cents":{"type":"integer"},"quantity":{"type":"string","nullable":true},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string","nullable":true},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}},"published_at":{"type":"string"},"canceled_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}},"next_cursor":{"type":"string"}}},"example":{"data":[{"id":"evt_7f3ab1","slug":"demo-night-november","url":"https://valore.app/demo-night-november","calendar_id":"cal_9x1kq2","title":"Demo Night · November","description":"Six teams, five minutes each. Drinks after.","cover_url":"https://…/cover.jpg","status":"published","visibility":"public","starts_at":"2026-11-05T02:00:00.000Z","ends_at":"2026-11-05T05:00:00.000Z","timezone":"America/Los_Angeles","location":{"type":"in_person","name":"The Foundry","address":"500 Howard St, San Francisco, CA","city":"San Francisco","region":"CA","country":"US","latitude":37.788,"longitude":-122.396,"virtual_url":null},"category":"tech","tags":["ai","demos"],"capacity":120,"require_approval":true,"waitlist_enabled":true,"registration_open":true,"registration_closes_at":null,"currency":"usd","ticket_types":[{"id":"tt_01","event_id":"evt_7f3ab1","name":"General Admission","description":null,"price_cents":0,"quantity":null,"max_per_order":1,"sales_start_at":null,"sales_end_at":null,"require_approval":false,"hidden":false,"sort_order":0,"pricing_mode":"fixed","created_at":"2026-10-01T17:00:00.000Z"}],"published_at":"2026-10-01T17:00:00.000Z","canceled_at":null,"created_at":"2026-10-01T16:58:00.000Z","updated_at":"2026-10-02T09:12:00.000Z"}],"next_cursor":"evt_7f3ab1"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Events"],"operationId":"post_events","summary":"Create an event","description":"The key's owner becomes the first host.\n\nA default ticket type is created: free, or priced at `price_cents`.","parameters":[],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"calendar_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"cover_url":{"type":"string"},"status":{"type":"string"},"visibility":{"type":"string"},"starts_at":{"type":"string"},"ends_at":{"type":"string"},"timezone":{"type":"string"},"location":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"country":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"virtual_url":{"type":"string","nullable":true}}},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"capacity":{"type":"integer"},"require_approval":{"type":"boolean"},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","nullable":true},"currency":{"type":"string"},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"price_cents":{"type":"integer"},"quantity":{"type":"string","nullable":true},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string","nullable":true},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}},"published_at":{"type":"string"},"canceled_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"data":{"id":"evt_7f3ab1","slug":"demo-night-november","url":"https://valore.app/demo-night-november","calendar_id":"cal_9x1kq2","title":"Demo Night · November","description":"Six teams, five minutes each. Drinks after.","cover_url":"https://…/cover.jpg","status":"published","visibility":"public","starts_at":"2026-11-05T02:00:00.000Z","ends_at":"2026-11-05T05:00:00.000Z","timezone":"America/Los_Angeles","location":{"type":"in_person","name":"The Foundry","address":"500 Howard St, San Francisco, CA","city":"San Francisco","region":"CA","country":"US","latitude":37.788,"longitude":-122.396,"virtual_url":null},"category":"tech","tags":["ai","demos"],"capacity":120,"require_approval":true,"waitlist_enabled":true,"registration_open":true,"registration_closes_at":null,"currency":"usd","ticket_types":[{"id":"tt_01","event_id":"evt_7f3ab1","name":"General Admission","description":null,"price_cents":0,"quantity":null,"max_per_order":1,"sales_start_at":null,"sales_end_at":null,"require_approval":false,"hidden":false,"sort_order":0,"pricing_mode":"fixed","created_at":"2026-10-01T17:00:00.000Z"}],"published_at":"2026-10-01T17:00:00.000Z","canceled_at":null,"created_at":"2026-10-01T16:58:00.000Z","updated_at":"2026-10-02T09:12:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Up to 200 characters."},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset, or a wall-clock time (`2026-11-05T18:00`) interpreted in `timezone`."},"ends_at":{"type":"string","format":"date-time","description":"Defaults to two hours after `starts_at`."},"timezone":{"type":"string","description":"IANA zone, e.g. `America/Los_Angeles`. Defaults to the calendar's."},"description":{"type":"string","description":"Markdown."},"cover_url":{"type":"string","description":"HTTPS image URL."},"status":{"type":"string","enum":["draft","published"],"description":"Defaults to published on create."},"visibility":{"type":"string","enum":["public","unlisted","private"],"description":"Private events require an invitation to register."},"location_type":{"type":"string","enum":["in_person","virtual","hybrid","tbd"],"description":"Or send a nested `location` object as returned by the API."},"location_name":{"type":"string","description":"Venue name."},"address":{"type":"string","description":"Street address."},"city":{"type":"string"},"virtual_url":{"type":"string","description":"Meeting link, revealed to confirmed guests."},"capacity":{"type":"integer","description":"Omit for unlimited."},"require_approval":{"type":"boolean","description":"Registrations land in pending_approval."},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","format":"date-time"},"price_cents":{"type":"integer","description":"Create only: price of the default ticket (0 = free)."},"currency":{"type":"string","description":"ISO 4217, lowercase.","default":"usd"},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"slug":{"type":"string","description":"Custom URL slug (3–64 chars, lowercase)."}},"required":["title","starts_at"]},"example":{"title":"Founders Breakfast","starts_at":"2026-11-05T09:00","ends_at":"2026-11-05T11:00","timezone":"America/Los_Angeles","location_type":"in_person","location_name":"Sightglass Coffee","address":"270 7th St, San Francisco, CA","capacity":40,"require_approval":true}}}}}},"/api/v1/events/{id}":{"get":{"tags":["Events"],"operationId":"get_events_id","summary":"Retrieve an event","description":"Includes live guest `stats`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"calendar_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"cover_url":{"type":"string"},"status":{"type":"string"},"visibility":{"type":"string"},"starts_at":{"type":"string"},"ends_at":{"type":"string"},"timezone":{"type":"string"},"location":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"country":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"virtual_url":{"type":"string","nullable":true}}},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"capacity":{"type":"integer"},"require_approval":{"type":"boolean"},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","nullable":true},"currency":{"type":"string"},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"price_cents":{"type":"integer"},"quantity":{"type":"string","nullable":true},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string","nullable":true},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}},"published_at":{"type":"string"},"canceled_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"},"stats":{"type":"object","properties":{"going":{"type":"integer"},"pending_approval":{"type":"integer"},"waitlist":{"type":"integer"},"invited":{"type":"integer"},"declined":{"type":"integer"},"not_going":{"type":"integer"},"checked_in":{"type":"integer"},"capacity":{"type":"integer"},"spots_left":{"type":"integer"},"revenue_cents":{"type":"integer"},"page_views":{"type":"integer"}}}}}}},"example":{"data":{"id":"evt_7f3ab1","slug":"demo-night-november","url":"https://valore.app/demo-night-november","calendar_id":"cal_9x1kq2","title":"Demo Night · November","description":"Six teams, five minutes each. Drinks after.","cover_url":"https://…/cover.jpg","status":"published","visibility":"public","starts_at":"2026-11-05T02:00:00.000Z","ends_at":"2026-11-05T05:00:00.000Z","timezone":"America/Los_Angeles","location":{"type":"in_person","name":"The Foundry","address":"500 Howard St, San Francisco, CA","city":"San Francisco","region":"CA","country":"US","latitude":37.788,"longitude":-122.396,"virtual_url":null},"category":"tech","tags":["ai","demos"],"capacity":120,"require_approval":true,"waitlist_enabled":true,"registration_open":true,"registration_closes_at":null,"currency":"usd","ticket_types":[{"id":"tt_01","event_id":"evt_7f3ab1","name":"General Admission","description":null,"price_cents":0,"quantity":null,"max_per_order":1,"sales_start_at":null,"sales_end_at":null,"require_approval":false,"hidden":false,"sort_order":0,"pricing_mode":"fixed","created_at":"2026-10-01T17:00:00.000Z"}],"published_at":"2026-10-01T17:00:00.000Z","canceled_at":null,"created_at":"2026-10-01T16:58:00.000Z","updated_at":"2026-10-02T09:12:00.000Z","stats":{"going":84,"pending_approval":6,"waitlist":0,"invited":12,"declined":2,"not_going":3,"checked_in":0,"capacity":120,"spots_left":36,"revenue_cents":0,"page_views":1412}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"tags":["Events"],"operationId":"patch_events_id","summary":"Update an event","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"calendar_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"cover_url":{"type":"string"},"status":{"type":"string"},"visibility":{"type":"string"},"starts_at":{"type":"string"},"ends_at":{"type":"string"},"timezone":{"type":"string"},"location":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"country":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"virtual_url":{"type":"string","nullable":true}}},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"capacity":{"type":"integer"},"require_approval":{"type":"boolean"},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","nullable":true},"currency":{"type":"string"},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"price_cents":{"type":"integer"},"quantity":{"type":"string","nullable":true},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string","nullable":true},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}},"published_at":{"type":"string"},"canceled_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"},"stats":{"type":"object","properties":{"going":{"type":"integer"},"pending_approval":{"type":"integer"},"waitlist":{"type":"integer"},"invited":{"type":"integer"},"declined":{"type":"integer"},"not_going":{"type":"integer"},"checked_in":{"type":"integer"},"capacity":{"type":"integer"},"spots_left":{"type":"integer"},"revenue_cents":{"type":"integer"},"page_views":{"type":"integer"}}}}}}},"example":{"data":{"id":"evt_7f3ab1","slug":"demo-night-november","url":"https://valore.app/demo-night-november","calendar_id":"cal_9x1kq2","title":"Demo Night · November","description":"Six teams, five minutes each. Drinks after.","cover_url":"https://…/cover.jpg","status":"published","visibility":"public","starts_at":"2026-11-05T02:00:00.000Z","ends_at":"2026-11-05T05:00:00.000Z","timezone":"America/Los_Angeles","location":{"type":"in_person","name":"The Foundry","address":"500 Howard St, San Francisco, CA","city":"San Francisco","region":"CA","country":"US","latitude":37.788,"longitude":-122.396,"virtual_url":null},"category":"tech","tags":["ai","demos"],"capacity":120,"require_approval":true,"waitlist_enabled":true,"registration_open":true,"registration_closes_at":null,"currency":"usd","ticket_types":[{"id":"tt_01","event_id":"evt_7f3ab1","name":"General Admission","description":null,"price_cents":0,"quantity":null,"max_per_order":1,"sales_start_at":null,"sales_end_at":null,"require_approval":false,"hidden":false,"sort_order":0,"pricing_mode":"fixed","created_at":"2026-10-01T17:00:00.000Z"}],"published_at":"2026-10-01T17:00:00.000Z","canceled_at":null,"created_at":"2026-10-01T16:58:00.000Z","updated_at":"2026-10-02T09:12:00.000Z","stats":{"going":84,"pending_approval":6,"waitlist":0,"invited":12,"declined":2,"not_going":3,"checked_in":0,"capacity":120,"spots_left":36,"revenue_cents":0,"page_views":1412}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"Up to 200 characters."},"starts_at":{"type":"string","format":"date-time","description":"ISO 8601 with offset, or a wall-clock time (`2026-11-05T18:00`) interpreted in `timezone`."},"ends_at":{"type":"string","format":"date-time","description":"Defaults to two hours after `starts_at`."},"timezone":{"type":"string","description":"IANA zone, e.g. `America/Los_Angeles`. Defaults to the calendar's."},"description":{"type":"string","description":"Markdown."},"cover_url":{"type":"string","description":"HTTPS image URL."},"status":{"type":"string","enum":["draft","published","canceled"],"description":"`canceled` cancels the event and emails confirmed guests."},"visibility":{"type":"string","enum":["public","unlisted","private"],"description":"Private events require an invitation to register."},"location_type":{"type":"string","enum":["in_person","virtual","hybrid","tbd"],"description":"Or send a nested `location` object as returned by the API."},"location_name":{"type":"string","description":"Venue name."},"address":{"type":"string","description":"Street address."},"city":{"type":"string"},"virtual_url":{"type":"string","description":"Meeting link, revealed to confirmed guests."},"capacity":{"type":"integer","description":"Omit for unlimited."},"require_approval":{"type":"boolean","description":"Registrations land in pending_approval."},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","format":"date-time"},"currency":{"type":"string","description":"ISO 4217, lowercase.","default":"usd"},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"slug":{"type":"string","description":"Custom URL slug (3–64 chars, lowercase)."},"cancellation_note":{"type":"string","description":"Included in the cancellation email."},"notify_guests":{"type":"boolean","description":"Email confirmed guests about time/location changes.","default":"true"}},"required":["title","starts_at"]},"example":{"title":"Founders Breakfast (Vol. 2)","capacity":60}}}}},"delete":{"tags":["Events"],"operationId":"delete_events_id","summary":"Delete an event","description":"Refused (409) when anyone has paid. Cancel with refunds instead.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}}}}},"example":{"data":{"id":"evt_7f3ab1","deleted":true}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/publish":{"post":{"tags":["Events"],"operationId":"post_events_id_publish","summary":"Publish a draft","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"calendar_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"cover_url":{"type":"string"},"status":{"type":"string"},"visibility":{"type":"string"},"starts_at":{"type":"string"},"ends_at":{"type":"string"},"timezone":{"type":"string"},"location":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"country":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"virtual_url":{"type":"string","nullable":true}}},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"capacity":{"type":"integer"},"require_approval":{"type":"boolean"},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","nullable":true},"currency":{"type":"string"},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"price_cents":{"type":"integer"},"quantity":{"type":"string","nullable":true},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string","nullable":true},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}},"published_at":{"type":"string"},"canceled_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"data":{"id":"evt_7f3ab1","slug":"demo-night-november","url":"https://valore.app/demo-night-november","calendar_id":"cal_9x1kq2","title":"Demo Night · November","description":"Six teams, five minutes each. Drinks after.","cover_url":"https://…/cover.jpg","status":"published","visibility":"public","starts_at":"2026-11-05T02:00:00.000Z","ends_at":"2026-11-05T05:00:00.000Z","timezone":"America/Los_Angeles","location":{"type":"in_person","name":"The Foundry","address":"500 Howard St, San Francisco, CA","city":"San Francisco","region":"CA","country":"US","latitude":37.788,"longitude":-122.396,"virtual_url":null},"category":"tech","tags":["ai","demos"],"capacity":120,"require_approval":true,"waitlist_enabled":true,"registration_open":true,"registration_closes_at":null,"currency":"usd","ticket_types":[{"id":"tt_01","event_id":"evt_7f3ab1","name":"General Admission","description":null,"price_cents":0,"quantity":null,"max_per_order":1,"sales_start_at":null,"sales_end_at":null,"require_approval":false,"hidden":false,"sort_order":0,"pricing_mode":"fixed","created_at":"2026-10-01T17:00:00.000Z"}],"published_at":"2026-10-01T17:00:00.000Z","canceled_at":null,"created_at":"2026-10-01T16:58:00.000Z","updated_at":"2026-10-02T09:12:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/duplicate":{"post":{"tags":["Events"],"operationId":"post_events_id_duplicate","summary":"Duplicate an event","description":"Copies settings, ticket types, questions and hosts as a new draft. Guests are not copied.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"calendar_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"cover_url":{"type":"string"},"status":{"type":"string"},"visibility":{"type":"string"},"starts_at":{"type":"string"},"ends_at":{"type":"string"},"timezone":{"type":"string"},"location":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"country":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"virtual_url":{"type":"string","nullable":true}}},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"capacity":{"type":"integer"},"require_approval":{"type":"boolean"},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","nullable":true},"currency":{"type":"string"},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"price_cents":{"type":"integer"},"quantity":{"type":"string","nullable":true},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string","nullable":true},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}},"published_at":{"type":"string"},"canceled_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"data":{"id":"evt_7f3ab1","slug":"demo-night-november","url":"https://valore.app/demo-night-november","calendar_id":"cal_9x1kq2","title":"Demo Night · November","description":"Six teams, five minutes each. Drinks after.","cover_url":"https://…/cover.jpg","status":"draft","visibility":"public","starts_at":"2026-11-05T02:00:00.000Z","ends_at":"2026-11-05T05:00:00.000Z","timezone":"America/Los_Angeles","location":{"type":"in_person","name":"The Foundry","address":"500 Howard St, San Francisco, CA","city":"San Francisco","region":"CA","country":"US","latitude":37.788,"longitude":-122.396,"virtual_url":null},"category":"tech","tags":["ai","demos"],"capacity":120,"require_approval":true,"waitlist_enabled":true,"registration_open":true,"registration_closes_at":null,"currency":"usd","ticket_types":[{"id":"tt_01","event_id":"evt_7f3ab1","name":"General Admission","description":null,"price_cents":0,"quantity":null,"max_per_order":1,"sales_start_at":null,"sales_end_at":null,"require_approval":false,"hidden":false,"sort_order":0,"pricing_mode":"fixed","created_at":"2026-10-01T17:00:00.000Z"}],"published_at":"2026-10-01T17:00:00.000Z","canceled_at":null,"created_at":"2026-10-01T16:58:00.000Z","updated_at":"2026-10-02T09:12:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"starts_at":{"type":"string","format":"date-time","description":"New start (same duration). Defaults to one week later."},"title":{"type":"string","description":"Defaults to the original title."}},"required":[]},"example":{"starts_at":"2026-12-03T18:00","title":"Demo Night · December"}}}}}},"/api/v1/events/{id}/guests":{"get":{"tags":["Guests"],"operationId":"get_events_id_guests","summary":"List an event's guests","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["going","pending_approval","waitlist","invited","declined","not_going"]}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","nullable":true},"status":{"type":"string"},"quantity":{"type":"integer"},"ticket_type_id":{"type":"string"},"answers":{"type":"object","properties":{"company":{"type":"string"}}},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"payment_status":{"type":"string"},"checked_in_at":{"type":"string","nullable":true},"registered_at":{"type":"string"},"source":{"type":"string"},"plus_ones":{"type":"integer"},"plus_one_names":{"type":"array","items":{"type":"string"}},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"refunded_cents":{"type":"integer"}}}},"next_cursor":{"type":"string"}}},"example":{"data":[{"id":"gst_2c9d10","event_id":"evt_7f3ab1","name":"Ada Lovelace","email":"ada@example.com","phone":null,"status":"going","quantity":1,"ticket_type_id":"tt_01","answers":{"company":"Analytical Engines Ltd"},"amount_cents":0,"currency":"usd","payment_status":"none","checked_in_at":null,"registered_at":"2026-10-03T21:14:09.000Z","source":"page","plus_ones":0,"plus_one_names":[],"fee_cents":0,"tax_cents":0,"refunded_cents":0}],"next_cursor":"gst_2c9d10"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Guests"],"operationId":"post_events_id_guests","summary":"Add guests directly","description":"Guests are added as going and skip approval and capacity checks. Existing guests are returned unchanged.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","nullable":true},"status":{"type":"string"},"quantity":{"type":"integer"},"ticket_type_id":{"type":"string"},"answers":{"type":"object","properties":{"company":{"type":"string"}}},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"payment_status":{"type":"string"},"checked_in_at":{"type":"string","nullable":true},"registered_at":{"type":"string"},"source":{"type":"string"},"plus_ones":{"type":"integer"},"plus_one_names":{"type":"array","items":{"type":"string"}},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"refunded_cents":{"type":"integer"}}}}}},"example":{"data":[{"id":"gst_2c9d10","event_id":"evt_7f3ab1","name":"Ada Lovelace","email":"ada@example.com","phone":null,"status":"going","quantity":1,"ticket_type_id":"tt_01","answers":{"company":"Analytical Engines Ltd"},"amount_cents":0,"currency":"usd","payment_status":"none","checked_in_at":null,"registered_at":"2026-10-03T21:14:09.000Z","source":"page","plus_ones":0,"plus_one_names":[],"fee_cents":0,"tax_cents":0,"refunded_cents":0}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"guests":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Up to 500 `{ email, name? }` objects."},"notify":{"type":"boolean","description":"Send the confirmation email.","default":"true"}},"required":["guests"]},"example":{"guests":[{"email":"ada@example.com","name":"Ada Lovelace"}],"notify":true}}}}}},"/api/v1/guests":{"get":{"tags":["Guests"],"operationId":"get_guests","summary":"Search guests across the calendar","parameters":[{"name":"email","in":"query","required":false,"description":"Exact match.","schema":{"type":"string","format":"email"}},{"name":"q","in":"query","required":false,"description":"Name or email contains.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["going","pending_approval","waitlist","invited","declined","not_going"]}},{"name":"event_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","nullable":true},"status":{"type":"string"},"quantity":{"type":"integer"},"ticket_type_id":{"type":"string"},"answers":{"type":"object","properties":{"company":{"type":"string"}}},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"payment_status":{"type":"string"},"checked_in_at":{"type":"string","nullable":true},"registered_at":{"type":"string"},"source":{"type":"string"},"plus_ones":{"type":"integer"},"plus_one_names":{"type":"array","items":{"type":"string"}},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"refunded_cents":{"type":"integer"}}}},"next_cursor":{"type":"string"}}},"example":{"data":[{"id":"gst_2c9d10","event_id":"evt_7f3ab1","name":"Ada Lovelace","email":"ada@example.com","phone":null,"status":"going","quantity":1,"ticket_type_id":"tt_01","answers":{"company":"Analytical Engines Ltd"},"amount_cents":0,"currency":"usd","payment_status":"none","checked_in_at":null,"registered_at":"2026-10-03T21:14:09.000Z","source":"page","plus_ones":0,"plus_one_names":[],"fee_cents":0,"tax_cents":0,"refunded_cents":0}],"next_cursor":"gst_2c9d10"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/guests/{id}":{"get":{"tags":["Guests"],"operationId":"get_guests_id","summary":"Retrieve a guest","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","nullable":true},"status":{"type":"string"},"quantity":{"type":"integer"},"ticket_type_id":{"type":"string"},"answers":{"type":"object","properties":{"company":{"type":"string"}}},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"payment_status":{"type":"string"},"checked_in_at":{"type":"string","nullable":true},"registered_at":{"type":"string"},"source":{"type":"string"},"plus_ones":{"type":"integer"},"plus_one_names":{"type":"array","items":{"type":"string"}},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"refunded_cents":{"type":"integer"}}}}},"example":{"data":{"id":"gst_2c9d10","event_id":"evt_7f3ab1","name":"Ada Lovelace","email":"ada@example.com","phone":null,"status":"going","quantity":1,"ticket_type_id":"tt_01","answers":{"company":"Analytical Engines Ltd"},"amount_cents":0,"currency":"usd","payment_status":"none","checked_in_at":null,"registered_at":"2026-10-03T21:14:09.000Z","source":"page","plus_ones":0,"plus_one_names":[],"fee_cents":0,"tax_cents":0,"refunded_cents":0}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"tags":["Guests"],"operationId":"patch_guests_id","summary":"Update a guest","description":"Approving a guest who still owes payment keeps them pending with `payment_status: \"pending\"` until they pay.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","nullable":true},"status":{"type":"string"},"quantity":{"type":"integer"},"ticket_type_id":{"type":"string"},"answers":{"type":"object","properties":{"company":{"type":"string"}}},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"payment_status":{"type":"string"},"checked_in_at":{"type":"string","nullable":true},"registered_at":{"type":"string"},"source":{"type":"string"},"plus_ones":{"type":"integer"},"plus_one_names":{"type":"array","items":{"type":"string"}},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"refunded_cents":{"type":"integer"}}}}},"example":{"data":{"id":"gst_2c9d10","event_id":"evt_7f3ab1","name":"Ada Lovelace","email":"ada@example.com","phone":null,"status":"going","quantity":1,"ticket_type_id":"tt_01","answers":{"company":"Analytical Engines Ltd"},"amount_cents":0,"currency":"usd","payment_status":"none","checked_in_at":null,"registered_at":"2026-10-03T21:14:09.000Z","source":"page","plus_ones":0,"plus_one_names":[],"fee_cents":0,"tax_cents":0,"refunded_cents":0}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["going","pending_approval","waitlist","invited","declined","not_going"],"description":"Approve (`going`), decline, waitlist…"},"notify":{"type":"boolean","description":"Email the guest about the status change.","default":"true"},"note":{"type":"string","description":"Message included in the email."},"refund":{"type":"boolean","description":"Refund a paid guest being declined or removed."},"name":{"type":"string"},"phone":{"type":"string"},"host_note":{"type":"string","description":"Private note visible to hosts only."}},"required":[]},"example":{"status":"going"}}}}},"delete":{"tags":["Guests"],"operationId":"delete_guests_id","summary":"Remove a guest","description":"Marks them not_going without emailing them.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"refund","in":"query","required":false,"description":"Also refund a paid ticket.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"removed":{"type":"boolean"}}}}},"example":{"data":{"id":"gst_2c9d10","removed":true}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/guests/{id}/check-in":{"post":{"tags":["Guests"],"operationId":"post_guests_id_check_in","summary":"Check a guest in","description":"Only going guests can be checked in. The response adds `already_checked_in`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"undo","in":"query","required":false,"description":"Reverse a check-in.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","nullable":true},"status":{"type":"string"},"quantity":{"type":"integer"},"ticket_type_id":{"type":"string"},"answers":{"type":"object","properties":{"company":{"type":"string"}}},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"payment_status":{"type":"string"},"checked_in_at":{"type":"string"},"registered_at":{"type":"string"},"source":{"type":"string"},"plus_ones":{"type":"integer"},"plus_one_names":{"type":"array","items":{"type":"string"}},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"refunded_cents":{"type":"integer"},"already_checked_in":{"type":"boolean"}}}}},"example":{"data":{"id":"gst_2c9d10","event_id":"evt_7f3ab1","name":"Ada Lovelace","email":"ada@example.com","phone":null,"status":"going","quantity":1,"ticket_type_id":"tt_01","answers":{"company":"Analytical Engines Ltd"},"amount_cents":0,"currency":"usd","payment_status":"none","checked_in_at":"2026-11-05T02:04:00.000Z","registered_at":"2026-10-03T21:14:09.000Z","source":"page","plus_ones":0,"plus_one_names":[],"fee_cents":0,"tax_cents":0,"refunded_cents":0,"already_checked_in":false}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/invites":{"get":{"tags":["Invitations"],"operationId":"get_events_id_invites","summary":"List invitations","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"sent_at":{"type":"string"},"opened_at":{"type":"string"},"responded_at":{"type":"string","nullable":true}}}},"next_cursor":{"type":"string"}}},"example":{"data":[{"id":"inv_5","event_id":"evt_7f3ab1","email":"alan@example.com","name":"Alan","status":"opened","sent_at":"2026-10-02T10:00:00.000Z","opened_at":"2026-10-02T10:42:00.000Z","responded_at":null}],"next_cursor":"inv_5"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Invitations"],"operationId":"post_events_id_invites","summary":"Send invitations","description":"Invites come from the key's owner. People already going are skipped. A 10-minute cooldown applies per address.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"sent":{"type":"integer"},"skipped":{"type":"integer"}}}}},"example":{"data":{"sent":2,"skipped":0}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"string"},"description":"Up to 500 emails or `{ email, name }` objects."},"message":{"type":"string","description":"Personal note in the email (2,000 chars)."}},"required":["emails"]},"example":{"emails":["grace@example.com",{"email":"alan@example.com","name":"Alan"}],"message":"Would love to see you there!"}}}}}},"/api/v1/events/{id}/hosts":{"get":{"tags":["Hosts & staff"],"operationId":"get_events_id_hosts","summary":"List hosts","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"role":{"type":"string"},"status":{"type":"string"},"user_id":{"type":"string"},"avatar_url":{"type":"string","nullable":true},"created_at":{"type":"string"}}}}}},"example":{"data":[{"id":"hst_1","event_id":"evt_7f3ab1","email":"grace@example.com","name":"Grace Hopper","role":"host","status":"accepted","user_id":"usr_88","avatar_url":null,"created_at":"2026-10-01T17:00:00.000Z"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Hosts & staff"],"operationId":"post_events_id_hosts","summary":"Add a host, manager or checker","description":"They're emailed. If they don't have an account yet, access activates when they sign up with that email.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"role":{"type":"string"},"status":{"type":"string"},"user_id":{"type":"string"},"avatar_url":{"type":"string","nullable":true},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"hst_1","event_id":"evt_7f3ab1","email":"grace@example.com","name":"Grace Hopper","role":"host","status":"accepted","user_id":"usr_88","avatar_url":null,"created_at":"2026-10-01T17:00:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"name":{"type":"string"},"role":{"type":"string","enum":["host","manager","checker"],"description":"Checkers can only scan tickets.","default":"host"}},"required":["email"]},"example":{"email":"grace@example.com","name":"Grace Hopper","role":"host"}}}}}},"/api/v1/events/{id}/hosts/{hostId}":{"delete":{"tags":["Hosts & staff"],"operationId":"delete_events_id_hosts_hostId","summary":"Remove a host","description":"An event always keeps at least one host.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"hostId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"removed":{"type":"boolean"}}}}},"example":{"data":{"id":"hst_1","removed":true}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/ticket-types":{"get":{"tags":["Ticket types"],"operationId":"get_events_id_ticket_types","summary":"List ticket types","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"price_cents":{"type":"integer"},"quantity":{"type":"integer"},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string"},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}}}},"example":{"data":[{"id":"tt_02","event_id":"evt_7f3ab1","name":"Supporter","description":"Covers a student's ticket.","price_cents":2500,"quantity":50,"max_per_order":4,"sales_start_at":null,"sales_end_at":"2026-11-04T23:59:00.000Z","require_approval":false,"hidden":false,"sort_order":1,"pricing_mode":"fixed","created_at":"2026-10-01T17:05:00.000Z"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Ticket types"],"operationId":"post_events_id_ticket_types","summary":"Create a ticket type","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"price_cents":{"type":"integer"},"quantity":{"type":"integer"},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string"},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"tt_02","event_id":"evt_7f3ab1","name":"Supporter","description":"Covers a student's ticket.","price_cents":2500,"quantity":50,"max_per_order":4,"sales_start_at":null,"sales_end_at":"2026-11-04T23:59:00.000Z","require_approval":false,"hidden":false,"sort_order":1,"pricing_mode":"fixed","created_at":"2026-10-01T17:05:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"price_cents":{"type":"integer","description":"0 = free; paid tickets are at least 50.","default":"0"},"quantity":{"type":"integer","description":"Omit for unlimited."},"max_per_order":{"type":"integer","description":"1–20.","default":"1"},"sales_start_at":{"type":"string","format":"date-time"},"sales_end_at":{"type":"string","format":"date-time"},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean","description":"Not shown on the event page."}},"required":["name"]},"example":{"name":"Supporter","price_cents":2500,"quantity":50,"max_per_order":4}}}}}},"/api/v1/ticket-types/{id}":{"get":{"tags":["Ticket types"],"operationId":"get_ticket_types_id","summary":"Retrieve a ticket type","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"price_cents":{"type":"integer"},"quantity":{"type":"integer"},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string"},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"tt_02","event_id":"evt_7f3ab1","name":"Supporter","description":"Covers a student's ticket.","price_cents":2500,"quantity":50,"max_per_order":4,"sales_start_at":null,"sales_end_at":"2026-11-04T23:59:00.000Z","require_approval":false,"hidden":false,"sort_order":1,"pricing_mode":"fixed","created_at":"2026-10-01T17:05:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"tags":["Ticket types"],"operationId":"patch_ticket_types_id","summary":"Update a ticket type","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"price_cents":{"type":"integer"},"quantity":{"type":"integer"},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string"},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"tt_02","event_id":"evt_7f3ab1","name":"Supporter","description":"Covers a student's ticket.","price_cents":2500,"quantity":50,"max_per_order":4,"sales_start_at":null,"sales_end_at":"2026-11-04T23:59:00.000Z","require_approval":false,"hidden":false,"sort_order":1,"pricing_mode":"fixed","created_at":"2026-10-01T17:05:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]},"example":{"hidden":true}}}}},"delete":{"tags":["Ticket types"],"operationId":"delete_ticket_types_id","summary":"Delete a ticket type","description":"Refused while guests hold it (hide it instead) or if it's the event's last ticket type.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}}}}},"example":{"data":{"id":"tt_02","deleted":true}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/coupons":{"get":{"tags":["Coupons"],"operationId":"get_events_id_coupons","summary":"List coupons","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"code":{"type":"string"},"percent_off":{"type":"integer"},"amount_off_cents":{"type":"string","nullable":true},"max_uses":{"type":"integer"},"used_count":{"type":"integer"},"expires_at":{"type":"string","nullable":true},"active":{"type":"boolean"},"created_at":{"type":"string"}}}}}},"example":{"data":[{"id":"cpn_3a","event_id":"evt_7f3ab1","code":"FRIENDS20","percent_off":20,"amount_off_cents":null,"max_uses":100,"used_count":12,"expires_at":null,"active":true,"created_at":"2026-10-01T17:06:00.000Z"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Coupons"],"operationId":"post_events_id_coupons","summary":"Create a coupon","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"code":{"type":"string"},"percent_off":{"type":"integer"},"amount_off_cents":{"type":"string","nullable":true},"max_uses":{"type":"integer"},"used_count":{"type":"integer"},"expires_at":{"type":"string","nullable":true},"active":{"type":"boolean"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"cpn_3a","event_id":"evt_7f3ab1","code":"FRIENDS20","percent_off":20,"amount_off_cents":null,"max_uses":100,"used_count":12,"expires_at":null,"active":true,"created_at":"2026-10-01T17:06:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","description":"2–40 chars; letters, numbers, dashes, underscores. Stored uppercase."},"percent_off":{"type":"integer","description":"1–100. Set this or `amount_off_cents`."},"amount_off_cents":{"type":"integer"},"max_uses":{"type":"integer"},"expires_at":{"type":"string","format":"date-time"},"active":{"type":"boolean","default":"true"}},"required":["code"]},"example":{"code":"FRIENDS20","percent_off":20,"max_uses":100}}}}}},"/api/v1/coupons/{id}":{"get":{"tags":["Coupons"],"operationId":"get_coupons_id","summary":"Retrieve a coupon","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"code":{"type":"string"},"percent_off":{"type":"integer"},"amount_off_cents":{"type":"string","nullable":true},"max_uses":{"type":"integer"},"used_count":{"type":"integer"},"expires_at":{"type":"string","nullable":true},"active":{"type":"boolean"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"cpn_3a","event_id":"evt_7f3ab1","code":"FRIENDS20","percent_off":20,"amount_off_cents":null,"max_uses":100,"used_count":12,"expires_at":null,"active":true,"created_at":"2026-10-01T17:06:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"tags":["Coupons"],"operationId":"patch_coupons_id","summary":"Update a coupon","description":"The code can't change: deactivate and create a new one.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"code":{"type":"string"},"percent_off":{"type":"integer"},"amount_off_cents":{"type":"string","nullable":true},"max_uses":{"type":"integer"},"used_count":{"type":"integer"},"expires_at":{"type":"string","nullable":true},"active":{"type":"boolean"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"cpn_3a","event_id":"evt_7f3ab1","code":"FRIENDS20","percent_off":20,"amount_off_cents":null,"max_uses":100,"used_count":12,"expires_at":null,"active":false,"created_at":"2026-10-01T17:06:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"tags":["Coupons"],"operationId":"delete_coupons_id","summary":"Delete a coupon","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}}}}},"example":{"data":{"id":"cpn_3a","deleted":true}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/questions":{"get":{"tags":["Registration questions"],"operationId":"get_events_id_questions","summary":"List questions","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"},"sort_order":{"type":"integer"},"created_at":{"type":"string"}}}}}},"example":{"data":[{"id":"q_1","event_id":"evt_7f3ab1","label":"What are you building?","type":"long_text","options":[],"required":true,"sort_order":0,"created_at":"2026-10-01T17:07:00.000Z"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Registration questions"],"operationId":"post_events_id_questions","summary":"Add a question","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"},"sort_order":{"type":"integer"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"q_1","event_id":"evt_7f3ab1","label":"What are you building?","type":"long_text","options":[],"required":true,"sort_order":0,"created_at":"2026-10-01T17:07:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string"},"type":{"type":"string","enum":["text","long_text","select","multi_select","checkbox","url","phone","company","social","terms"],"default":"text"},"options":{"type":"array","items":{"type":"string"},"description":"For select / multi_select."},"required":{"type":"boolean"}},"required":["label"]},"example":{"label":"What are you building?","type":"long_text","required":true}}}}}},"/api/v1/questions/{id}":{"get":{"tags":["Registration questions"],"operationId":"get_questions_id","summary":"Retrieve a question","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"},"sort_order":{"type":"integer"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"q_1","event_id":"evt_7f3ab1","label":"What are you building?","type":"long_text","options":[],"required":true,"sort_order":0,"created_at":"2026-10-01T17:07:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"tags":["Registration questions"],"operationId":"patch_questions_id","summary":"Update a question","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"},"sort_order":{"type":"integer"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"q_1","event_id":"evt_7f3ab1","label":"What are you building?","type":"long_text","options":[],"required":true,"sort_order":0,"created_at":"2026-10-01T17:07:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"delete":{"tags":["Registration questions"],"operationId":"delete_questions_id","summary":"Delete a question","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}}}}},"example":{"data":{"id":"q_1","deleted":true}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/orders":{"get":{"tags":["Orders"],"operationId":"get_events_id_orders","summary":"List orders","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","paid","partially_refunded","refunded","failed"]}},{"name":"guest_id","in":"query","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"integer"},"number_label":{"type":"string"},"event_id":{"type":"string"},"guest_id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"subtotal_cents":{"type":"integer"},"discount_cents":{"type":"integer"},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"total_cents":{"type":"integer"},"refunded_cents":{"type":"integer"},"currency":{"type":"string"},"coupon_code":{"type":"string"},"paid_at":{"type":"string"},"created_at":{"type":"string"}}}},"next_cursor":{"type":"string"}}},"example":{"data":[{"id":"ord_9","number":1042,"number_label":"#1042","event_id":"evt_7f3ab1","guest_id":"gst_2c9d10","email":"ada@example.com","name":"Ada Lovelace","status":"paid","subtotal_cents":2500,"discount_cents":500,"fee_cents":0,"tax_cents":0,"total_cents":2000,"refunded_cents":0,"currency":"usd","coupon_code":"FRIENDS20","paid_at":"2026-10-03T21:15:00.000Z","created_at":"2026-10-03T21:14:10.000Z"}],"next_cursor":"ord_9"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/orders/{id}":{"get":{"tags":["Orders"],"operationId":"get_orders_id","summary":"Retrieve an order","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"integer"},"number_label":{"type":"string"},"event_id":{"type":"string"},"guest_id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"subtotal_cents":{"type":"integer"},"discount_cents":{"type":"integer"},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"total_cents":{"type":"integer"},"refunded_cents":{"type":"integer"},"currency":{"type":"string"},"coupon_code":{"type":"string"},"paid_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"ord_9","number":1042,"number_label":"#1042","event_id":"evt_7f3ab1","guest_id":"gst_2c9d10","email":"ada@example.com","name":"Ada Lovelace","status":"paid","subtotal_cents":2500,"discount_cents":500,"fee_cents":0,"tax_cents":0,"total_cents":2000,"refunded_cents":0,"currency":"usd","coupon_code":"FRIENDS20","paid_at":"2026-10-03T21:15:00.000Z","created_at":"2026-10-03T21:14:10.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/feedback":{"get":{"tags":["Feedback"],"operationId":"get_events_id_feedback","summary":"List feedback","description":"Adds `summary: { count, average_rating }`.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"guest_id":{"type":"string"},"guest_name":{"type":"string"},"guest_email":{"type":"string"},"rating":{"type":"integer"},"comment":{"type":"string"},"created_at":{"type":"string"}}}},"next_cursor":{"type":"string","nullable":true},"summary":{"type":"object","properties":{"count":{"type":"integer"},"average_rating":{"type":"number"}}}}},"example":{"data":[{"id":"fb_1","event_id":"evt_7f3ab1","guest_id":"gst_2c9d10","guest_name":"Ada Lovelace","guest_email":"ada@example.com","rating":5,"comment":"Best demo night yet.","created_at":"2026-11-06T18:00:00.000Z"}],"next_cursor":null,"summary":{"count":31,"average_rating":4.6}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/events/{id}/blasts":{"get":{"tags":["Blasts"],"operationId":"get_events_id_blasts","summary":"List blasts","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"calendar_id":{"type":"string","nullable":true},"subject":{"type":"string"},"body":{"type":"string"},"audience":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"channel":{"type":"string"},"scheduled_at":{"type":"string","nullable":true},"sent_at":{"type":"string"},"recipient_count":{"type":"integer"},"stats":{"type":"object","properties":{"delivered":{"type":"integer"},"opened":{"type":"integer"},"clicked":{"type":"integer"}}},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}},"next_cursor":{"type":"string","nullable":true}}},"example":{"data":[{"id":"bl_4","event_id":"evt_7f3ab1","calendar_id":null,"subject":"Parking + doors at 6","body":"Doors open at **6pm**. Parking is free on Howard after 6.","audience":["going"],"status":"sent","channel":"email","scheduled_at":null,"sent_at":"2026-11-04T17:00:00.000Z","recipient_count":84,"stats":{"delivered":84,"opened":61,"clicked":9},"created_at":"2026-11-04T16:55:00.000Z","updated_at":"2026-11-04T17:00:00.000Z"}],"next_cursor":null}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Blasts"],"operationId":"post_events_id_blasts","summary":"Create (and optionally send) a blast","description":"Without `send` or `scheduled_at` the blast is saved as a draft you can send later.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"calendar_id":{"type":"string","nullable":true},"subject":{"type":"string"},"body":{"type":"string"},"audience":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"channel":{"type":"string"},"scheduled_at":{"type":"string","nullable":true},"sent_at":{"type":"string"},"recipient_count":{"type":"integer"},"stats":{"type":"object","properties":{"delivered":{"type":"integer"},"opened":{"type":"integer"},"clicked":{"type":"integer"}}},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"data":{"id":"bl_4","event_id":"evt_7f3ab1","calendar_id":null,"subject":"Parking + doors at 6","body":"Doors open at **6pm**. Parking is free on Howard after 6.","audience":["going"],"status":"sent","channel":"email","scheduled_at":null,"sent_at":"2026-11-04T17:00:00.000Z","recipient_count":84,"stats":{"delivered":84,"opened":61,"clicked":9},"created_at":"2026-11-04T16:55:00.000Z","updated_at":"2026-11-04T17:00:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subject":{"type":"string"},"body":{"type":"string","description":"Markdown, up to 20,000 characters."},"audience":{"type":"array","items":{"type":"string","enum":["going","pending_approval","waitlist","invited","declined","not_going","checked_in","not_checked_in"]},"description":"Who receives it.","default":"[\"going\"]"},"send":{"type":"boolean","description":"Send immediately.","default":"false"},"scheduled_at":{"type":"string","format":"date-time","description":"Send later (must be in the future)."}},"required":["subject","body"]},"example":{"subject":"Parking + doors at 6","body":"Doors open at **6pm**. Parking is free on Howard after 6.","audience":["going"],"send":true}}}}}},"/api/v1/blasts/{id}":{"get":{"tags":["Blasts"],"operationId":"get_blasts_id","summary":"Retrieve a blast","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"calendar_id":{"type":"string","nullable":true},"subject":{"type":"string"},"body":{"type":"string"},"audience":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"channel":{"type":"string"},"scheduled_at":{"type":"string","nullable":true},"sent_at":{"type":"string"},"recipient_count":{"type":"integer"},"stats":{"type":"object","properties":{"delivered":{"type":"integer"},"opened":{"type":"integer"},"clicked":{"type":"integer"}}},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"data":{"id":"bl_4","event_id":"evt_7f3ab1","calendar_id":null,"subject":"Parking + doors at 6","body":"Doors open at **6pm**. Parking is free on Howard after 6.","audience":["going"],"status":"sent","channel":"email","scheduled_at":null,"sent_at":"2026-11-04T17:00:00.000Z","recipient_count":84,"stats":{"delivered":84,"opened":61,"clicked":9},"created_at":"2026-11-04T16:55:00.000Z","updated_at":"2026-11-04T17:00:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/blasts/{id}/send":{"post":{"tags":["Blasts"],"operationId":"post_blasts_id_send","summary":"Send a draft now","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"calendar_id":{"type":"string","nullable":true},"subject":{"type":"string"},"body":{"type":"string"},"audience":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"channel":{"type":"string"},"scheduled_at":{"type":"string","nullable":true},"sent_at":{"type":"string"},"recipient_count":{"type":"integer"},"stats":{"type":"object","properties":{"delivered":{"type":"integer"},"opened":{"type":"integer"},"clicked":{"type":"integer"}}},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}},"example":{"data":{"id":"bl_4","event_id":"evt_7f3ab1","calendar_id":null,"subject":"Parking + doors at 6","body":"Doors open at **6pm**. Parking is free on Howard after 6.","audience":["going"],"status":"sent","channel":"email","scheduled_at":null,"sent_at":"2026-11-04T17:00:00.000Z","recipient_count":84,"stats":{"delivered":84,"opened":61,"clicked":9},"created_at":"2026-11-04T16:55:00.000Z","updated_at":"2026-11-04T17:00:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/subscribers":{"get":{"tags":["Subscribers"],"operationId":"get_subscribers","summary":"List subscribers","parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["subscribed","unsubscribed"]}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"source":{"type":"string"},"created_at":{"type":"string"}}}},"next_cursor":{"type":"string"}}},"example":{"data":[{"id":"sub_77","email":"linus@example.com","name":"Linus","tags":["newsletter"],"status":"subscribed","source":"api","created_at":"2026-10-01T12:00:00.000Z"}],"next_cursor":"sub_77"}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Subscribers"],"operationId":"post_subscribers","summary":"Add a subscriber","description":"Someone who unsubscribed stays unsubscribed; only they can opt back in.","parameters":[],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"source":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"sub_77","email":"linus@example.com","name":"Linus","tags":["newsletter"],"status":"subscribed","source":"api","created_at":"2026-10-01T12:00:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"Up to 20 tags (lowercased)."}},"required":["email"]},"example":{"email":"linus@example.com","name":"Linus","tags":["newsletter"]}}}}}},"/api/v1/subscribers/import":{"post":{"tags":["Subscribers"],"operationId":"post_subscribers_import","summary":"Bulk import subscribers","parameters":[],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"added":{"type":"integer"},"updated":{"type":"integer"},"invalid":{"type":"integer"},"duplicates":{"type":"integer"},"opted_out":{"type":"integer"}}}}},"example":{"data":{"added":2,"updated":0,"invalid":0,"duplicates":0,"opted_out":0}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"subscribers":{"type":"array","items":{"type":"object","additionalProperties":true},"description":"Up to 5,000 `{ email, name? }` objects."},"tags":{"type":"array","items":{"type":"string"},"description":"Applied to everyone in the batch."}},"required":["subscribers"]},"example":{"subscribers":[{"email":"a@example.com","name":"A"},{"email":"b@example.com"}],"tags":["import-2026"]}}}}}},"/api/v1/subscribers/{id}":{"get":{"tags":["Subscribers"],"operationId":"get_subscribers_id","summary":"Retrieve a subscriber","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"source":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"sub_77","email":"linus@example.com","name":"Linus","tags":["newsletter"],"status":"subscribed","source":"api","created_at":"2026-10-01T12:00:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"tags":["Subscribers"],"operationId":"patch_subscribers_id","summary":"Update a subscriber","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"source":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"sub_77","email":"linus@example.com","name":"Linus","tags":["newsletter"],"status":"subscribed","source":"api","created_at":"2026-10-01T12:00:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"description":"Replaces the tag list."},"status":{"type":"string","enum":["unsubscribed"],"description":"Opt them out (honor unsubscribe requests this way)."}},"required":[]},"example":{"tags":["newsletter","vip"]}}}}},"delete":{"tags":["Subscribers"],"operationId":"delete_subscribers_id","summary":"Delete a subscriber","description":"Permanent. To honor an opt-out, PATCH `status: \"unsubscribed\"` instead.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}}}}},"example":{"data":{"id":"sub_77","deleted":true}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/team":{"get":{"tags":["Team"],"operationId":"get_team","summary":"List team members","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"user_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"username":{"type":"string"},"avatar_url":{"type":"string","nullable":true},"role":{"type":"string"},"joined_at":{"type":"string"}}}}}},"example":{"data":[{"id":"mem_1","user_id":"usr_88","name":"Grace Hopper","email":"grace@example.com","username":"grace","avatar_url":null,"role":"admin","joined_at":"2026-09-28T17:00:00.000Z"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/webhooks":{"get":{"tags":["Webhooks"],"operationId":"get_webhooks","summary":"List webhooks","parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"last_status":{"type":"integer"},"last_error":{"type":"string","nullable":true},"last_sent_at":{"type":"string"},"created_at":{"type":"string"}}}}}},"example":{"data":[{"id":"wh_1","url":"https://example.com/webhooks/valore","events":["guest.registered","guest.updated"],"active":true,"last_status":200,"last_error":null,"last_sent_at":"2026-10-03T21:14:11.000Z","created_at":"2026-10-01T17:10:00.000Z"}]}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"post":{"tags":["Webhooks"],"operationId":"post_webhooks","summary":"Create a webhook","description":"The response includes `secret` exactly once. Store it to verify signatures.","parameters":[],"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"last_status":{"type":"integer"},"last_error":{"type":"string","nullable":true},"last_sent_at":{"type":"string"},"created_at":{"type":"string"},"secret":{"type":"string"}}}}},"example":{"data":{"id":"wh_1","url":"https://example.com/webhooks/valore","events":["guest.registered","guest.updated"],"active":true,"last_status":200,"last_error":null,"last_sent_at":"2026-10-03T21:14:11.000Z","created_at":"2026-10-01T17:10:00.000Z","secret":"whsec_…"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public HTTPS endpoint."},"events":{"type":"array","items":{"type":"string"},"description":"Event names to receive."}},"required":["url","events"]},"example":{"url":"https://example.com/webhooks/valore","events":["guest.registered","guest.updated"]}}}}}},"/api/v1/webhooks/{id}":{"get":{"tags":["Webhooks"],"operationId":"get_webhooks_id","summary":"Retrieve a webhook","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"last_status":{"type":"integer"},"last_error":{"type":"string","nullable":true},"last_sent_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"wh_1","url":"https://example.com/webhooks/valore","events":["guest.registered","guest.updated"],"active":true,"last_status":200,"last_error":null,"last_sent_at":"2026-10-03T21:14:11.000Z","created_at":"2026-10-01T17:10:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}},"patch":{"tags":["Webhooks"],"operationId":"patch_webhooks_id","summary":"Update a webhook","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"last_status":{"type":"integer"},"last_error":{"type":"string","nullable":true},"last_sent_at":{"type":"string"},"created_at":{"type":"string"}}}}},"example":{"data":{"id":"wh_1","url":"https://example.com/webhooks/valore","events":["guest.registered","guest.updated"],"active":false,"last_status":200,"last_error":null,"last_sent_at":"2026-10-03T21:14:11.000Z","created_at":"2026-10-01T17:10:00.000Z"}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean","description":"Pause or resume."},"rotate_secret":{"type":"boolean","description":"Issue a new secret (returned once)."}},"required":[]},"example":{"active":false}}}}},"delete":{"tags":["Webhooks"],"operationId":"delete_webhooks_id","summary":"Delete a webhook","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"deleted":{"type":"boolean"}}}}},"example":{"data":{"id":"wh_1","deleted":true}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/webhooks/{id}/test":{"post":{"tags":["Webhooks"],"operationId":"post_webhooks_id_test","summary":"Send a test ping","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"ok":{"type":"boolean"},"status":{"type":"integer"},"error":{"type":"string","nullable":true}}}}},"example":{"data":{"ok":true,"status":200,"error":null}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/webhooks/{id}/deliveries":{"get":{"tags":["Webhooks"],"operationId":"get_webhooks_id_deliveries","summary":"List deliveries","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size, 1–100.","schema":{"type":"integer"}},{"name":"cursor","in":"query","required":false,"description":"The `next_cursor` from the previous page.","schema":{"type":"string"}}],"responses":{"200":{"description":"A page of results","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"webhook_id":{"type":"string"},"event":{"type":"string"},"status":{"type":"string"},"attempts":{"type":"integer"},"response_status":{"type":"integer"},"error":{"type":"string","nullable":true},"duration_ms":{"type":"integer"},"next_attempt_at":{"type":"string","nullable":true},"delivered_at":{"type":"string"},"created_at":{"type":"string"},"payload":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"created_at":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"},"…":{"type":"string"}}}}}}}},"next_cursor":{"type":"string","nullable":true}}},"example":{"data":[{"id":"whd_1","webhook_id":"wh_1","event":"guest.registered","status":"succeeded","attempts":1,"response_status":200,"error":null,"duration_ms":212,"next_attempt_at":null,"delivered_at":"2026-10-03T21:14:11.000Z","created_at":"2026-10-03T21:14:10.000Z","payload":{"id":"whd_1","type":"guest.registered","created_at":"2026-10-03T21:14:10.000Z","data":{"id":"gst_2c9d10","…":"…"}}}],"next_cursor":null}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}},"/api/v1/webhook-deliveries/{id}/redeliver":{"post":{"tags":["Webhooks"],"operationId":"post_webhook_deliveries_id_redeliver","summary":"Redeliver","description":"Sends the same payload again with a fresh signature.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string"},"webhook_id":{"type":"string"},"event":{"type":"string"},"status":{"type":"string"},"attempts":{"type":"integer"},"response_status":{"type":"integer"},"error":{"type":"string","nullable":true},"duration_ms":{"type":"integer"},"next_attempt_at":{"type":"string","nullable":true},"delivered_at":{"type":"string"},"created_at":{"type":"string"},"payload":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"created_at":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"},"…":{"type":"string"}}}}}}}}},"example":{"data":{"id":"whd_1","webhook_id":"wh_1","event":"guest.registered","status":"succeeded","attempts":1,"response_status":200,"error":null,"duration_ms":212,"next_attempt_at":null,"delivered_at":"2026-10-03T21:14:11.000Z","created_at":"2026-10-03T21:14:10.000Z","payload":{"id":"whd_1","type":"guest.registered","created_at":"2026-10-03T21:14:10.000Z","data":{"id":"gst_2c9d10","…":"…"}}}}}}},"401":{"$ref":"#/components/responses/Unauthorized"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key from /settings/developers (prefix vlr_)."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"],"example":{"error":"Event not found"}},"Calendar":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"url":{"type":"string"},"avatar_url":{"type":"string"},"cover_url":{"type":"string","nullable":true},"tint_color":{"type":"string"},"timezone":{"type":"string"},"city":{"type":"string"},"website_url":{"type":"string"},"is_personal":{"type":"boolean"},"is_verified":{"type":"boolean"},"event_count":{"type":"integer"},"subscriber_count":{"type":"integer"},"created_at":{"type":"string"}},"example":{"id":"cal_9x1kq2","slug":"sf-ai-builders","name":"SF AI Builders","description":"Monthly demo nights for people shipping AI products.","url":"https://valore.app/sf-ai-builders","avatar_url":"https://…/avatar.jpg","cover_url":null,"tint_color":"#18181b","timezone":"America/Los_Angeles","city":"San Francisco","website_url":"https://sfaibuilders.com","is_personal":false,"is_verified":true,"event_count":42,"subscriber_count":1830,"created_at":"2026-01-12T18:04:00.000Z"}},"Event":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"url":{"type":"string"},"calendar_id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"cover_url":{"type":"string"},"status":{"type":"string"},"visibility":{"type":"string"},"starts_at":{"type":"string"},"ends_at":{"type":"string"},"timezone":{"type":"string"},"location":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"address":{"type":"string"},"city":{"type":"string"},"region":{"type":"string"},"country":{"type":"string"},"latitude":{"type":"number"},"longitude":{"type":"number"},"virtual_url":{"type":"string","nullable":true}}},"category":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"capacity":{"type":"integer"},"require_approval":{"type":"boolean"},"waitlist_enabled":{"type":"boolean"},"registration_open":{"type":"boolean"},"registration_closes_at":{"type":"string","nullable":true},"currency":{"type":"string"},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"price_cents":{"type":"integer"},"quantity":{"type":"string","nullable":true},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string","nullable":true},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}}}},"published_at":{"type":"string"},"canceled_at":{"type":"string","nullable":true},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"example":{"id":"evt_7f3ab1","slug":"demo-night-november","url":"https://valore.app/demo-night-november","calendar_id":"cal_9x1kq2","title":"Demo Night · November","description":"Six teams, five minutes each. Drinks after.","cover_url":"https://…/cover.jpg","status":"published","visibility":"public","starts_at":"2026-11-05T02:00:00.000Z","ends_at":"2026-11-05T05:00:00.000Z","timezone":"America/Los_Angeles","location":{"type":"in_person","name":"The Foundry","address":"500 Howard St, San Francisco, CA","city":"San Francisco","region":"CA","country":"US","latitude":37.788,"longitude":-122.396,"virtual_url":null},"category":"tech","tags":["ai","demos"],"capacity":120,"require_approval":true,"waitlist_enabled":true,"registration_open":true,"registration_closes_at":null,"currency":"usd","ticket_types":[{"id":"tt_01","event_id":"evt_7f3ab1","name":"General Admission","description":null,"price_cents":0,"quantity":null,"max_per_order":1,"sales_start_at":null,"sales_end_at":null,"require_approval":false,"hidden":false,"sort_order":0,"pricing_mode":"fixed","created_at":"2026-10-01T17:00:00.000Z"}],"published_at":"2026-10-01T17:00:00.000Z","canceled_at":null,"created_at":"2026-10-01T16:58:00.000Z","updated_at":"2026-10-02T09:12:00.000Z"}},"Stats":{"type":"object","properties":{"going":{"type":"integer"},"pending_approval":{"type":"integer"},"waitlist":{"type":"integer"},"invited":{"type":"integer"},"declined":{"type":"integer"},"not_going":{"type":"integer"},"checked_in":{"type":"integer"},"capacity":{"type":"integer"},"spots_left":{"type":"integer"},"revenue_cents":{"type":"integer"},"page_views":{"type":"integer"}},"example":{"going":84,"pending_approval":6,"waitlist":0,"invited":12,"declined":2,"not_going":3,"checked_in":0,"capacity":120,"spots_left":36,"revenue_cents":0,"page_views":1412}},"Guest":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string","nullable":true},"status":{"type":"string"},"quantity":{"type":"integer"},"ticket_type_id":{"type":"string"},"answers":{"type":"object","properties":{"company":{"type":"string"}}},"amount_cents":{"type":"integer"},"currency":{"type":"string"},"payment_status":{"type":"string"},"checked_in_at":{"type":"string","nullable":true},"registered_at":{"type":"string"},"source":{"type":"string"},"plus_ones":{"type":"integer"},"plus_one_names":{"type":"array","items":{"type":"string"}},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"refunded_cents":{"type":"integer"}},"example":{"id":"gst_2c9d10","event_id":"evt_7f3ab1","name":"Ada Lovelace","email":"ada@example.com","phone":null,"status":"going","quantity":1,"ticket_type_id":"tt_01","answers":{"company":"Analytical Engines Ltd"},"amount_cents":0,"currency":"usd","payment_status":"none","checked_in_at":null,"registered_at":"2026-10-03T21:14:09.000Z","source":"page","plus_ones":0,"plus_one_names":[],"fee_cents":0,"tax_cents":0,"refunded_cents":0}},"TicketType":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"price_cents":{"type":"integer"},"quantity":{"type":"integer"},"max_per_order":{"type":"integer"},"sales_start_at":{"type":"string","nullable":true},"sales_end_at":{"type":"string"},"require_approval":{"type":"boolean"},"hidden":{"type":"boolean"},"sort_order":{"type":"integer"},"pricing_mode":{"type":"string"},"created_at":{"type":"string"}},"example":{"id":"tt_02","event_id":"evt_7f3ab1","name":"Supporter","description":"Covers a student's ticket.","price_cents":2500,"quantity":50,"max_per_order":4,"sales_start_at":null,"sales_end_at":"2026-11-04T23:59:00.000Z","require_approval":false,"hidden":false,"sort_order":1,"pricing_mode":"fixed","created_at":"2026-10-01T17:05:00.000Z"}},"Coupon":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"code":{"type":"string"},"percent_off":{"type":"integer"},"amount_off_cents":{"type":"string","nullable":true},"max_uses":{"type":"integer"},"used_count":{"type":"integer"},"expires_at":{"type":"string","nullable":true},"active":{"type":"boolean"},"created_at":{"type":"string"}},"example":{"id":"cpn_3a","event_id":"evt_7f3ab1","code":"FRIENDS20","percent_off":20,"amount_off_cents":null,"max_uses":100,"used_count":12,"expires_at":null,"active":true,"created_at":"2026-10-01T17:06:00.000Z"}},"Question":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"label":{"type":"string"},"type":{"type":"string"},"options":{"type":"array","items":{"type":"string"}},"required":{"type":"boolean"},"sort_order":{"type":"integer"},"created_at":{"type":"string"}},"example":{"id":"q_1","event_id":"evt_7f3ab1","label":"What are you building?","type":"long_text","options":[],"required":true,"sort_order":0,"created_at":"2026-10-01T17:07:00.000Z"}},"Host":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"role":{"type":"string"},"status":{"type":"string"},"user_id":{"type":"string"},"avatar_url":{"type":"string","nullable":true},"created_at":{"type":"string"}},"example":{"id":"hst_1","event_id":"evt_7f3ab1","email":"grace@example.com","name":"Grace Hopper","role":"host","status":"accepted","user_id":"usr_88","avatar_url":null,"created_at":"2026-10-01T17:00:00.000Z"}},"Invite":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"sent_at":{"type":"string"},"opened_at":{"type":"string"},"responded_at":{"type":"string","nullable":true}},"example":{"id":"inv_5","event_id":"evt_7f3ab1","email":"alan@example.com","name":"Alan","status":"opened","sent_at":"2026-10-02T10:00:00.000Z","opened_at":"2026-10-02T10:42:00.000Z","responded_at":null}},"Order":{"type":"object","properties":{"id":{"type":"string"},"number":{"type":"integer"},"number_label":{"type":"string"},"event_id":{"type":"string"},"guest_id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"subtotal_cents":{"type":"integer"},"discount_cents":{"type":"integer"},"fee_cents":{"type":"integer"},"tax_cents":{"type":"integer"},"total_cents":{"type":"integer"},"refunded_cents":{"type":"integer"},"currency":{"type":"string"},"coupon_code":{"type":"string"},"paid_at":{"type":"string"},"created_at":{"type":"string"}},"example":{"id":"ord_9","number":1042,"number_label":"#1042","event_id":"evt_7f3ab1","guest_id":"gst_2c9d10","email":"ada@example.com","name":"Ada Lovelace","status":"paid","subtotal_cents":2500,"discount_cents":500,"fee_cents":0,"tax_cents":0,"total_cents":2000,"refunded_cents":0,"currency":"usd","coupon_code":"FRIENDS20","paid_at":"2026-10-03T21:15:00.000Z","created_at":"2026-10-03T21:14:10.000Z"}},"Feedback":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"guest_id":{"type":"string"},"guest_name":{"type":"string"},"guest_email":{"type":"string"},"rating":{"type":"integer"},"comment":{"type":"string"},"created_at":{"type":"string"}},"example":{"id":"fb_1","event_id":"evt_7f3ab1","guest_id":"gst_2c9d10","guest_name":"Ada Lovelace","guest_email":"ada@example.com","rating":5,"comment":"Best demo night yet.","created_at":"2026-11-06T18:00:00.000Z"}},"Blast":{"type":"object","properties":{"id":{"type":"string"},"event_id":{"type":"string"},"calendar_id":{"type":"string","nullable":true},"subject":{"type":"string"},"body":{"type":"string"},"audience":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"channel":{"type":"string"},"scheduled_at":{"type":"string","nullable":true},"sent_at":{"type":"string"},"recipient_count":{"type":"integer"},"stats":{"type":"object","properties":{"delivered":{"type":"integer"},"opened":{"type":"integer"},"clicked":{"type":"integer"}}},"created_at":{"type":"string"},"updated_at":{"type":"string"}},"example":{"id":"bl_4","event_id":"evt_7f3ab1","calendar_id":null,"subject":"Parking + doors at 6","body":"Doors open at **6pm**. Parking is free on Howard after 6.","audience":["going"],"status":"sent","channel":"email","scheduled_at":null,"sent_at":"2026-11-04T17:00:00.000Z","recipient_count":84,"stats":{"delivered":84,"opened":61,"clicked":9},"created_at":"2026-11-04T16:55:00.000Z","updated_at":"2026-11-04T17:00:00.000Z"}},"Subscriber":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"status":{"type":"string"},"source":{"type":"string"},"created_at":{"type":"string"}},"example":{"id":"sub_77","email":"linus@example.com","name":"Linus","tags":["newsletter"],"status":"subscribed","source":"api","created_at":"2026-10-01T12:00:00.000Z"}},"Member":{"type":"object","properties":{"id":{"type":"string"},"user_id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"},"username":{"type":"string"},"avatar_url":{"type":"string","nullable":true},"role":{"type":"string"},"joined_at":{"type":"string"}},"example":{"id":"mem_1","user_id":"usr_88","name":"Grace Hopper","email":"grace@example.com","username":"grace","avatar_url":null,"role":"admin","joined_at":"2026-09-28T17:00:00.000Z"}},"Webhook":{"type":"object","properties":{"id":{"type":"string"},"url":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"active":{"type":"boolean"},"last_status":{"type":"integer"},"last_error":{"type":"string","nullable":true},"last_sent_at":{"type":"string"},"created_at":{"type":"string"}},"example":{"id":"wh_1","url":"https://example.com/webhooks/valore","events":["guest.registered","guest.updated"],"active":true,"last_status":200,"last_error":null,"last_sent_at":"2026-10-03T21:14:11.000Z","created_at":"2026-10-01T17:10:00.000Z"}},"Delivery":{"type":"object","properties":{"id":{"type":"string"},"webhook_id":{"type":"string"},"event":{"type":"string"},"status":{"type":"string"},"attempts":{"type":"integer"},"response_status":{"type":"integer"},"error":{"type":"string","nullable":true},"duration_ms":{"type":"integer"},"next_attempt_at":{"type":"string","nullable":true},"delivered_at":{"type":"string"},"created_at":{"type":"string"},"payload":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"created_at":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"},"…":{"type":"string"}}}}}},"example":{"id":"whd_1","webhook_id":"wh_1","event":"guest.registered","status":"succeeded","attempts":1,"response_status":200,"error":null,"duration_ms":212,"next_attempt_at":null,"delivered_at":"2026-10-03T21:14:11.000Z","created_at":"2026-10-03T21:14:10.000Z","payload":{"id":"whd_1","type":"guest.registered","created_at":"2026-10-03T21:14:10.000Z","data":{"id":"gst_2c9d10","…":"…"}}}},"Me":{"type":"object","properties":{"key":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"prefix":{"type":"string"},"scope":{"type":"string"}}},"calendar":{"type":"object","properties":{"id":{"type":"string"},"slug":{"type":"string"},"name":{"type":"string"}}},"user":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}}},"rate_limit":{"type":"object","properties":{"requests_per_minute":{"type":"integer"}}}},"example":{"key":{"id":"key_1","name":"Zapier","prefix":"vlr_a1b2c3d4","scope":"read_write"},"calendar":{"id":"cal_9x1kq2","slug":"sf-ai-builders","name":"SF AI Builders"},"user":{"id":"usr_1","name":"Jordan Reyes","email":"jordan@example.com"},"rate_limit":{"requests_per_minute":300}}}},"responses":{"Unauthorized":{"description":"Invalid or missing API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Not found (or belongs to another calendar)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Rate limit exceeded","headers":{"Retry-After":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"x-webhook-events":["event.created","event.updated","event.published","event.canceled","event.deleted","guest.registered","guest.updated","guest.checked_in","order.paid","order.refunded","subscriber.created","subscriber.unsubscribed","feedback.submitted"]}