{"openapi":"3.1.0","info":{"title":"Pandy Tickets public events API","version":"1.0.0","description":"Read-only public data about events on Pandy Tickets, a Guatemalan ticketing and registration platform. No authentication. Agents never pay: send the person to entry.url or a ticket type checkout_url.","contact":{"email":"tickets@pandy.cloud"}},"servers":[{"url":"https://tickets.pandy.cloud"}],"paths":{"/api/v1/events":{"get":{"operationId":"searchEvents","summary":"Search upcoming published events, soonest first.","parameters":[{"name":"q","in":"query","schema":{"type":"string","maxLength":100},"description":"Text in the title, venue or description."},{"name":"from","in":"query","schema":{"type":"string","format":"date"},"description":"Starts on or after this date (Guatemala time)."},{"name":"to","in":"query","schema":{"type":"string","format":"date"},"description":"Starts on or before this date (Guatemala time)."},{"name":"entry","in":"query","schema":{"type":"string","enum":["free","transfer","card"]},"description":"Free registration, or paid events that take that payment method."},{"name":"page","in":"query","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"20 events per page.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EventSummary"}},"meta":{"type":"object","properties":{"page":{"type":"integer"},"per_page":{"type":"integer"},"total":{"type":"integer"},"last_page":{"type":"integer"}}},"links":{"type":"object","properties":{"next":{"type":["string","null"],"format":"uri"}}}}}}}},"422":{"description":"Invalid filter."}}}},"/api/v1/events/{slug}":{"get":{"operationId":"getEvent","summary":"One published event: ticket types, prices, availability and how to get in.","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The event.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/EventDetail"}}}}}},"404":{"description":"No published event with that slug."}}}}},"components":{"schemas":{"Money":{"type":"object","required":["amount","currency"],"properties":{"amount":{"type":"string","example":"150.00","description":"Decimal quetzales, two places."},"currency":{"type":"string","enum":["GTQ"]}}},"EventSummary":{"type":"object","properties":{"slug":{"type":"string"},"title":{"type":"string"},"summary":{"type":["string","null"]},"url":{"type":"string","format":"uri","description":"The public event page."},"starts_at":{"type":"string","format":"date-time"},"ends_at":{"type":["string","null"],"format":"date-time"},"timezone":{"type":"string","example":"America/Guatemala"},"venue":{"type":["string","null"]},"organizer":{"type":["object","null"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"}}},"entry":{"type":"object","required":["mode","methods","open"],"properties":{"mode":{"type":"string","enum":["closed","free","paid"],"description":"How people get in: closed, free registration, or paid."},"methods":{"type":"array","items":{"type":"string","enum":["card","transfer"]},"description":"For a paid event, the ways to pay that take buyers right now, card first: card payment, bank transfer with a voucher, or both. Empty otherwise."},"open":{"type":"boolean","description":"Whether anyone can get in right now."}}},"price_from":{"oneOf":[{"$ref":"#/components/schemas/Money"},{"type":"null"}],"description":"Lowest price while entry is open; 0.00 for free registration."},"image":{"type":"string","format":"uri","description":"1200x630 share image: the organizer's banner when the event has one, else a generated poster."}}},"EventDetail":{"allOf":[{"$ref":"#/components/schemas/EventSummary"},{"type":"object","properties":{"description":{"type":["string","null"]},"ended":{"type":"boolean"},"entry":{"type":"object","properties":{"mode":{"type":"string","enum":["closed","free","paid"],"description":"How people get in: closed, free registration, or paid."},"open":{"type":"boolean","description":"Whether anyone can get in right now."},"url":{"type":"string","format":"uri","description":"Where the person goes to get in."},"instructions":{"type":"string","description":"What the person does there, in Spanish, ready to relay."}}},"ticket_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"price":{"$ref":"#/components/schemas/Money"},"sold_out":{"type":"boolean"},"checkout_url":{"type":["string","null"],"format":"uri","description":"Card checkout with this type and quantity 1 preselected; null unless card sales are open and the type has room."}}}},"questions":{"type":"array","description":"What the registration form asks.","items":{"type":"object","properties":{"label":{"type":"string"},"kind":{"type":"string","enum":["text","long_text","number","phone","date","choice","yes_no"]},"required":{"type":"boolean"},"options":{"type":"array","items":{"type":"string"}}}}},"remaining":{"type":"integer","description":"Places left; only present when the organizer shows it."}}}]}}}}