AIRBNB

FRONTEND GUIDE FOR AI CODING AGENTS - PART 8 - PropertyCatalog Service

This document is a part of a REST API guide for the airbnb project. It is designed for AI agents that will generate frontend code to consume the project’s backend.

This document provides extensive instruction for the usage of propertyCatalog

Service Access

PropertyCatalog service management is handled through service specific base urls.

PropertyCatalog service may be deployed to the preview server, staging server, or production server. Therefore,it has 3 access URLs. The frontend application must support all deployment environments during development, and the user should be able to select the target API server on the login page (already handled in first part.).

For the propertyCatalog service, the base URLs are:

Scope

PropertyCatalog Service Description

Service for management of property listings, calendars, amenities, and localization for a short-term rental marketplace. Hosts can manage listings, availability, multi-language descriptions, policies, pricing, and attributes, served for global search and discovery…

PropertyCatalog service provides apis and business logic for following data objects in airbnb application. Each data object may be either a central domain of the application data structure or a related helper data object for a central concept. Note that data object concept is equal to table concept in the database, in the service database each data object is represented as a db table scheme and the object instances as table rows.

listingCalendar Data Object: Represents daily availability, pricing, and reservation state for a listing (i.e., a property calendar entry).

listingAmenity Data Object: Dictionary of possible amenities (wifi, pool, etc.) for hosts to reference in their listings.

listing Data Object: Represents a property or space offered for short-term rental by a host. Includes host ref, core attributes, pricing, location, seasonal pricing, media, and booking/policy properties…

listingLocaleText Data Object: Localized title & description texts for a property listing, per language.

API Structure

Object Structure of a Successful Response

When the service processes requests successfully, it wraps the requested resource(s) within a JSON envelope. This envelope includes the data and essential metadata such as configuration details and pagination information, providing context to the client.

HTTP Status Codes:

Success Response Format:

For successful operations, the response includes a "status": "OK" property, signaling that the request executed successfully. The structure of a successful response is outlined below:

{
  "status":"OK",
  "statusCode": 200,   
  "elapsedMs":126,
  "ssoTime":120,
  "source": "db",
  "cacheKey": "hexCode",
  "userId": "ID",
  "sessionId": "ID",
  "requestId": "ID",
  "dataName":"products",
  "method":"GET",
  "action":"list",
  "appVersion":"Version",
  "rowCount":3,
  "products":[{},{},{}],
  "paging": {
    "pageNumber":1, 
    "pageRowCount":25, 
    "totalRowCount":3,
    "pageCount":1
  },
  "filters": [],
  "uiPermissions": []
}

Additional Data

Each API may include additional data besides the main data object, depending on the business logic of the API. These will be provided in each API’s response signature.

Error Response

If a request encounters an issue—whether due to a logical fault or a technical problem—the service responds with a standardized JSON error structure. The HTTP status code indicates the nature of the error, using commonly recognized codes for clarity:

Each error response is structured to provide meaningful insight into the problem, assisting in efficient diagnosis and resolution.

{
  "result": "ERR",
  "status": 400,
  "message": "errMsg_organizationIdisNotAValidID",
  "errCode": 400,
  "date": "2024-03-19T12:13:54.124Z",
  "detail": "String"
}

ListingCalendar Data Object

Represents daily availability, pricing, and reservation state for a listing (i.e., a property calendar entry).

ListingCalendar Data Object Properties

ListingCalendar data object has got following properties that are represented as table fields in the database scheme. These properties don’t stand just for data storage, but each may have different settings to manage the business logic.

Property Type IsArray Required Secret Description
priceOverride Double false No No -
date Date false Yes No -
minStay Integer false No No -
listingId ID false Yes No -
bookedBy ID false No No -
iCalUrl String false No No -
externalCalendarIds String true No No -
isAvailable Boolean false Yes No -

Array Properties

externalCalendarIds

Array properties can hold multiple values. Array properties should be respected according to their multiple structure in the frontend in any user input for them. Please use multiple input components for the array proeprties when needed.

Relation Properties

listingId bookedBy

Mindbricks supports relations between data objects, allowing you to define how objects are linked together. The relations may reference to a data object either in this service or in another service. Id the reference is remote, backend handles the relations through service communication or elastic search. These relations should be respected in the frontend so that instaead of showing the related objects id, the frontend should list human readable values from other data objects. If the relation points to another service, frontend should use the referenced service api in case it needs related data. The relation logic is montly handled in backend so the api responses feeds the frontend about the relational data. In mmost cases the api response will provide the relational data as well as the main one.

In frontend, please ensure that,

1- instaead of these relational ids you show the main human readable field of the related target data (like name), 2- if this data object needs a user input of these relational ids, you should provide a combobox with the list of possible records or (a searchbox) to select with the realted target data object main human readable field.

The target object is a parent object, meaning that the relation is a one-to-many relationship from target to this object.

Required: Yes

The target object is a parent object, meaning that the relation is a one-to-many relationship from target to this object.

Required: No

Filter Properties

date listingId

Filter properties are used to define parameters that can be used in query filters, allowing for dynamic data retrieval based on user input or predefined criteria. These properties are automatically mapped as API parameters in the listing API’s.

ListingAmenity Data Object

Dictionary of possible amenities (wifi, pool, etc.) for hosts to reference in their listings.

ListingAmenity Data Object Properties

ListingAmenity data object has got following properties that are represented as table fields in the database scheme. These properties don’t stand just for data storage, but each may have different settings to manage the business logic.

Property Type IsArray Required Secret Description
iconUrl String false No No -
name String false Yes No -

Filter Properties

name

Filter properties are used to define parameters that can be used in query filters, allowing for dynamic data retrieval based on user input or predefined criteria. These properties are automatically mapped as API parameters in the listing API’s.

Listing Data Object

Represents a property or space offered for short-term rental by a host. Includes host ref, core attributes, pricing, location, seasonal pricing, media, and booking/policy properties…

Listing Data Object Properties

Listing data object has got following properties that are represented as table fields in the database scheme. These properties don’t stand just for data storage, but each may have different settings to manage the business logic.

Property Type IsArray Required Secret Description
title String false Yes No -
amenityIds ID true No No -
hostId ID false Yes No -
mainPhoto String false No No -
photos String true No No -
address String false Yes No -
pricePerNight Double false Yes No -
description Text false Yes No -
propertyType Enum false Yes No -
location Object false Yes No -
maxStay Integer false No No -
minStay Integer false No No -
currency String false Yes No -
seasonalPricing Object true No No -
approvalType Enum false Yes No -
bookingPolicies Object false No No -
cancellationPolicy Object false No No -
languagesSupported String true No No -
houseRules Text false No No -
isPublished Boolean false Yes No -
cityTaxPercent Double false No No -

Array Properties

amenityIds photos seasonalPricing languagesSupported

Array properties can hold multiple values. Array properties should be respected according to their multiple structure in the frontend in any user input for them. Please use multiple input components for the array proeprties when needed.

Enum Properties

Enum properties are defined with a set of allowed values, ensuring that only valid options can be assigned to them. The enum options value will be stored as strings in the database, but when a data object is created an additional property with the same name plus an idx suffix will be created, which will hold the index of the selected enum option. You can use the {fieldName_idx} property to sort by the enum value or when your enum options represent a hiyerarchy of values. In the frontend input components, enum type properties should only accept values from an option component that lists the enum options.

Relation Properties

amenityIds hostId

Mindbricks supports relations between data objects, allowing you to define how objects are linked together. The relations may reference to a data object either in this service or in another service. Id the reference is remote, backend handles the relations through service communication or elastic search. These relations should be respected in the frontend so that instaead of showing the related objects id, the frontend should list human readable values from other data objects. If the relation points to another service, frontend should use the referenced service api in case it needs related data. The relation logic is montly handled in backend so the api responses feeds the frontend about the relational data. In mmost cases the api response will provide the relational data as well as the main one.

In frontend, please ensure that,

1- instaead of these relational ids you show the main human readable field of the related target data (like name), 2- if this data object needs a user input of these relational ids, you should provide a combobox with the list of possible records or (a searchbox) to select with the realted target data object main human readable field.

The target object is a parent object, meaning that the relation is a one-to-many relationship from target to this object.

Required: No

The target object is a parent object, meaning that the relation is a one-to-many relationship from target to this object.

Required: Yes

Filter Properties

title hostId address pricePerNight propertyType currency isPublished

Filter properties are used to define parameters that can be used in query filters, allowing for dynamic data retrieval based on user input or predefined criteria. These properties are automatically mapped as API parameters in the listing API’s.

ListingLocaleText Data Object

Localized title & description texts for a property listing, per language.

ListingLocaleText Data Object Properties

ListingLocaleText data object has got following properties that are represented as table fields in the database scheme. These properties don’t stand just for data storage, but each may have different settings to manage the business logic.

Property Type IsArray Required Secret Description
localizedDescription Text false Yes No -
localizedTitle String false Yes No -
listingId ID false Yes No -
languageCode String false Yes No -

Relation Properties

listingId

Mindbricks supports relations between data objects, allowing you to define how objects are linked together. The relations may reference to a data object either in this service or in another service. Id the reference is remote, backend handles the relations through service communication or elastic search. These relations should be respected in the frontend so that instaead of showing the related objects id, the frontend should list human readable values from other data objects. If the relation points to another service, frontend should use the referenced service api in case it needs related data. The relation logic is montly handled in backend so the api responses feeds the frontend about the relational data. In mmost cases the api response will provide the relational data as well as the main one.

In frontend, please ensure that,

1- instaead of these relational ids you show the main human readable field of the related target data (like name), 2- if this data object needs a user input of these relational ids, you should provide a combobox with the list of possible records or (a searchbox) to select with the realted target data object main human readable field.

The target object is a parent object, meaning that the relation is a one-to-many relationship from target to this object.

Required: Yes

Filter Properties

listingId languageCode

Filter properties are used to define parameters that can be used in query filters, allowing for dynamic data retrieval based on user input or predefined criteria. These properties are automatically mapped as API parameters in the listing API’s.

Default CRUD APIs

For each data object, the backend architect may designate default APIs for standard operations (create, update, delete, get, list). These are the APIs that frontend CRUD forms and AI agents should use for basic record management. If no default is explicitly set (isDefaultApi), the frontend generator auto-discovers the most general API for each operation.

ListingCalendar Default APIs

Operation API Name Route Explicitly Set
Create createListingCalendar /v1/listingcalendars Auto
Update updateListingCalendar /v1/listingcalendars/:listingCalendarId Auto
Delete deleteListingCalendar /v1/listingcalendars/:listingCalendarId Auto
Get getListingCalendar /v1/listingcalendars/:listingCalendarId Auto
List listListingCalendars /v1/listingcalendars Auto

ListingAmenity Default APIs

Operation API Name Route Explicitly Set
Create createListingAmenity /v1/listingamenities Auto
Update updateListingAmenity /v1/listingamenities/:listingAmenityId Auto
Delete deleteListingAmenity /v1/listingamenities/:listingAmenityId Auto
Get getListingAmenity /v1/listingamenities/:listingAmenityId Auto
List listListingAmenities /v1/listingamenities Auto

Listing Default APIs

Operation API Name Route Explicitly Set
Create createListing /v1/listings Auto
Update updateListing /v1/listings/:listingId Auto
Delete deleteListing /v1/listings/:listingId Auto
Get getListing /v1/listings/:listingId Auto
List listListings /v1/listings Auto

ListingLocaleText Default APIs

Operation API Name Route Explicitly Set
Create createListingLocaleText /v1/listinglocaletexts Auto
Update updateListingLocaleText /v1/listinglocaletexts/:listingLocaleTextId Auto
Delete deleteListingLocaleText /v1/listinglocaletexts/:listingLocaleTextId Auto
Get getListingLocaleText /v1/listinglocaletexts/:listingLocaleTextId Auto
List listListingLocaleTexts /v1/listinglocaletexts Auto

When building CRUD forms for a data object, use the default create/update APIs listed above. The form fields should correspond to the API’s body parameters. For relation fields, render a dropdown loaded from the related object’s list API using the display label property.

API Reference

Update Listing API

Update an existing listing owned by the host or admin.

Rest Route

The updateListing API REST controller can be triggered via the following route:

/v1/listings/:listingId

Rest Request Parameters

The updateListing api has got 21 regular request parameters

Parameter Type Required Population
listingId ID true request.params?.[“listingId”]
title String false request.body?.[“title”]
amenityIds ID false request.body?.[“amenityIds”]
mainPhoto String false request.body?.[“mainPhoto”]
photos String false request.body?.[“photos”]
address String false request.body?.[“address”]
pricePerNight Double false request.body?.[“pricePerNight”]
description Text false request.body?.[“description”]
propertyType Enum false request.body?.[“propertyType”]
location Object false request.body?.[“location”]
maxStay Integer false request.body?.[“maxStay”]
minStay Integer false request.body?.[“minStay”]
currency String false request.body?.[“currency”]
seasonalPricing Object false request.body?.[“seasonalPricing”]
approvalType Enum false request.body?.[“approvalType”]
bookingPolicies Object false request.body?.[“bookingPolicies”]
cancellationPolicy Object false request.body?.[“cancellationPolicy”]
languagesSupported String false request.body?.[“languagesSupported”]
houseRules Text false request.body?.[“houseRules”]
isPublished Boolean false request.body?.[“isPublished”]
cityTaxPercent Double false request.body?.[“cityTaxPercent”]
listingId : This id paremeter is used to select the required data object that will be updated
title :
amenityIds :
mainPhoto :
photos :
address :
pricePerNight :
description :
propertyType :
location :
maxStay :
minStay :
currency :
seasonalPricing :
approvalType :
bookingPolicies :
cancellationPolicy :
languagesSupported :
houseRules :
isPublished :
cityTaxPercent :

REST Request To access the api you can use the REST controller with the path PATCH /v1/listings/:listingId

  axios({
    method: 'PATCH',
    url: `/v1/listings/${listingId}`,
    data: {
            title:"String",  
            amenityIds:"ID",  
            mainPhoto:"String",  
            photos:"String",  
            address:"String",  
            pricePerNight:"Double",  
            description:"Text",  
            propertyType:"Enum",  
            location:"Object",  
            maxStay:"Integer",  
            minStay:"Integer",  
            currency:"String",  
            seasonalPricing:"Object",  
            approvalType:"Enum",  
            bookingPolicies:"Object",  
            cancellationPolicy:"Object",  
            languagesSupported:"String",  
            houseRules:"Text",  
            isPublished:"Boolean",  
            cityTaxPercent:"Double",  
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listing",
	"method": "PATCH",
	"action": "update",
	"appVersion": "Version",
	"rowCount": 1,
	"listing": {
		"id": "ID",
		"title": "String",
		"amenityIds": "ID",
		"hostId": "ID",
		"mainPhoto": "String",
		"photos": "String",
		"address": "String",
		"pricePerNight": "Double",
		"description": "Text",
		"propertyType": "Enum",
		"propertyType_idx": "Integer",
		"location": "Object",
		"maxStay": "Integer",
		"minStay": "Integer",
		"currency": "String",
		"seasonalPricing": "Object",
		"approvalType": "Enum",
		"approvalType_idx": "Integer",
		"bookingPolicies": "Object",
		"cancellationPolicy": "Object",
		"languagesSupported": "String",
		"houseRules": "Text",
		"isPublished": "Boolean",
		"cityTaxPercent": "Double",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Create Listing API

Create a new rental property listing. Host must be the owner (session user).

Rest Route

The createListing API REST controller can be triggered via the following route:

/v1/listings

Rest Request Parameters

The createListing api has got 20 regular request parameters

Parameter Type Required Population
title String true request.body?.[“title”]
amenityIds ID false request.body?.[“amenityIds”]
mainPhoto String false request.body?.[“mainPhoto”]
photos String false request.body?.[“photos”]
address String true request.body?.[“address”]
pricePerNight Double true request.body?.[“pricePerNight”]
description Text true request.body?.[“description”]
propertyType Enum true request.body?.[“propertyType”]
location Object true request.body?.[“location”]
maxStay Integer false request.body?.[“maxStay”]
minStay Integer false request.body?.[“minStay”]
currency String true request.body?.[“currency”]
seasonalPricing Object false request.body?.[“seasonalPricing”]
approvalType Enum true request.body?.[“approvalType”]
bookingPolicies Object false request.body?.[“bookingPolicies”]
cancellationPolicy Object false request.body?.[“cancellationPolicy”]
languagesSupported String false request.body?.[“languagesSupported”]
houseRules Text false request.body?.[“houseRules”]
isPublished Boolean true request.body?.[“isPublished”]
cityTaxPercent Double false request.body?.[“cityTaxPercent”]
title :
amenityIds :
mainPhoto :
photos :
address :
pricePerNight :
description :
propertyType :
location :
maxStay :
minStay :
currency :
seasonalPricing :
approvalType :
bookingPolicies :
cancellationPolicy :
languagesSupported :
houseRules :
isPublished :
cityTaxPercent :

REST Request To access the api you can use the REST controller with the path POST /v1/listings

  axios({
    method: 'POST',
    url: '/v1/listings',
    data: {
            title:"String",  
            amenityIds:"ID",  
            mainPhoto:"String",  
            photos:"String",  
            address:"String",  
            pricePerNight:"Double",  
            description:"Text",  
            propertyType:"Enum",  
            location:"Object",  
            maxStay:"Integer",  
            minStay:"Integer",  
            currency:"String",  
            seasonalPricing:"Object",  
            approvalType:"Enum",  
            bookingPolicies:"Object",  
            cancellationPolicy:"Object",  
            languagesSupported:"String",  
            houseRules:"Text",  
            isPublished:"Boolean",  
            cityTaxPercent:"Double",  
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "201",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listing",
	"method": "POST",
	"action": "create",
	"appVersion": "Version",
	"rowCount": 1,
	"listing": {
		"id": "ID",
		"title": "String",
		"amenityIds": "ID",
		"hostId": "ID",
		"mainPhoto": "String",
		"photos": "String",
		"address": "String",
		"pricePerNight": "Double",
		"description": "Text",
		"propertyType": "Enum",
		"propertyType_idx": "Integer",
		"location": "Object",
		"maxStay": "Integer",
		"minStay": "Integer",
		"currency": "String",
		"seasonalPricing": "Object",
		"approvalType": "Enum",
		"approvalType_idx": "Integer",
		"bookingPolicies": "Object",
		"cancellationPolicy": "Object",
		"languagesSupported": "String",
		"houseRules": "Text",
		"isPublished": "Boolean",
		"cityTaxPercent": "Double",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Delete Listing API

Delete (soft-delete) a property listing. Host must be owner or admin.

Rest Route

The deleteListing API REST controller can be triggered via the following route:

/v1/listings/:listingId

Rest Request Parameters

The deleteListing api has got 1 regular request parameter

Parameter Type Required Population
listingId ID true request.params?.[“listingId”]
listingId : This id paremeter is used to select the required data object that will be deleted

REST Request To access the api you can use the REST controller with the path DELETE /v1/listings/:listingId

  axios({
    method: 'DELETE',
    url: `/v1/listings/${listingId}`,
    data: {
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listing",
	"method": "DELETE",
	"action": "delete",
	"appVersion": "Version",
	"rowCount": 1,
	"listing": {
		"id": "ID",
		"title": "String",
		"amenityIds": "ID",
		"hostId": "ID",
		"mainPhoto": "String",
		"photos": "String",
		"address": "String",
		"pricePerNight": "Double",
		"description": "Text",
		"propertyType": "Enum",
		"propertyType_idx": "Integer",
		"location": "Object",
		"maxStay": "Integer",
		"minStay": "Integer",
		"currency": "String",
		"seasonalPricing": "Object",
		"approvalType": "Enum",
		"approvalType_idx": "Integer",
		"bookingPolicies": "Object",
		"cancellationPolicy": "Object",
		"languagesSupported": "String",
		"houseRules": "Text",
		"isPublished": "Boolean",
		"cityTaxPercent": "Double",
		"isActive": false,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

List Listings API

List all property listings (optionally filtered). Includes amenities and locales as joins for display search cards.

Rest Route

The listListings API REST controller can be triggered via the following route:

/v1/listings

Rest Request Parameters

Filter Parameters

The listListings api supports 7 optional filter parameters for filtering list results:

title (String): Filter by title

hostId (ID): Filter by hostId

address (String): Filter by address

pricePerNight (Double): Filter by pricePerNight

propertyType (Enum): Filter by propertyType

currency (String): Filter by currency

isPublished (Boolean): Filter by isPublished

REST Request To access the api you can use the REST controller with the path GET /v1/listings

  axios({
    method: 'GET',
    url: '/v1/listings',
    data: {
    
    },
    params: {
    
        // Filter parameters (see Filter Parameters section above)
        // title: '<value>' // Filter by title
        // hostId: '<value>' // Filter by hostId
        // address: '<value>' // Filter by address
        // pricePerNight: '<value>' // Filter by pricePerNight
        // propertyType: '<value>' // Filter by propertyType
        // currency: '<value>' // Filter by currency
        // isPublished: '<value>' // Filter by isPublished
            }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listings",
	"method": "GET",
	"action": "list",
	"appVersion": "Version",
	"rowCount": "\"Number\"",
	"listings": [
		{
			"id": "ID",
			"title": "String",
			"amenityIds": "ID",
			"hostId": "ID",
			"mainPhoto": "String",
			"photos": "String",
			"address": "String",
			"pricePerNight": "Double",
			"description": "Text",
			"propertyType": "Enum",
			"propertyType_idx": "Integer",
			"location": "Object",
			"maxStay": "Integer",
			"minStay": "Integer",
			"currency": "String",
			"seasonalPricing": "Object",
			"approvalType": "Enum",
			"approvalType_idx": "Integer",
			"bookingPolicies": "Object",
			"cancellationPolicy": "Object",
			"languagesSupported": "String",
			"houseRules": "Text",
			"isPublished": "Boolean",
			"cityTaxPercent": "Double",
			"isActive": true,
			"recordVersion": "Integer",
			"createdAt": "Date",
			"updatedAt": "Date",
			"_owner": "ID",
			"reviews": {
				"rating": "Integer",
				"revieweeId": "ID"
			},
			"amenities": {
				"iconUrl": "String",
				"name": "String"
			}
		},
		{},
		{}
	],
	"paging": {
		"pageNumber": "Number",
		"pageRowCount": "NUmber",
		"totalRowCount": "Number",
		"pageCount": "Number"
	},
	"filters": [],
	"uiPermissions": []
}

Update Listingcalendar API

Update a calendar entry (availablity, pricing, reservation) for a listing date.

Rest Route

The updateListingCalendar API REST controller can be triggered via the following route:

/v1/listingcalendars/:listingCalendarId

Rest Request Parameters

The updateListingCalendar api has got 7 regular request parameters

Parameter Type Required Population
listingCalendarId ID true request.params?.[“listingCalendarId”]
priceOverride Double false request.body?.[“priceOverride”]
minStay Integer false request.body?.[“minStay”]
bookedBy ID false request.body?.[“bookedBy”]
iCalUrl String false request.body?.[“iCalUrl”]
externalCalendarIds String false request.body?.[“externalCalendarIds”]
isAvailable Boolean false request.body?.[“isAvailable”]
listingCalendarId : This id paremeter is used to select the required data object that will be updated
priceOverride :
minStay :
bookedBy :
iCalUrl :
externalCalendarIds :
isAvailable :

REST Request To access the api you can use the REST controller with the path PATCH /v1/listingcalendars/:listingCalendarId

  axios({
    method: 'PATCH',
    url: `/v1/listingcalendars/${listingCalendarId}`,
    data: {
            priceOverride:"Double",  
            minStay:"Integer",  
            bookedBy:"ID",  
            iCalUrl:"String",  
            externalCalendarIds:"String",  
            isAvailable:"Boolean",  
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingCalendar",
	"method": "PATCH",
	"action": "update",
	"appVersion": "Version",
	"rowCount": 1,
	"listingCalendar": {
		"id": "ID",
		"priceOverride": "Double",
		"date": "Date",
		"minStay": "Integer",
		"listingId": "ID",
		"bookedBy": "ID",
		"iCalUrl": "String",
		"externalCalendarIds": "String",
		"isAvailable": "Boolean",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Create Listingcalendar API

Add a calendar entry for a listing/date—controls availability or booking info for that day.

Rest Route

The createListingCalendar API REST controller can be triggered via the following route:

/v1/listingcalendars

Rest Request Parameters

The createListingCalendar api has got 8 regular request parameters

Parameter Type Required Population
priceOverride Double false request.body?.[“priceOverride”]
date Date true request.body?.[“date”]
minStay Integer false request.body?.[“minStay”]
listingId ID true request.body?.[“listingId”]
bookedBy ID false request.body?.[“bookedBy”]
iCalUrl String false request.body?.[“iCalUrl”]
externalCalendarIds String false request.body?.[“externalCalendarIds”]
isAvailable Boolean true request.body?.[“isAvailable”]
priceOverride :
date :
minStay :
listingId :
bookedBy :
iCalUrl :
externalCalendarIds :
isAvailable :

REST Request To access the api you can use the REST controller with the path POST /v1/listingcalendars

  axios({
    method: 'POST',
    url: '/v1/listingcalendars',
    data: {
            priceOverride:"Double",  
            date:"Date",  
            minStay:"Integer",  
            listingId:"ID",  
            bookedBy:"ID",  
            iCalUrl:"String",  
            externalCalendarIds:"String",  
            isAvailable:"Boolean",  
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "201",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingCalendar",
	"method": "POST",
	"action": "create",
	"appVersion": "Version",
	"rowCount": 1,
	"listingCalendar": {
		"id": "ID",
		"priceOverride": "Double",
		"date": "Date",
		"minStay": "Integer",
		"listingId": "ID",
		"bookedBy": "ID",
		"iCalUrl": "String",
		"externalCalendarIds": "String",
		"isAvailable": "Boolean",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Delete Listingcalendar API

Delete (soft-delete) a listing calendar entry (by host/admin).

Rest Route

The deleteListingCalendar API REST controller can be triggered via the following route:

/v1/listingcalendars/:listingCalendarId

Rest Request Parameters

The deleteListingCalendar api has got 1 regular request parameter

Parameter Type Required Population
listingCalendarId ID true request.params?.[“listingCalendarId”]
listingCalendarId : This id paremeter is used to select the required data object that will be deleted

REST Request To access the api you can use the REST controller with the path DELETE /v1/listingcalendars/:listingCalendarId

  axios({
    method: 'DELETE',
    url: `/v1/listingcalendars/${listingCalendarId}`,
    data: {
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingCalendar",
	"method": "DELETE",
	"action": "delete",
	"appVersion": "Version",
	"rowCount": 1,
	"listingCalendar": {
		"id": "ID",
		"priceOverride": "Double",
		"date": "Date",
		"minStay": "Integer",
		"listingId": "ID",
		"bookedBy": "ID",
		"iCalUrl": "String",
		"externalCalendarIds": "String",
		"isAvailable": "Boolean",
		"isActive": false,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Get Listingcalendar API

Get a calendar date entry for a listing.

Rest Route

The getListingCalendar API REST controller can be triggered via the following route:

/v1/listingcalendars/:listingCalendarId

Rest Request Parameters

The getListingCalendar api has got 1 regular request parameter

Parameter Type Required Population
listingCalendarId ID true request.params?.[“listingCalendarId”]
listingCalendarId : This id paremeter is used to query the required data object.

REST Request To access the api you can use the REST controller with the path GET /v1/listingcalendars/:listingCalendarId

  axios({
    method: 'GET',
    url: `/v1/listingcalendars/${listingCalendarId}`,
    data: {
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingCalendar",
	"method": "GET",
	"action": "get",
	"appVersion": "Version",
	"rowCount": 1,
	"listingCalendar": {
		"id": "ID",
		"priceOverride": "Double",
		"date": "Date",
		"minStay": "Integer",
		"listingId": "ID",
		"bookedBy": "ID",
		"iCalUrl": "String",
		"externalCalendarIds": "String",
		"isAvailable": "Boolean",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

List Listingcalendars API

List calendar entries for one or more listings/dates. Used for display and availability search.

Rest Route

The listListingCalendars API REST controller can be triggered via the following route:

/v1/listingcalendars

Rest Request Parameters

Filter Parameters

The listListingCalendars api supports 2 optional filter parameters for filtering list results:

date (Date): Filter by date

listingId (ID): Filter by listingId

REST Request To access the api you can use the REST controller with the path GET /v1/listingcalendars

  axios({
    method: 'GET',
    url: '/v1/listingcalendars',
    data: {
    
    },
    params: {
    
        // Filter parameters (see Filter Parameters section above)
        // date: '<value>' // Filter by date
        // listingId: '<value>' // Filter by listingId
            }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingCalendars",
	"method": "GET",
	"action": "list",
	"appVersion": "Version",
	"rowCount": "\"Number\"",
	"listingCalendars": [
		{
			"id": "ID",
			"priceOverride": "Double",
			"date": "Date",
			"minStay": "Integer",
			"listingId": "ID",
			"bookedBy": "ID",
			"iCalUrl": "String",
			"externalCalendarIds": "String",
			"isAvailable": "Boolean",
			"isActive": true,
			"recordVersion": "Integer",
			"createdAt": "Date",
			"updatedAt": "Date",
			"_owner": "ID"
		},
		{},
		{}
	],
	"paging": {
		"pageNumber": "Number",
		"pageRowCount": "NUmber",
		"totalRowCount": "Number",
		"pageCount": "Number"
	},
	"filters": [],
	"uiPermissions": []
}

Get Listing API

Get a property listing, including enriched amenities and available locales.

Rest Route

The getListing API REST controller can be triggered via the following route:

/v1/listings/:listingId

Rest Request Parameters

The getListing api has got 1 regular request parameter

Parameter Type Required Population
listingId ID true request.params?.[“listingId”]
listingId : This id paremeter is used to query the required data object.

REST Request To access the api you can use the REST controller with the path GET /v1/listings/:listingId

  axios({
    method: 'GET',
    url: `/v1/listings/${listingId}`,
    data: {
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listing",
	"method": "GET",
	"action": "get",
	"appVersion": "Version",
	"rowCount": 1,
	"listing": {
		"id": "ID",
		"title": "String",
		"amenityIds": "ID",
		"hostId": "ID",
		"mainPhoto": "String",
		"photos": "String",
		"address": "String",
		"pricePerNight": "Double",
		"description": "Text",
		"propertyType": "Enum",
		"propertyType_idx": "Integer",
		"location": "Object",
		"maxStay": "Integer",
		"minStay": "Integer",
		"currency": "String",
		"seasonalPricing": "Object",
		"approvalType": "Enum",
		"approvalType_idx": "Integer",
		"bookingPolicies": "Object",
		"cancellationPolicy": "Object",
		"languagesSupported": "String",
		"houseRules": "Text",
		"isPublished": "Boolean",
		"cityTaxPercent": "Double",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID",
		"amenities": {
			"iconUrl": "String",
			"name": "String"
		},
		"reviews": {
			"moderationStatus": "Enum",
			"moderationStatus_idx": "Integer",
			"isPublished": "Boolean",
			"reviewText": "Text",
			"rating": "Integer",
			"revieweeId": "ID",
			"reservationId": "ID",
			"reviewerId": "ID",
			"revieweeType": "Enum",
			"revieweeType_idx": "Integer",
			"createdAt": "Date",
			"updatedAt": "Date"
		},
		"rezervations": [
			{
				"bookingStatus": "Enum",
				"bookingStatus_idx": "Integer",
				"guestId": "ID"
			},
			{},
			{}
		]
	}
}

Create Listinglocaletext API

Add a localized title & description for a listing/language pair.

Rest Route

The createListingLocaleText API REST controller can be triggered via the following route:

/v1/listinglocaletexts

Rest Request Parameters

The createListingLocaleText api has got 4 regular request parameters

Parameter Type Required Population
localizedDescription Text true request.body?.[“localizedDescription”]
localizedTitle String true request.body?.[“localizedTitle”]
listingId ID true request.body?.[“listingId”]
languageCode String true request.body?.[“languageCode”]
localizedDescription :
localizedTitle :
listingId :
languageCode :

REST Request To access the api you can use the REST controller with the path POST /v1/listinglocaletexts

  axios({
    method: 'POST',
    url: '/v1/listinglocaletexts',
    data: {
            localizedDescription:"Text",  
            localizedTitle:"String",  
            listingId:"ID",  
            languageCode:"String",  
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "201",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingLocaleText",
	"method": "POST",
	"action": "create",
	"appVersion": "Version",
	"rowCount": 1,
	"listingLocaleText": {
		"id": "ID",
		"localizedDescription": "Text",
		"localizedTitle": "String",
		"listingId": "ID",
		"languageCode": "String",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

List Listingamenities API

List all amenity options (public for guests/hosts creating listings).

Rest Route

The listListingAmenities API REST controller can be triggered via the following route:

/v1/listingamenities

Rest Request Parameters

Filter Parameters

The listListingAmenities api supports 1 optional filter parameter for filtering list results:

name (String): Filter by name

REST Request To access the api you can use the REST controller with the path GET /v1/listingamenities

  axios({
    method: 'GET',
    url: '/v1/listingamenities',
    data: {
    
    },
    params: {
    
        // Filter parameters (see Filter Parameters section above)
        // name: '<value>' // Filter by name
            }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingAmenities",
	"method": "GET",
	"action": "list",
	"appVersion": "Version",
	"rowCount": "\"Number\"",
	"listingAmenities": [
		{
			"id": "ID",
			"iconUrl": "String",
			"name": "String",
			"isActive": true,
			"recordVersion": "Integer",
			"createdAt": "Date",
			"updatedAt": "Date",
			"_owner": "ID"
		},
		{},
		{}
	],
	"paging": {
		"pageNumber": "Number",
		"pageRowCount": "NUmber",
		"totalRowCount": "Number",
		"pageCount": "Number"
	},
	"filters": [],
	"uiPermissions": []
}

Delete Listinglocaletext API

Delete (soft-delete) a locale text entry for a listing/language.

Rest Route

The deleteListingLocaleText API REST controller can be triggered via the following route:

/v1/listinglocaletexts/:listingLocaleTextId

Rest Request Parameters

The deleteListingLocaleText api has got 1 regular request parameter

Parameter Type Required Population
listingLocaleTextId ID true request.params?.[“listingLocaleTextId”]
listingLocaleTextId : This id paremeter is used to select the required data object that will be deleted

REST Request To access the api you can use the REST controller with the path DELETE /v1/listinglocaletexts/:listingLocaleTextId

  axios({
    method: 'DELETE',
    url: `/v1/listinglocaletexts/${listingLocaleTextId}`,
    data: {
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingLocaleText",
	"method": "DELETE",
	"action": "delete",
	"appVersion": "Version",
	"rowCount": 1,
	"listingLocaleText": {
		"id": "ID",
		"localizedDescription": "Text",
		"localizedTitle": "String",
		"listingId": "ID",
		"languageCode": "String",
		"isActive": false,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

List Listinglocaletexts API

List all localized texts for a given listing (multi-language support).

Rest Route

The listListingLocaleTexts API REST controller can be triggered via the following route:

/v1/listinglocaletexts

Rest Request Parameters

Filter Parameters

The listListingLocaleTexts api supports 2 optional filter parameters for filtering list results:

listingId (ID): Filter by listingId

languageCode (String): Filter by languageCode

REST Request To access the api you can use the REST controller with the path GET /v1/listinglocaletexts

  axios({
    method: 'GET',
    url: '/v1/listinglocaletexts',
    data: {
    
    },
    params: {
    
        // Filter parameters (see Filter Parameters section above)
        // listingId: '<value>' // Filter by listingId
        // languageCode: '<value>' // Filter by languageCode
            }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingLocaleTexts",
	"method": "GET",
	"action": "list",
	"appVersion": "Version",
	"rowCount": "\"Number\"",
	"listingLocaleTexts": [
		{
			"id": "ID",
			"localizedDescription": "Text",
			"localizedTitle": "String",
			"listingId": "ID",
			"languageCode": "String",
			"isActive": true,
			"recordVersion": "Integer",
			"createdAt": "Date",
			"updatedAt": "Date",
			"_owner": "ID"
		},
		{},
		{}
	],
	"paging": {
		"pageNumber": "Number",
		"pageRowCount": "NUmber",
		"totalRowCount": "Number",
		"pageCount": "Number"
	},
	"filters": [],
	"uiPermissions": []
}

Update Listinglocaletext API

Update a localized title/description for a listing/language.

Rest Route

The updateListingLocaleText API REST controller can be triggered via the following route:

/v1/listinglocaletexts/:listingLocaleTextId

Rest Request Parameters

The updateListingLocaleText api has got 3 regular request parameters

Parameter Type Required Population
listingLocaleTextId ID true request.params?.[“listingLocaleTextId”]
localizedDescription Text false request.body?.[“localizedDescription”]
localizedTitle String false request.body?.[“localizedTitle”]
listingLocaleTextId : This id paremeter is used to select the required data object that will be updated
localizedDescription :
localizedTitle :

REST Request To access the api you can use the REST controller with the path PATCH /v1/listinglocaletexts/:listingLocaleTextId

  axios({
    method: 'PATCH',
    url: `/v1/listinglocaletexts/${listingLocaleTextId}`,
    data: {
            localizedDescription:"Text",  
            localizedTitle:"String",  
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingLocaleText",
	"method": "PATCH",
	"action": "update",
	"appVersion": "Version",
	"rowCount": 1,
	"listingLocaleText": {
		"id": "ID",
		"localizedDescription": "Text",
		"localizedTitle": "String",
		"listingId": "ID",
		"languageCode": "String",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Update Listingamenity API

Update an amenity (admin only).

Rest Route

The updateListingAmenity API REST controller can be triggered via the following route:

/v1/listingamenities/:listingAmenityId

Rest Request Parameters

The updateListingAmenity api has got 2 regular request parameters

Parameter Type Required Population
listingAmenityId ID true request.params?.[“listingAmenityId”]
iconUrl String false request.body?.[“iconUrl”]
listingAmenityId : This id paremeter is used to select the required data object that will be updated
iconUrl :

REST Request To access the api you can use the REST controller with the path PATCH /v1/listingamenities/:listingAmenityId

  axios({
    method: 'PATCH',
    url: `/v1/listingamenities/${listingAmenityId}`,
    data: {
            iconUrl:"String",  
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingAmenity",
	"method": "PATCH",
	"action": "update",
	"appVersion": "Version",
	"rowCount": 1,
	"listingAmenity": {
		"id": "ID",
		"iconUrl": "String",
		"name": "String",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Get Listingamenity API

Get information for a listed amenity (public).

Rest Route

The getListingAmenity API REST controller can be triggered via the following route:

/v1/listingamenities/:listingAmenityId

Rest Request Parameters

The getListingAmenity api has got 1 regular request parameter

Parameter Type Required Population
listingAmenityId ID true request.params?.[“listingAmenityId”]
listingAmenityId : This id paremeter is used to query the required data object.

REST Request To access the api you can use the REST controller with the path GET /v1/listingamenities/:listingAmenityId

  axios({
    method: 'GET',
    url: `/v1/listingamenities/${listingAmenityId}`,
    data: {
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingAmenity",
	"method": "GET",
	"action": "get",
	"appVersion": "Version",
	"rowCount": 1,
	"listingAmenity": {
		"id": "ID",
		"iconUrl": "String",
		"name": "String",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Get Listinglocaletext API

Get localized listing title/description (by listing/language).

Rest Route

The getListingLocaleText API REST controller can be triggered via the following route:

/v1/listinglocaletexts/:listingLocaleTextId

Rest Request Parameters

The getListingLocaleText api has got 1 regular request parameter

Parameter Type Required Population
listingLocaleTextId ID true request.params?.[“listingLocaleTextId”]
listingLocaleTextId : This id paremeter is used to query the required data object.

REST Request To access the api you can use the REST controller with the path GET /v1/listinglocaletexts/:listingLocaleTextId

  axios({
    method: 'GET',
    url: `/v1/listinglocaletexts/${listingLocaleTextId}`,
    data: {
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingLocaleText",
	"method": "GET",
	"action": "get",
	"appVersion": "Version",
	"rowCount": 1,
	"listingLocaleText": {
		"id": "ID",
		"localizedDescription": "Text",
		"localizedTitle": "String",
		"listingId": "ID",
		"languageCode": "String",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Create Listingamenity API

Add a new amenity to the master amenity list.

Rest Route

The createListingAmenity API REST controller can be triggered via the following route:

/v1/listingamenities

Rest Request Parameters

The createListingAmenity api has got 2 regular request parameters

Parameter Type Required Population
iconUrl String false request.body?.[“iconUrl”]
name String true request.body?.[“name”]
iconUrl :
name :

REST Request To access the api you can use the REST controller with the path POST /v1/listingamenities

  axios({
    method: 'POST',
    url: '/v1/listingamenities',
    data: {
            iconUrl:"String",  
            name:"String",  
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "201",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingAmenity",
	"method": "POST",
	"action": "create",
	"appVersion": "Version",
	"rowCount": 1,
	"listingAmenity": {
		"id": "ID",
		"iconUrl": "String",
		"name": "String",
		"isActive": true,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

Delete Listingamenity API

Delete (soft-delete) an amenity (admin only).

Rest Route

The deleteListingAmenity API REST controller can be triggered via the following route:

/v1/listingamenities/:listingAmenityId

Rest Request Parameters

The deleteListingAmenity api has got 1 regular request parameter

Parameter Type Required Population
listingAmenityId ID true request.params?.[“listingAmenityId”]
listingAmenityId : This id paremeter is used to select the required data object that will be deleted

REST Request To access the api you can use the REST controller with the path DELETE /v1/listingamenities/:listingAmenityId

  axios({
    method: 'DELETE',
    url: `/v1/listingamenities/${listingAmenityId}`,
    data: {
    
    },
    params: {
    
        }
  });

REST Response

{
	"status": "OK",
	"statusCode": "200",
	"elapsedMs": 126,
	"ssoTime": 120,
	"source": "db",
	"cacheKey": "hexCode",
	"userId": "ID",
	"sessionId": "ID",
	"requestId": "ID",
	"dataName": "listingAmenity",
	"method": "DELETE",
	"action": "delete",
	"appVersion": "Version",
	"rowCount": 1,
	"listingAmenity": {
		"id": "ID",
		"iconUrl": "String",
		"name": "String",
		"isActive": false,
		"recordVersion": "Integer",
		"createdAt": "Date",
		"updatedAt": "Date",
		"_owner": "ID"
	}
}

After this prompt, the user may give you new instructions to update the output of this prompt or provide subsequent prompts about the project.