{
  "service": "lodgify",
  "displayName": "Lodgify",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "lodgify_api_key",
      "description": "Lodgify API key sent with the X-ApiKey header. Create or view API keys in Lodgify account settings: https://docs.lodgify.com/docs/getting-started-1."
    }
  ],
  "homepageUrl": "https://www.lodgify.com/",
  "actions": [
    {
      "id": "lodgify.get_booking",
      "service": "lodgify",
      "name": "get_booking",
      "description": "Get one Lodgify booking by identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "bookingId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Lodgify booking identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a Lodgify booking."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "booking": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The Lodgify booking identifier when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "status": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Lodgify booking status when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Lodgify object returned by the API."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Lodgify booking wrapper."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Lodgify object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "A Lodgify booking detail response."
      }
    },
    {
      "id": "lodgify.get_property",
      "service": "lodgify",
      "name": "get_property",
      "description": "Get one Lodgify property by identifier.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Lodgify property identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving a Lodgify property."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "property": {
            "type": "object",
            "properties": {
              "id": {
                "anyOf": [
                  {
                    "type": "integer",
                    "description": "The Lodgify property identifier when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "name": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Lodgify property name when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Lodgify object returned by the API."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Lodgify property wrapper."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Lodgify object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "A Lodgify property detail response."
      }
    },
    {
      "id": "lodgify.get_property_availability",
      "service": "lodgify",
      "name": "get_property_availability",
      "description": "Get Lodgify availability periods for a property over a date range.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Lodgify property identifier."
          },
          "from": {
            "type": "string",
            "description": "The start date for the Lodgify query in YYYY-MM-DD format.",
            "format": "date"
          },
          "to": {
            "type": "string",
            "description": "The end date for the Lodgify query in YYYY-MM-DD format.",
            "format": "date"
          }
        },
        "additionalProperties": false,
        "description": "Input for retrieving Lodgify property availability."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "availability": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "roomTypeId": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Lodgify room type identifier for this availability period."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "start": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The availability period start date when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "end": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The availability period end date when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "available": {
                  "anyOf": [
                    {
                      "type": "number",
                      "description": "The available unit count for this period when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Lodgify object returned by the API."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Lodgify availability period wrapper."
            },
            "description": "Availability periods returned by Lodgify."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Lodgify object returned by the API."
            },
            "description": "The raw Lodgify availability array."
          }
        },
        "additionalProperties": false,
        "description": "Lodgify availability periods for a property."
      }
    },
    {
      "id": "lodgify.get_quote",
      "service": "lodgify",
      "name": "get_quote",
      "description": "Calculate a Lodgify quote for a property, room type, stay dates, and adults.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Lodgify property identifier."
          },
          "from": {
            "type": "string",
            "description": "The start date for the Lodgify query in YYYY-MM-DD format.",
            "format": "date"
          },
          "to": {
            "type": "string",
            "description": "The end date for the Lodgify query in YYYY-MM-DD format.",
            "format": "date"
          },
          "roomTypeId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Lodgify room type identifier to quote."
          },
          "adults": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of adult guests to include in the quote."
          }
        },
        "additionalProperties": false,
        "description": "Input for calculating a Lodgify quote."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "quote": {
            "type": "object",
            "properties": {
              "totalIncludingVat": {
                "anyOf": [
                  {
                    "type": "number",
                    "description": "The quote total including VAT when returned by Lodgify."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "currencyCode": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The Lodgify quote currency code when returned."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "raw": {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "The raw Lodgify object returned by the API."
              }
            },
            "additionalProperties": false,
            "description": "A normalized Lodgify quote wrapper."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Lodgify object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "A Lodgify quote response."
      }
    },
    {
      "id": "lodgify.list_bookings",
      "service": "lodgify",
      "name": "list_bookings",
      "description": "List Lodgify bookings with pagination and optional stay filter.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-based Lodgify page number to request."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of Lodgify items to request per page."
          },
          "stayFilter": {
            "type": "string",
            "enum": [
              "Upcoming",
              "Current",
              "Historic",
              "All"
            ],
            "description": "The Lodgify stay filter for the booking list."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Lodgify bookings."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The Lodgify booking total count when returned."
              },
              {
                "type": "null"
              }
            ]
          },
          "bookings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Lodgify booking identifier when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Lodgify booking status when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Lodgify object returned by the API."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Lodgify booking wrapper."
            },
            "description": "Bookings returned for the current Lodgify page."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Lodgify object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "A page of Lodgify bookings."
      }
    },
    {
      "id": "lodgify.list_properties",
      "service": "lodgify",
      "name": "list_properties",
      "description": "List Lodgify properties with optional pagination and total count.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The 1-based Lodgify page number to request."
          },
          "size": {
            "type": "integer",
            "minimum": 1,
            "description": "The number of Lodgify items to request per page."
          },
          "includeCount": {
            "type": "boolean",
            "description": "Whether Lodgify should include the total count."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Lodgify properties."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "count": {
            "anyOf": [
              {
                "type": "integer",
                "description": "The Lodgify total count when included in the response."
              },
              {
                "type": "null"
              }
            ]
          },
          "properties": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Lodgify property identifier when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Lodgify property name when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Lodgify object returned by the API."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Lodgify property wrapper."
            },
            "description": "Properties returned for the current Lodgify page."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Lodgify object returned by the API."
          }
        },
        "additionalProperties": false,
        "description": "A page of Lodgify properties."
      }
    },
    {
      "id": "lodgify.list_property_rooms",
      "service": "lodgify",
      "name": "list_property_rooms",
      "description": "List room types configured for a Lodgify property.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "propertyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The Lodgify property identifier."
          }
        },
        "additionalProperties": false,
        "description": "Input for listing Lodgify property room types."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "rooms": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "anyOf": [
                    {
                      "type": "integer",
                      "description": "The Lodgify room type identifier when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "name": {
                  "anyOf": [
                    {
                      "type": "string",
                      "description": "The Lodgify room type name when returned."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "raw": {
                  "type": "object",
                  "properties": {},
                  "additionalProperties": true,
                  "description": "The raw Lodgify object returned by the API."
                }
              },
              "additionalProperties": false,
              "description": "A normalized Lodgify room type wrapper."
            },
            "description": "Room types returned by Lodgify."
          },
          "raw": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw Lodgify object returned by the API."
            },
            "description": "The raw Lodgify room type array."
          }
        },
        "additionalProperties": false,
        "description": "Lodgify room types for a property."
      }
    }
  ]
}
