Guesty Open API

The Guesty Open API provides step-by-step instructions and documentation to integrate with the Guesty property management platform, including listings, reservations, guests, and multi-channel management.

OpenAPI Specification

guesty-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Guesty Open API
  description: >-
    Minimal OpenAPI description for the Guesty Open API. Covers a representative
    subset of resources for property management including listings, reservations,
    guests, calendar availability, and conversations across multi-channel
    distribution. Generated from public documentation; verify before production
    use.
  version: "1.0"
  contact:
    name: Guesty Open API Documentation
    url: https://open-api-docs.guesty.com/
  x-generated-from: https://open-api-docs.guesty.com/
  x-generated-by: claude-crawl-2026-05-08
servers:
  - url: https://open-api.guesty.com
    description: Guesty Open API production
security:
  - bearerAuth: []
tags:
  - name: Listings
    description: Property listings
  - name: Reservations
    description: Bookings and reservations
  - name: Guests
    description: Guest profiles
  - name: Calendars
    description: Listing availability and pricing
  - name: Conversations
    description: Guest communication threads
paths:
  /listings:
    get:
      operationId: listListings
      summary: List listings
      description: Retrieve a paginated list of listings.
      tags:
        - Listings
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 25
        - name: skip
          in: query
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListingList'
    post:
      operationId: createListing
      summary: Create listing
      description: Create a new listing.
      tags:
        - Listings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Listing'
      responses:
        '201':
          description: Listing created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Listing'
  /listings/{id}:
    get:
      operationId: getListing
      summary: Get listing by id
      tags:
        - Listings
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Listing'
  /reservations:
    get:
      operationId: listReservations
      summary: List reservations
      tags:
        - Reservations
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 25
        - name: skip
          in: query
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReservationList'
    post:
      operationId: createReservation
      summary: Create reservation
      tags:
        - Reservations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Reservation'
      responses:
        '201':
          description: Reservation created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Reservation'
  /reservations/{id}:
    get:
      operationId: getReservation
      summary: Get reservation by id
      tags:
        - Reservations
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Reservation'
  /guests:
    get:
      operationId: listGuests
      summary: List guests
      tags:
        - Guests
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GuestList'
  /guests/{id}:
    get:
      operationId: getGuest
      summary: Get guest by id
      tags:
        - Guests
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Guest'
  /calendars/listings/{listingId}:
    get:
      operationId: getCalendar
      summary: Get listing calendar
      description: Retrieve availability and pricing for a listing.
      tags:
        - Calendars
      parameters:
        - name: listingId
          in: path
          required: true
          schema:
            type: string
        - name: from
          in: query
          schema:
            type: string
            format: date
        - name: to
          in: query
          schema:
            type: string
            format: date
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
  /communication-conversations:
    get:
      operationId: listConversations
      summary: List conversations
      tags:
        - Conversations
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  schemas:
    Listing:
      type: object
      properties:
        _id:
          type: string
        title:
          type: string
        nickname:
          type: string
        accountId:
          type: string
        active:
          type: boolean
    ListingList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Listing'
        count:
          type: integer
    Reservation:
      type: object
      properties:
        _id:
          type: string
        listingId:
          type: string
        guestId:
          type: string
        checkInDateLocalized:
          type: string
          format: date
        checkOutDateLocalized:
          type: string
          format: date
        status:
          type: string
    ReservationList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Reservation'
        count:
          type: integer
    Guest:
      type: object
      properties:
        _id:
          type: string
        fullName:
          type: string
        email:
          type: string
        phone:
          type: string
    GuestList:
      type: object
      properties:
        results:
          type: array
          items:
            $ref: '#/components/schemas/Guest'
        count:
          type: integer