{"openapi":"3.1.0","info":{"title":"Guestcord pilot API","version":"1.0.0","description":"Read-only, single-operator pilot. API access is disabled until a separate server-side key is configured. No Booking.com or Airbnb API access is implied."},"servers":[{"url":"https://guestcord.kookos951.chatgpt.site"}],"paths":{"/api/v1/status":{"get":{"summary":"Pilot status","responses":{"200":{"description":"API mode and integration status"}}}},"/api/v1/properties":{"get":{"summary":"List properties without guest data","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Properties and base prices in EUR"},"401":{"description":"Invalid API credentials"},"503":{"description":"API key not configured"}}}},"/api/v1/availability":{"get":{"summary":"Occupied date ranges without guest data","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"propertyId","required":true,"schema":{"type":"string"}},{"in":"query","name":"from","required":true,"schema":{"type":"string","format":"date"}},{"in":"query","name":"to","required":true,"schema":{"type":"string","format":"date"}}],"responses":{"200":{"description":"Confirmed reserved or blocked date intervals (end exclusive)"},"400":{"description":"Invalid date range"},"401":{"description":"Invalid API credentials"},"503":{"description":"API key not configured"}}}},"/api/v1/rates":{"get":{"summary":"Local base rate and seasonal rules for a property; no OTA transmission","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"propertyId","required":true,"schema":{"type":"string"}},{"in":"query","name":"from","required":true,"schema":{"type":"string","format":"date"}},{"in":"query","name":"to","required":true,"schema":{"type":"string","format":"date","description":"Exclusive end date"}}],"responses":{"200":{"description":"EUR nightly base rate and inclusive seasonal periods with local channel labels"},"400":{"description":"Invalid date range"},"401":{"description":"Invalid API credentials"},"503":{"description":"API key not configured"}}}},"/api/v1/inventory":{"get":{"summary":"Local daily availability, price and minimum stay; no OTA transmission","security":[{"bearerAuth":[]}],"parameters":[{"in":"query","name":"propertyId","required":true,"schema":{"type":"string"}},{"in":"query","name":"from","required":true,"schema":{"type":"string","format":"date"}},{"in":"query","name":"to","required":true,"schema":{"type":"string","format":"date","description":"Exclusive end date"}},{"in":"query","name":"channel","schema":{"type":"string","enum":["direct","booking","airbnb","agoda","vrbo","expedia"],"default":"direct"}}],"responses":{"200":{"description":"Daily internal inventory; no channel synchronisation"},"400":{"description":"Invalid date range"},"401":{"description":"Invalid API credentials"},"503":{"description":"API key not configured"}}}},"/api/v1/channel-mappings":{"get":{"summary":"Read internal property mappings and their authorisation status","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Property and channel identifiers; pending mappings are not live integrations"},"401":{"description":"Invalid API credentials"},"503":{"description":"API key not configured"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Separate GUESTCORD_API_KEY, never the dashboard access cookie."}}}}