Smoobu Rates and Availability API

Daily rates, prices, availability, and booking availability checks.

OpenAPI Specification

smoobu-rates-and-availability-api-openapi.yml Raw ↑
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.