openapi: 3.0.3 info: title: Smoobu Apartments Rates and Availability API description: The Smoobu API is a RESTful JSON API for the Smoobu vacation rental channel manager and property management system. It lets Professional subscribers and integration partners read and write apartments (listings), reservations (bookings), rates and availability, guests, and guest messages, and register webhooks for reservation changes. The primary base URL is https://login.smoobu.com/api; the public booking availability check is served under https://login.smoobu.com/booking. Authentication uses an API key sent in the "Api-Key" header (found in the Smoobu account under Settings > For Developers / API Keys). Smoobu additionally offers HMAC-signed requests (X-API-Key, X-Timestamp, X-Nonce, X-Signature headers) as the recommended method and OAuth 2 for partners; the legacy plain Api-Key header is documented as being sunset on 2026-09-25. Endpoints marked in descriptions as "modeled" are inferred from the documentation and should be verified against the live reference before production use. version: '1.0' contact: name: Smoobu url: https://www.smoobu.com servers: - url: https://login.smoobu.com description: Smoobu production security: - apiKey: [] tags: - name: Rates and Availability description: Daily rates, prices, availability, and booking availability checks. paths: /api/rates: get: operationId: getRates tags: - Rates and Availability summary: Get rates and availability description: Returns daily rate, price, availability, and minimum-length-of-stay data per apartment over a date range. parameters: - name: start_date in: query required: true schema: type: string format: date - name: end_date in: query required: true schema: type: string format: date - name: apartments[] in: query schema: type: array items: type: integer description: One or more apartment ids to return rates for. responses: '200': description: Daily rates and availability keyed by apartment and date. '401': $ref: '#/components/responses/Unauthorized' post: operationId: updateRates tags: - Rates and Availability summary: Update rates and availability description: Pushes rate, price, availability, and restriction updates to Smoobu, which propagates them to connected channels. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RatesInput' responses: '200': description: Rates were updated. '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /booking/checkApartmentAvailability: post: operationId: checkApartmentAvailability tags: - Rates and Availability summary: Check apartment availability description: Checks which of the given apartments are available for a stay and returns the price. Used by booking flows to quote a reservation before creating it. requestBody: required: true content: application/json: schema: type: object properties: arrivalDate: type: string format: date departureDate: type: string format: date apartments: type: array items: type: integer customerId: type: integer guests: type: integer discountCode: type: string required: - arrivalDate - departureDate - apartments responses: '200': description: Availability and pricing for the requested apartments. '401': $ref: '#/components/responses/Unauthorized' components: schemas: RatesInput: type: object properties: apartments: type: array items: type: integer operations: type: array items: type: object properties: dates: type: array items: type: string format: date daily_price: type: number min_length_of_stay: type: integer available: type: integer responses: ValidationError: description: The request payload failed validation. Unauthorized: description: Authentication failed or the API key is missing or invalid. securitySchemes: apiKey: type: apiKey in: header name: Api-Key description: Smoobu API key sent in the Api-Key header. HMAC-signed requests (X-API-Key / X-Timestamp / X-Nonce / X-Signature) are the recommended method; OAuth 2 is available for partners. The plain Api-Key header is documented as being sunset on 2026-09-25.