openapi: 3.0.1 info: title: Lodgify Public Availability Properties API description: The Lodgify Public API is a REST interface for the Lodgify vacation rental platform. It exposes properties and room types, availability calendars, daily rates, rate settings, priced quotes, the full booking and reservation lifecycle, guest messaging threads, and webhook subscriptions. The API spans two versions (v1 and v2) under the host https://api.lodgify.com and is authenticated with an X-ApiKey request header. termsOfService: https://www.lodgify.com/legal-stuff/ contact: name: Lodgify Support url: https://docs.lodgify.com version: '2.0' servers: - url: https://api.lodgify.com description: Lodgify Public API (v1 and v2 paths) security: - ApiKeyAuth: [] tags: - name: Properties description: Vacation rental properties and their room types. paths: /v2/properties: get: operationId: listProperties tags: - Properties summary: List properties description: Returns a paged list of all properties on the account. parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/Size' - name: includeCount in: query schema: type: boolean description: Whether to include the total count in the response. responses: '200': description: A paged list of properties. content: application/json: schema: $ref: '#/components/schemas/PropertyList' '401': $ref: '#/components/responses/Unauthorized' /v2/properties/{id}: get: operationId: getProperty tags: - Properties summary: Get a property description: Returns the details of a single property by its identifier. parameters: - $ref: '#/components/parameters/PropertyId' responses: '200': description: The requested property. content: application/json: schema: $ref: '#/components/schemas/Property' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /v2/properties/{id}/rooms: get: operationId: listPropertyRooms tags: - Properties summary: List property room types description: Returns the room types configured for a property. parameters: - $ref: '#/components/parameters/PropertyId' responses: '200': description: A list of room types for the property. content: application/json: schema: type: array items: $ref: '#/components/schemas/Room' '401': $ref: '#/components/responses/Unauthorized' components: schemas: Property: type: object properties: id: type: integer format: int32 name: type: string description: type: string latitude: type: number format: double longitude: type: number format: double address: type: string city: type: string country_code: type: string currency_code: type: string rooms: type: array items: $ref: '#/components/schemas/Room' Error: type: object properties: code: type: string message: type: string Room: type: object properties: id: type: integer format: int32 name: type: string max_people: type: integer format: int32 bedrooms: type: integer format: int32 bathrooms: type: number format: float PropertyList: type: object properties: count: type: integer format: int32 items: type: array items: $ref: '#/components/schemas/Property' parameters: PropertyId: name: id in: path required: true schema: type: integer format: int32 description: Property identifier. Page: name: page in: query schema: type: integer format: int32 default: 1 description: 1-based page number. Size: name: size in: query schema: type: integer format: int32 default: 50 description: Number of items per page. responses: Unauthorized: description: Missing or invalid X-ApiKey. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-ApiKey description: Account API key passed in the X-ApiKey request header.