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