{"openapi":"3.0.3","info":{"title":"James John Elementary School — MiddleVerse Business API","description":"Looking for how to help in the PPS \"Rightsizing\" fight? Click here Want to join the James John PTA? Click here! Want to volunteer? Click here! Welcome back, Lions! Join us for our first General Meeting on Thursday October 15th. Meetings are held on the third Thursday of every month at 5:30PM - dinner is…\n\nMachine-readable API for James John Elementary School on MiddleVerse. Live profile: https://middleverse.ai/b/james-john-elementary-school-portland","version":"1.0.0","contact":{"name":"MiddleVerse","url":"https://middleverse.ai"}},"servers":[{"url":"https://middleverse.ai","description":"Production"}],"tags":[{"name":"James John Elementary School","description":"Elementary School"}],"paths":{"/api/v1/b/james-john-elementary-school-portland":{"get":{"tags":["James John Elementary School"],"operationId":"getBusiness","summary":"Get James John Elementary School profile, products, services, and hours","responses":{"200":{"description":"Business profile with products, services, hours, and links","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BusinessResponse"}}}},"404":{"description":"Business not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/b/james-john-elementary-school-portland/products":{"get":{"tags":["James John Elementary School"],"operationId":"getProducts","summary":"List products offered by James John Elementary School","responses":{"200":{"description":"Product list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProductsResponse"}}}},"404":{"description":"Business not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/b/james-john-elementary-school-portland/services":{"get":{"tags":["James John Elementary School"],"operationId":"getServices","summary":"List services offered by James John Elementary School","responses":{"200":{"description":"Service list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServicesResponse"}}}},"404":{"description":"Business not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/b/james-john-elementary-school-portland/availability":{"get":{"tags":["James John Elementary School"],"operationId":"getAvailability","summary":"Get James John Elementary School business hours and booked slots","parameters":[{"name":"startDate","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Range start (YYYY-MM-DD, default today)"},{"name":"endDate","in":"query","required":false,"schema":{"type":"string","format":"date"},"description":"Range end (YYYY-MM-DD, default +30 days)"}],"responses":{"200":{"description":"Business hours and already-booked slots","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AvailabilityResponse"}}}},"404":{"description":"Business not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","properties":{"success":{"type":"boolean"},"error":{"type":"string"}}},"Business":{"type":"object","properties":{"slug":{"type":"string"},"name":{"type":"string"},"canonicalUrl":{"type":"string","format":"uri","description":"Canonical MiddleVerse profile URL"},"businessId":{"type":"string","format":"uri","description":"Stable Schema.org business entity ID"},"description":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"schemaType":{"type":"string","description":"Resolved Schema.org LocalBusiness type"},"phone":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"address":{"type":"object","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"zip_code":{"type":"string","nullable":true},"coordinates":{"type":"object","nullable":true},"claimed":{"type":"boolean"},"verified":{"type":"boolean"}}},"Product":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"price":{"type":"number","nullable":true},"sale_price":{"type":"number","nullable":true},"currency":{"type":"string","nullable":true}}},"Service":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string","nullable":true},"category":{"type":"string","nullable":true},"price":{"type":"number","nullable":true},"currency":{"type":"string","nullable":true},"duration_minutes":{"type":"integer","nullable":true},"bookable_online":{"type":"boolean","nullable":true}}},"Links":{"type":"object","properties":{"self":{"type":"string"},"profile":{"type":"string"},"bookings":{"type":"string"},"products":{"type":"string"},"services":{"type":"string"},"openapi":{"type":"string"}}},"BusinessResponse":{"type":"object","properties":{"success":{"type":"boolean"},"business":{"$ref":"#/components/schemas/Business"},"products":{"type":"array","items":{"$ref":"#/components/schemas/Product"}},"services":{"type":"array","items":{"$ref":"#/components/schemas/Service"}},"hours":{"type":"object","nullable":true},"links":{"$ref":"#/components/schemas/Links"}}},"ProductsResponse":{"type":"object","properties":{"success":{"type":"boolean"},"business":{"type":"string"},"count":{"type":"integer"},"products":{"type":"array","items":{"$ref":"#/components/schemas/Product"}},"links":{"$ref":"#/components/schemas/Links"}}},"ServicesResponse":{"type":"object","properties":{"success":{"type":"boolean"},"business":{"type":"string"},"count":{"type":"integer"},"services":{"type":"array","items":{"$ref":"#/components/schemas/Service"}},"links":{"$ref":"#/components/schemas/Links"}}},"AvailabilityResponse":{"type":"object","properties":{"success":{"type":"boolean"},"business":{"type":"string"},"businessHours":{"type":"object","nullable":true},"bookedSlots":{"type":"array","items":{"type":"object"}},"status":{"type":"string"},"links":{"$ref":"#/components/schemas/Links"}}}}}}