{"openapi":"3.1.0","info":{"title":"Around Lex API","version":"1.0.0","summary":"Checked events, places, guides and recurring groups in Lexington, Kentucky.","description":"A read-only JSON API over the Around Lex catalog. No key is needed. Responses are cached at the edge for ten minutes, so please cache on your side too. The catalog is not licensed for republishing: email hello@aroundlex.com before reusing its facts or its summaries and descriptions, which are original writing, and credit \"Around Lex, aroundlex.com\" with a link. Photos are not part of the API. Event dates and times are Lexington time (America/New_York); checkedAt and generated_at are UTC.","contact":{"name":"Around Lex","email":"hello@aroundlex.com","url":"https://aroundlex.com/developers"}},"servers":[{"url":"https://aroundlex.com/api/v1"}],"externalDocs":{"url":"https://aroundlex.com/developers"},"paths":{"/events":{"get":{"operationId":"listEvents","summary":"Events with a listed date in a window","description":"Each event appears once, with every listed date and its status, ordered by the first date inside the window, then event slug, then occurrence id. Events with an open schedule question are included with a schedule_question object unless confirmed=1.","parameters":[{"name":"from","in":"query","required":false,"description":"First Lexington date to include. Defaults to today; without it, dates that have already ended are left out.","schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},{"name":"to","in":"query","required":false,"description":"Last Lexington date to include. Must be on or after from.","schema":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"}},{"name":"category","in":"query","required":false,"description":"One catalog category.","schema":{"type":"string","enum":["Festivals & markets","Live music","Family","Arts & culture","Community","Outdoors","Equestrian","Sports"]}},{"name":"area","in":"query","required":false,"description":"One area of town, as the places list names it.","schema":{"type":"string","enum":["Chevy Chase","Clays Mill","Distillery District","Downtown","East End","East Lexington","Frankfort","Georgetown","Hamburg","Harrodsburg","Lawrenceburg","Lexington Green","Louisville","Midway","Millersburg","Nicholasville","North Lexington","Northside","Paris","Regency Road","Richmond","South Lexington","Southland","University","Versailles","West Lexington","Winchester"]}},{"name":"free","in":"query","required":false,"description":"1 keeps only events with confirmed free admission.","schema":{"type":"string","const":"1"}},{"name":"confirmed","in":"query","required":false,"description":"1 leaves out events with an open schedule question.","schema":{"type":"string","const":"1"}},{"name":"q","in":"query","required":false,"description":"Words to find in the title, summary, place, area, category or tags.","schema":{"type":"string","maxLength":100}},{"name":"limit","in":"query","required":false,"description":"Items per page.","schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"The next_cursor value from the previous page. An events cursor keeps the time of the first page, so a walk stays in one order.","schema":{"type":"string","maxLength":400}}],"responses":{"200":{"description":"A page of events.","headers":{"Cache-Control":{"schema":{"type":"string"},"description":"public, s-maxage=600, stale-while-revalidate=3600"},"Access-Control-Allow-Origin":{"schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventList"}}}},"400":{"description":"A parameter is missing, malformed or unknown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events/{slug}":{"get":{"operationId":"getEvent","summary":"One event with all its listed dates","parameters":[{"name":"slug","in":"path","required":true,"description":"The event's slug, the last part of its page address.","schema":{"type":"string","pattern":"^[a-z0-9-]+$"}}],"responses":{"200":{"description":"The event.","headers":{"Cache-Control":{"schema":{"type":"string"},"description":"public, s-maxage=600, stale-while-revalidate=3600"},"Access-Control-Allow-Origin":{"schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventDetail"}}}},"404":{"description":"No event has this slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/places":{"get":{"operationId":"listPlaces","summary":"Places in slug order","parameters":[{"name":"limit","in":"query","required":false,"description":"Items per page.","schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"The next_cursor value from the previous page. An events cursor keeps the time of the first page, so a walk stays in one order.","schema":{"type":"string","maxLength":400}}],"responses":{"200":{"description":"A page of places.","headers":{"Cache-Control":{"schema":{"type":"string"},"description":"public, s-maxage=600, stale-while-revalidate=3600"},"Access-Control-Allow-Origin":{"schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaceList"}}}},"400":{"description":"A parameter is malformed or unknown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/places/{slug}":{"get":{"operationId":"getPlace","summary":"One place","parameters":[{"name":"slug","in":"path","required":true,"description":"The place's slug, the last part of its page address.","schema":{"type":"string","pattern":"^[a-z0-9-]+$"}}],"responses":{"200":{"description":"The place.","headers":{"Cache-Control":{"schema":{"type":"string"},"description":"public, s-maxage=600, stale-while-revalidate=3600"},"Access-Control-Allow-Origin":{"schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PlaceDetail"}}}},"404":{"description":"No place has this slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/guides":{"get":{"operationId":"listGuides","summary":"Guide summaries in slug order","parameters":[{"name":"limit","in":"query","required":false,"description":"Items per page.","schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"The next_cursor value from the previous page. An events cursor keeps the time of the first page, so a walk stays in one order.","schema":{"type":"string","maxLength":400}}],"responses":{"200":{"description":"A page of guides.","headers":{"Cache-Control":{"schema":{"type":"string"},"description":"public, s-maxage=600, stale-while-revalidate=3600"},"Access-Control-Allow-Origin":{"schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GuideList"}}}},"400":{"description":"A parameter is malformed or unknown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/organizers":{"get":{"operationId":"listOrganizers","summary":"Recurring groups in slug order, with their published schedules","parameters":[{"name":"limit","in":"query","required":false,"description":"Items per page.","schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"description":"The next_cursor value from the previous page. An events cursor keeps the time of the first page, so a walk stays in one order.","schema":{"type":"string","maxLength":400}}],"responses":{"200":{"description":"A page of recurring groups.","headers":{"Cache-Control":{"schema":{"type":"string"},"description":"public, s-maxage=600, stale-while-revalidate=3600"},"Access-Control-Allow-Origin":{"schema":{"type":"string","const":"*"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrganizerList"}}}},"400":{"description":"A parameter is malformed or unknown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/openapi.json":{"get":{"operationId":"getOpenApi","summary":"This description","responses":{"200":{"description":"The OpenAPI 3.1 document.","content":{"application/json":{"schema":{"type":"object"}}}}}}}},"components":{"schemas":{"Occurrence":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z0-9-]+$"},"date":{"type":"string"},"endDate":{"type":"string"},"startTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"endTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"allDay":{"type":"boolean"},"status":{"type":"string","enum":["scheduled","cancelled","postponed","rescheduled"]},"previousDate":{"type":"string"},"url":{"type":"string"},"state":{"type":"string","enum":["upcoming","in-progress","start-passed","ended","past-date","cancelled","postponed"]},"confirmed":{"type":"boolean"}},"required":["id","date","status","url","state","confirmed"],"additionalProperties":false},"Question":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-z0-9-]+$"},"state":{"type":"string","enum":["access-blocked","sources-disagree"]},"summary":{"type":"string"},"sources":{"minItems":1,"type":"array","items":{"type":"string"}}},"required":["id","state","summary","sources"],"additionalProperties":false},"ScheduleRule":{"type":"object","properties":{"day":{"type":"string","enum":["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]},"startTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"endTime":{"type":"string","pattern":"^([01]\\d|2[0-3]):[0-5]\\d$"},"frequency":{"type":"string","enum":["weekly","first","second","third","fourth","last"]},"note":{"type":"string"}},"required":["day","startTime","frequency"],"additionalProperties":false},"PlaceRef":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]+$"},"name":{"type":"string"},"area":{"type":"string"},"address":{"type":"string"},"url":{"type":"string"}},"required":["slug","name","area","url"],"additionalProperties":false},"Event":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]+$"},"url":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"details":{"type":"string"},"category":{"type":"string","enum":["Festivals & markets","Live music","Family","Arts & culture","Community","Outdoors","Equestrian","Sports"]},"tags":{"type":"array","items":{"type":"string"}},"organizer":{"type":"string"},"place":{"$ref":"#/components/schemas/PlaceRef"},"admission":{"type":"string","enum":["free","paid","unknown"]},"price":{"type":"string"},"priceValue":{"type":"number","minimum":0},"priceNote":{"type":"string"},"beforeYouGo":{"type":"string"},"statusNote":{"type":"string"},"registration":{"type":"object","properties":{"required":{"type":"boolean"},"url":{"type":"string"},"opens":{"type":"string"},"deadline":{"type":"string"},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["required","source","checkedAt"],"additionalProperties":false},"tickets":{"type":"object","properties":{"soldBy":{"type":"string"},"url":{"type":"string"},"onSale":{"type":"string"},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["source","checkedAt"],"additionalProperties":false},"extraCosts":{"minItems":1,"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"amount":{"type":"number","minimum":0},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["label","source","checkedAt"],"additionalProperties":false}},"ages":{"type":"object","properties":{"min":{"type":"integer","minimum":0,"maximum":120},"max":{"type":"integer","minimum":0,"maximum":120},"adultMustAttendUnder":{"type":"integer","minimum":0,"maximum":120},"guardianPermissionUnder":{"type":"integer","minimum":0,"maximum":120},"recommended":{"type":"boolean","const":true},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["source","checkedAt"],"additionalProperties":false},"setting":{"type":"object","properties":{"value":{"type":"string","enum":["indoors","outdoors","both"]},"words":{"type":"string"},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["value","words","source","checkedAt"],"additionalProperties":false},"eligibility":{"minItems":1,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["residency","membership","prerequisite","invitation","other"]},"text":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["kind","text","source","checkedAt"],"additionalProperties":false}},"multiDay":{"type":"boolean","const":true},"source":{"type":"string"},"supportingSources":{"type":"array","items":{"type":"string"}},"checkedAt":{"type":"string"},"occurrences":{"type":"array","items":{"$ref":"#/components/schemas/Occurrence"}},"schedule_question":{"anyOf":[{"$ref":"#/components/schemas/Question"},{"type":"null"}]}},"required":["slug","url","title","summary","details","category","tags","organizer","place","admission","price","beforeYouGo","source","checkedAt","occurrences","schedule_question"],"additionalProperties":false},"EventListItem":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]+$"},"url":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"details":{"type":"string"},"category":{"type":"string","enum":["Festivals & markets","Live music","Family","Arts & culture","Community","Outdoors","Equestrian","Sports"]},"tags":{"type":"array","items":{"type":"string"}},"organizer":{"type":"string"},"place":{"$ref":"#/components/schemas/PlaceRef"},"admission":{"type":"string","enum":["free","paid","unknown"]},"price":{"type":"string"},"priceValue":{"type":"number","minimum":0},"priceNote":{"type":"string"},"beforeYouGo":{"type":"string"},"statusNote":{"type":"string"},"registration":{"type":"object","properties":{"required":{"type":"boolean"},"url":{"type":"string"},"opens":{"type":"string"},"deadline":{"type":"string"},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["required","source","checkedAt"],"additionalProperties":false},"tickets":{"type":"object","properties":{"soldBy":{"type":"string"},"url":{"type":"string"},"onSale":{"type":"string"},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["source","checkedAt"],"additionalProperties":false},"extraCosts":{"minItems":1,"type":"array","items":{"type":"object","properties":{"label":{"type":"string"},"amount":{"type":"number","minimum":0},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["label","source","checkedAt"],"additionalProperties":false}},"ages":{"type":"object","properties":{"min":{"type":"integer","minimum":0,"maximum":120},"max":{"type":"integer","minimum":0,"maximum":120},"adultMustAttendUnder":{"type":"integer","minimum":0,"maximum":120},"guardianPermissionUnder":{"type":"integer","minimum":0,"maximum":120},"recommended":{"type":"boolean","const":true},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["source","checkedAt"],"additionalProperties":false},"setting":{"type":"object","properties":{"value":{"type":"string","enum":["indoors","outdoors","both"]},"words":{"type":"string"},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["value","words","source","checkedAt"],"additionalProperties":false},"eligibility":{"minItems":1,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["residency","membership","prerequisite","invitation","other"]},"text":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["kind","text","source","checkedAt"],"additionalProperties":false}},"multiDay":{"type":"boolean","const":true},"source":{"type":"string"},"supportingSources":{"type":"array","items":{"type":"string"}},"checkedAt":{"type":"string"},"occurrences":{"type":"array","items":{"$ref":"#/components/schemas/Occurrence"}},"schedule_question":{"anyOf":[{"$ref":"#/components/schemas/Question"},{"type":"null"}]},"matched_occurrence":{"type":"string","pattern":"^[a-z0-9-]+$"}},"required":["slug","url","title","summary","details","category","tags","organizer","place","admission","price","beforeYouGo","source","checkedAt","occurrences","schedule_question","matched_occurrence"],"additionalProperties":false},"Place":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]+$"},"url":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["Park","Venue","Library","Museum","Neighborhood","Coffee shop","Ice cream shop","Bookshop","Bike shop","Grocery","Restaurant","Bakery","Brewery","Distillery","Winery","Shop","Market","Farm","Attraction","Garden"]},"listingStatus":{"type":"string","const":"unclaimed"},"area":{"type":"string"},"address":{"type":"string"},"postalCode":{"type":"string","pattern":"^\\d{5}$"},"town":{"type":"string"},"region":{"type":"string"},"summary":{"type":"string"},"visitNote":{"type":"string"},"website":{"type":"string"},"contact":{"type":"object","properties":{"phone":{"type":"string","pattern":"^\\d{3}-\\d{3}-\\d{4}$"},"label":{"type":"string"},"email":{"type":"string","pattern":"^[a-z0-9._+-]+@[a-z0-9.-]+\\.[a-z]{2,}$"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["phone","source","checkedAt"],"additionalProperties":false},"access":{"minItems":1,"type":"array","items":{"type":"object","properties":{"feature":{"type":"string","enum":["step-free entrance","accessible restroom","accessible seating","accessible parking","elevator","assistive listening","captioning","ASL interpretation","sensory-friendly session","quiet space","wheelchair loan"]},"state":{"type":"string","enum":["available","on-request","not-available"]},"detail":{"type":"string"},"leadTime":{"type":"string"},"contact":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["feature","state","source","checkedAt"],"additionalProperties":false}},"visitorQuestions":{"type":"array","items":{"$ref":"#/components/schemas/Question"}},"source":{"type":"string"},"checkedAt":{"type":"string"},"calendar_url":{"type":"string"}},"required":["slug","url","name","kind","area","town","region","summary","visitNote","website","source","checkedAt","calendar_url"],"additionalProperties":false},"Guide":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]+$"},"url":{"type":"string"},"title":{"type":"string"},"intro":{"type":"string"},"area":{"type":"string"},"checkedAt":{"type":"string"},"validThrough":{"type":"string"},"state":{"type":"string","enum":["current","reference","archived","needs-review"]},"source":{"type":["string","null"]},"sources":{"type":"array","items":{"type":"string"}}},"required":["slug","url","title","intro","area","checkedAt","state","source","sources"],"additionalProperties":false},"Meeting":{"type":"object","properties":{"id":{"type":"string"},"date":{"type":"string"},"startTime":{"type":"string"},"endTime":{"type":"string"}},"required":["id","date","startTime"],"additionalProperties":false},"Organizer":{"type":"object","properties":{"slug":{"type":"string","pattern":"^[a-z0-9-]+$"},"url":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string","enum":["run club","cycling club","trivia","open mic","storytime","game night","pickleball","dance","chess","karaoke","music jam","book club","craft circle","language exchange","volunteer","social club","other"]},"area":{"type":"string"},"place":{"type":"string","pattern":"^[a-z0-9-]+$"},"where":{"type":"string"},"address":{"type":"string"},"summary":{"type":"string"},"website":{"type":"string"},"schedule":{"type":"array","items":{"$ref":"#/components/schemas/ScheduleRule"}},"scheduleNote":{"type":"string"},"datesOnly":{"type":"boolean","const":true},"firstVisit":{"type":"object","properties":{"text":{"type":"string"},"comeAlone":{"type":"string"},"beginners":{"type":"string"},"registration":{"type":"string","enum":["none","required","recommended"]},"bring":{"type":"string"},"meetHost":{"type":"string"},"introductions":{"type":"string"},"partner":{"type":"string"},"arrive":{"type":"string"},"newcomerNote":{"type":"string"},"contact":{"type":"object","properties":{"label":{"type":"string"},"email":{"type":"string","pattern":"^[a-z0-9._+-]+@[a-z0-9.-]+\\.[a-z]{2,}$"},"phone":{"type":"string","pattern":"^\\d{3}-\\d{3}-\\d{4}$"},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["label","source","checkedAt"],"additionalProperties":false},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["text","source","checkedAt"],"additionalProperties":false},"skipDates":{"minItems":1,"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"note":{"type":"string"},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["date","source","checkedAt"],"additionalProperties":false}},"cost":{"type":"string"},"validThrough":{"type":"string"},"schedule_expired":{"type":"boolean"},"upcoming":{"type":"array","items":{"$ref":"#/components/schemas/Meeting"}},"source":{"type":"string"},"checkedAt":{"type":"string"},"calendar_url":{"type":"string"}},"required":["slug","url","name","kind","area","where","summary","website","schedule","cost","validThrough","schedule_expired","upcoming","source","checkedAt","calendar_url"],"additionalProperties":false},"EventList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/EventListItem"}},"next_cursor":{"type":["string","null"]},"generated_at":{"type":"string"}},"required":["data","next_cursor","generated_at"],"additionalProperties":false},"EventDetail":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Event"},"generated_at":{"type":"string"}},"required":["data","generated_at"],"additionalProperties":false},"PlaceList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Place"}},"next_cursor":{"type":["string","null"]},"generated_at":{"type":"string"}},"required":["data","next_cursor","generated_at"],"additionalProperties":false},"PlaceDetail":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Place"},"generated_at":{"type":"string"}},"required":["data","generated_at"],"additionalProperties":false},"GuideList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Guide"}},"next_cursor":{"type":["string","null"]},"generated_at":{"type":"string"}},"required":["data","next_cursor","generated_at"],"additionalProperties":false},"OrganizerList":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Organizer"}},"next_cursor":{"type":["string","null"]},"generated_at":{"type":"string"}},"required":["data","next_cursor","generated_at"],"additionalProperties":false},"Error":{"type":"object","properties":{"status":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"message":{"type":"string"}},"required":["status","message"],"additionalProperties":false}}}}