openapi: 3.0.3 info: title: Hospitable Public Calendar API description: The Hospitable Public API (v2) is a REST API for short-term and vacation rental hosts, property managers, and vendors. It exposes the core objects of the Hospitable platform - properties, channel listings, reservations, guest messages, calendar availability and pricing, and reviews - as resources manipulated with conventional HTTP methods (GET, POST, PUT, PATCH, DELETE) over HTTPS. Versioning is in the URL path (e.g. /v2/properties). Requests are authenticated with a Bearer token that is either a Personal Access Token (PAT) for personal use or an OAuth 2.0 access token for vendor integrations; PATs have access to all endpoints by default. Read access covers properties, reservations, and calendar; write access covers property calendar pricing and availability and sending guest messages. Hospitable was formerly known as Smartbnb. Note - the exact request/response schemas below are modeled from Hospitable's public documentation and community SDKs; verify field-level details against developer.hospitable.com. version: '2.0' contact: name: Hospitable url: https://developer.hospitable.com termsOfService: https://hospitable.com/terms servers: - url: https://public.api.hospitable.com/v2 description: Hospitable Public API v2 security: - bearerAuth: [] tags: - name: Calendar description: Nightly availability, pricing, and restrictions per property. paths: /properties/{uuid}/calendar: get: operationId: getPropertyCalendar tags: - Calendar summary: Get a property calendar description: Retrieves the nightly calendar for a property over a date range - availability, price, and minimum-stay and other restrictions per date. parameters: - $ref: '#/components/parameters/PropertyUuid' - name: start_date in: query required: true schema: type: string format: date - name: end_date in: query required: true schema: type: string format: date responses: '200': description: The calendar days for the property. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CalendarDay' '401': $ref: '#/components/responses/Unauthorized' put: operationId: updatePropertyCalendar tags: - Calendar summary: Update a property calendar description: Updates availability and/or pricing for one or more dates on a property calendar. Requires write access. Hospitable syncs the change to the connected channels. Modeled endpoint - confirm method and body against the documentation. parameters: - $ref: '#/components/parameters/PropertyUuid' requestBody: required: true content: application/json: schema: type: object properties: dates: type: array items: $ref: '#/components/schemas/CalendarDay' responses: '200': description: The updated calendar days. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/CalendarDay' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/UnprocessableEntity' components: schemas: CalendarDay: type: object properties: date: type: string format: date available: type: boolean status: type: string price: type: object properties: amount: type: integer description: Nightly price in the smallest currency unit. currency: type: string min_nights: type: integer closed_for_checkin: type: boolean closed_for_checkout: type: boolean Error: type: object properties: message: type: string errors: type: object additionalProperties: type: array items: type: string responses: UnprocessableEntity: description: The request body failed validation. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: The Bearer token is missing, invalid, or lacks the required scope. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: PropertyUuid: name: uuid in: path required: true schema: type: string description: The property UUID. securitySchemes: bearerAuth: type: http scheme: bearer description: 'A Personal Access Token (PAT) or OAuth 2.0 access token supplied as `Authorization: Bearer `. OAuth 2.0 authorization-code flow is used for vendor integrations; PATs are scoped to a single Hospitable account for personal use.'