Lodgify Webhooks API

Event subscriptions for real-time notifications.

OpenAPI Specification

lodgify-webhooks-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Lodgify Public Availability Webhooks 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: Webhooks
  description: Event subscriptions for real-time notifications.
paths:
  /webhooks/v1/list:
    get:
      operationId: listWebhooks
      tags:
      - Webhooks
      summary: List webhook subscriptions
      description: Returns all active webhook subscriptions for the account.
      responses:
        '200':
          description: A list of webhook subscriptions.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Webhook'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /webhooks/v1/subscribe:
    post:
      operationId: subscribeWebhook
      tags:
      - Webhooks
      summary: Subscribe to a webhook event
      description: Subscribes a unique target URL to a given event. When the event occurs the target URL is called with event-related information and should return a 200 OK response.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookSubscribe'
      responses:
        '200':
          description: Subscription created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Webhook'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /webhooks/v1/unsubscribe:
    delete:
      operationId: unsubscribeWebhook
      tags:
      - Webhooks
      summary: Unsubscribe from a webhook event
      description: Removes a webhook subscription by its identifier.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookUnsubscribe'
      responses:
        '200':
          description: Subscription removed.
        '401':
          $ref: '#/components/responses/Unauthorized'
  /webhooks/v1/{id}:
    delete:
      operationId: deleteWebhook
      tags:
      - Webhooks
      summary: Delete a webhook subscription
      description: Deletes a specific webhook subscription by its identifier.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Subscription deleted.
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  schemas:
    Webhook:
      type: object
      properties:
        id:
          type: string
        event:
          type: string
        target_url:
          type: string
          format: uri
    Error:
      type: object
      properties:
        code:
          type: string
        message:
          type: string
    WebhookSubscribe:
      type: object
      required:
      - event
      - target_url
      properties:
        event:
          type: string
          description: Event name to subscribe to (for example, booking_change).
        target_url:
          type: string
          format: uri
          description: Unique URL called when the event occurs.
    WebhookUnsubscribe:
      type: object
      required:
      - id
      properties:
        id:
          type: string
          description: Identifier of the subscription to remove.
  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.