{"openapi":"3.0.3","info":{"title":"Windsurfdeal — MiddleVerse Business API","description":"&#21507;&#29916;&#21543;&#27719;&#38598;&#32593;&#21451;&#29190;&#26009;&#19982;&#31038;&#20250;&#23089;&#20048;&#22280;&#28909;&#28857;&#20107;&#20214;&#65292;&#35206;&#30422;&#26126;&#26143;&#32495;&#38395;&#12289;&#32593;&#32418;&#20105;&#35758;&#12289;&#31038;&#20250;&#22855;&#38395;&#31561;&#22810;&#31867;&#35805;&#39064;&#65292;&#27599;&#26085;&#21516;&#27493;&#26032;&#40092;&#29916;&#26009;&#65292;&#22260;&#35266;&#32676;&#20247;&#21487;&#38543;&#26102;&#27983;&#35272;&#23436;&#25972;&#20107;&#20214;&#32463;&#36807;&#19982;&#32593;&#21451;&#35752;&#35770;&#65292;&#36731;&#26494;&#25484;&#25569;&#20840;&#32593;&#28909;&#35758;&#21160;&#24577;&#12290;\n\nMachine-readable API for Windsurfdeal on MiddleVerse. Live profile: https://middleverse.ai/b/windsurfdeal-rancho-palos-verdes","version":"1.0.0","contact":{"name":"MiddleVerse","url":"https://middleverse.ai"}},"servers":[{"url":"https://middleverse.ai","description":"Production"}],"tags":[{"name":"Windsurfdeal","description":"Bicycle Store"}],"paths":{"/api/v1/b/windsurfdeal-rancho-palos-verdes":{"get":{"tags":["Windsurfdeal"],"operationId":"getBusiness","summary":"Get Windsurfdeal 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/windsurfdeal-rancho-palos-verdes/products":{"get":{"tags":["Windsurfdeal"],"operationId":"getProducts","summary":"List products offered by Windsurfdeal","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/windsurfdeal-rancho-palos-verdes/services":{"get":{"tags":["Windsurfdeal"],"operationId":"getServices","summary":"List services offered by Windsurfdeal","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/windsurfdeal-rancho-palos-verdes/availability":{"get":{"tags":["Windsurfdeal"],"operationId":"getAvailability","summary":"Get Windsurfdeal 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"}}}}}}