Hostaway Webhooks API

Manage unified webhooks for the three Hostaway event types — reservation created, reservation updated, and new message received. Failed deliveries retry up to three times before a failure email is sent to the configured alert recipient.

Hostaway Webhooks API is one of 10 APIs that Hostaway publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko.

Tagged areas include Vacation Rentals, Webhooks, and Events. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, and 1 Naftiko capability spec.

OpenAPI Specification

hostaway-webhooks-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Hostaway Webhooks API
  description: |
    Manage unified webhooks for Hostaway events: reservation created,
    reservation updated, and new message received. Webhooks may also be
    configured through the dashboard at
    https://dashboard.hostaway.com/settings/integrations. Failed deliveries
    are retried up to 3 times before a failure notification is emailed.
  version: '1.0.0'
  contact:
    name: Hostaway Support
    email: [email protected]
    url: https://api.hostaway.com/documentation

servers:
  - url: https://api.hostaway.com/v1
    description: Production API

security:
  - OAuth2ClientCredentials: []

tags:
  - name: Webhooks
    description: Unified event webhooks

paths:
  /webhooks/unifiedWebhooks:
    get:
      summary: Hostaway List Unified Webhooks
      operationId: listUnifiedWebhooks
      tags:
        - Webhooks
      responses:
        '200':
          description: Webhooks collection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookListResponse'
    post:
      summary: Hostaway Create Unified Webhook
      operationId: createUnifiedWebhook
      tags:
        - Webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookInput'
      responses:
        '200':
          description: Webhook created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
  /webhooks/unifiedWebhooks/{webhookId}:
    parameters:
      - name: webhookId
        in: path
        required: true
        schema:
          type: integer
    get:
      summary: Hostaway Get Unified Webhook
      operationId: getUnifiedWebhook
      tags:
        - Webhooks
      responses:
        '200':
          description: Webhook
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
    put:
      summary: Hostaway Update Unified Webhook
      operationId: updateUnifiedWebhook
      tags:
        - Webhooks
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookInput'
      responses:
        '200':
          description: Webhook updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookResponse'
    delete:
      summary: Hostaway Delete Unified Webhook
      operationId: deleteUnifiedWebhook
      tags:
        - Webhooks
      responses:
        '200':
          description: Webhook deleted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'

components:
  securitySchemes:
    OAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.hostaway.com/v1/accessTokens
          scopes:
            general: General API access scope
  schemas:
    StandardResponse:
      type: object
      properties:
        status:
          type: string
          enum: [success, fail]
        result:
          type: object
    WebhookInput:
      type: object
      required:
        - url
      properties:
        url:
          type: string
          format: uri
        login:
          type: string
          description: Optional basic-auth username Hostaway sends with webhook
        password:
          type: string
          description: Optional basic-auth password Hostaway sends with webhook
        alertingEmailAddress:
          type: string
          format: email
          description: Recipient for delivery-failure notifications
        isEnabled:
          type: integer
          enum: [0, 1]
    Webhook:
      allOf:
        - $ref: '#/components/schemas/WebhookInput'
        - type: object
          properties:
            id:
              type: integer
            insertedOn:
              type: string
              format: date-time
    WebhookResponse:
      type: object
      properties:
        status:
          type: string
        result:
          $ref: '#/components/schemas/Webhook'
    WebhookListResponse:
      type: object
      properties:
        status:
          type: string
        result:
          type: array
          items:
            $ref: '#/components/schemas/Webhook'