Lodgify Properties API

Vacation rental properties and their room types.

OpenAPI Specification

lodgify-properties-api-openapi.yml Raw ↑
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.