The hoteliga API

Airbnb

Manage Airbnb accounts, listings and reservations.

Resources

Resource Description
Connect an account Authorize hoteliga API to manage an account.
GET /v1/ChannelManager/Airbnb/Accounts Get information for all authorized accounts.
GET /v1/ChannelManager/Airbnb/Account/{id} Get information for an authorized account.
DELETE /v1/ChannelManager/Airbnb/Account/{id} Unauthorize an account.
GET /v1/ChannelManager/Airbnb/Listings Get information for listings of all accounts.
GET /v1/ChannelManager/Airbnb/Listings/{accountId} Get information for all listings of an account.
GET /v1/ChannelManager/Airbnb/Listing/{accountId}/{listingId} Get the information of listing.
PUT /v1/ChannelManager/Airbnb/Listing Update properties listing.
GET /v1/ChannelManager/Airbnb/AvailabilityRules/{accountId}/{listingId} Get the availability settings of a listing.
PUT /v1/ChannelManager/Airbnb/AvailabilityRules Update the selected availability rules.
POST /v1/ChannelManager/Airbnb/Inventory Get the inventory, the prices and the restrictions of a listing for a date range.
PUT /v1/ChannelManager/Airbnb/Inventory Change the inventory and/or the prices and/or the restrictions of a listing.
GET /v1/ChannelManager/Airbnb/PricingSettings/{accountId}/{listingId} Get the pricing settings of a listing.
PUT /v1/ChannelManager/Airbnb/PricingSettings Update the selected pricing settings.
GET v1/ChannelManager/Airbnb/RuleSets/{accountId} Get the rule-sets of an account.
POST v1/ChannelManager/Airbnb/RuleSet Create a rule-set for an account.
PUT v1/ChannelManager/Airbnb/RuleSet Update a rule-set of an account.
DELETE v1/ChannelManager/Airbnb/RuleSet/{accountId}/{ruleSetId} Delete a rule-set.
GET v1/ChannelManager/Airbnb/RuleSetTimeline/{accountId}/{listingId} Get the applied rule-sets to a listing.
POST v1/ChannelManager/Airbnb/RuleSetTimeline Apply a rule-sets to a listing.
PUT v1/ChannelManager/Airbnb/RuleSetTimeline Remove applied rule-sets to a listing for a date range.
GET v1/ChannelManager/Airbnb/Reservation/{accountId}/{confirmationCode} Get the information of a reservation.
GET v1/ChannelManager/Airbnb/Reservations/{accountId}/{listingId} Get the future reservations of a listing.
Webhooks Notifications about asynchronous events.

Connect an account

Authorize hoteliga API to manage a host account.

hoteliga API needs to be authorized in order be able to manage an account, its listings and its reservations. For this purpose you will be provided with instructions on how to do that.

GET /v1/ChannelManager/Airbnb/Accounts

Get information for all authorized accounts.

Response

The result is an array of Account objects.

Response Object properties
Account Object
Name Type Description
id string Account ID
email string Email used in account
firstName string Host's first name
lastName string Host's last name
phone string Host's phone number
pictureUrl string The URL of the host's profile photo, if it exists
pictureUrlLarge string The URL of a different version of the host's profile photo, if it exists
error string Description of error that occured

Example Response

<?xml version="1.0" ?>
<Accounts>
    <Account>
        <Id>123456</Id>
        <Email>test@htest.com</Id>
        <FirstName>Dimitris</Id>
        <LastName>Papadopoulos</Id>
        <PictureUrl>https://a0.muscache.com//user/6ff3b </PictureUrl>
        <PictureUrlLarge>https://a0.muscache.com//user/6ff3b </PictureUrlLarge>
    </Account>
</Accounts>
            
[
    {
        "id": "123456",
        "email": "test@test.com",
        "firstName": "Dimitris",
        "lastName": "Papadopoulos",
        "phone": null,
        "pictureUrl": "https://a0.muscache.com//user/6ff3b",
        "pictureUrlLarge": "https://a0.muscache.com//user/6ff3b",
        "error": null
    },...
]
            

GET /v1/ChannelManager/Airbnb/Account/{id}

Get information for an authorized account.

Response

The result is an Account object.

Example Response

<?xml version="1.0" ?>
<Account>
    <Id>123456</Id>
    <Email>test@test.com</Id>
    <FirstName>Dimitris</Id>
    <LastName>Papadopoulos</Id>
    <PictureUrl>https://a0.muscache.com//user/6ff3b </PictureUrl>
    <PictureUrlLarge>https://a0.muscache.com//user/6ff3b </PictureUrlLarge>
</Account>
            
{
    "id": "123456",
    "email": "test@test.com",
    "firstName": "Dimitris",
    "lastName": "Papadopoulos",
    "phone": null,
    "pictureUrl": "https://a0.muscache.com//user/6ff3b",
    "pictureUrlLarge": "https://a0.muscache.com//user/6ff3b",
    "error": null
}            
            

DELETE /v1/ChannelManager/Airbnb/Account/{id}

Unauthorize an account.

Response

Empty response.

GET /v1/ChannelManager/Airbnb/Listings

Get information for listings of all accounts.

Response

The result is an array of Listing objects.

Response Object properties
Listing Object
Name Type Description
accountId string Account ID - Airbnb assigned
listingId string Listing ID - Airbnb assigned
name string Listing's name
propertyGroup string Generalized group of the property types
propertyCategory string Property type
roomCategory string Generalized group of the property types
bedrooms int Number of bedrooms
bathrooms decimal Number of bathrooms
beds int? Number of beds
checkInOption obj How guests will check in
approvalStatus obj Listing approval status.
hasAvailability bool Whether the listing is listed or not
permitOrTaxId string The local permit or tax ID
apt string Apartment/Unit
street string Street address
city string City
state string State, territory, district, or province
zipCode string Zip or postal code
countryCode string Listing's two-letter country code, capitalized. Format: ISO 3166-1 alpha-2
latitude string Latitude
longitude string Longitude
userDefinedLocation bool Set this field to true if you are providing lat and lng coordinates
directions string Directions are only provided to confirmed guests
personCapacity int Maximum number of guests that can be accommodated
connected string The synchronization category the host has chosen for this listing. One of "Limited", "Full", "Undecided" or "Disconnected"
bathroomShared bool? Set this field to true if bathroom is shared
bathroomSharedWithCategory [string]? Who is the bathroom shared with. One or more from "host", "family_friends_roommates", "other_guests". Ignore for "entire_home" listings
commonSpacesShared bool? Set this field to true if common spaces are shared
commonSpacesSharedWithCategory [string]? Who is the common spaces shared with. One or more from "host", "family_friends_roommates", "other_guests". Ignore for "entire_home" listings
totalInventoryCount int? This parameter only applies to listings using Room Type inventory. The total amount of rooms of a certain room type.
propertyExternalId string This parameter only applies to listings using Room Type inventory. A string indicating which property this listing belongs to
tier string The tier of a listing. One of "lux", "marketplace" or "plus"
displayExactLocationToGuest bool Display exact location on map to guest or an approximate circle. Default is false, while guest with confirmed reservation will always see exact location
Check-In Option Object
Name Type Description
category string The type of check in the host offers. Must one of "doorman_entry", "lockbox", "smartlock", "keypad", "host_checkin", "other_checkin".
instruction string The instructions for guests on how to check in. Only shared with confirmed guests.
ApprovalStatus Object
Name Type Description
statusCategory string Listing status. One of "new", "ready for review", "approved", or "rejected"
notes string Notes on the decision.

Example Response

<?xml version="1.0"?>
<Listing>
    <AccountId&123546</AccountId>
    <ListingId&456789</ListingId>
    <Name>Apartment test Marousi</Name>
    <PropertyGroup>apartments</PropertyGroup>
    <PropertyCategory>entire_home</PropertyCategory>
    <RoomCategory>entire_home</RoomCategory>
    <Bedrooms>2</Bedrooms>
    <Bathrooms>1.0</Bathrooms>
    <Beds>2</Beds>
    <CheckInOption />
    <ApprovalStatus>
        <StatusCategory>approved</StatusCategory>
    </ApprovalStatus>
    <HasAvailability>false</HasAvailability>
    <Apt />
    <Street>Leoforos Kifisias 15</Street>
    <City>Athina</City>
    <ZipCode>115 24</ZipCode>
    <CountryCode>GR</CountryCode>
    <Latitude>37.998203</Latitude>
    <Longitude>23.768972</Longitude>
    <UserDefinedLocation>false</UserDefinedLocation>
    <Directions />
    <PersonCapacity>4</PersonCapacity>
    <Connected>Limited</Connected>
    <TotalInventoryCount>4</TotalInventoryCount>
    <PropertyExternalId>Test name</PropertyExternalId>
    <Tier>marketplace</Tier>
    <DisplayExactLocationToGuest>false</DisplayExactLocationToGuest>
</Listing>
    ...
<Listings>
            
[
    {
    "accountId": "123456",
    "listingId": "456789",
    "name": "Apartment test Marousi",
    "propertyGroup": "apartments",
    "propertyCategory": "entire_home",
    "roomCategory": "entire_home",
    "bedrooms": 2,
    "bathrooms": 1.0,
    "beds": 2,
    "checkInOption": {
        "category": null,
        "instruction": null
    },
    "approvalStatus": {
        "statusCategory": "approved",
        "notes": null
    },
    "hasAvailability": false,
    "permitOrTaxId": null,
    "apt": "",
    "street": "Leoforos Kifisias 15",
    "city": "Athina",
    "state": null,
    "zipCode": "115 24",
    "countryCode": "GR",
    "latitude": "37.998203",
    "longitude": "23.768972",
    "userDefinedLocation": false,
    "directions": "",
    "personCapacity": 4,
    "connected": "Limited",
    "bathroomSharedWithCategory": null,
    "commonSpacesSharedWithCategory": null,
    "totalInventoryCount": 4,
    "propertyExternalId": "Test name",
    "tier": "marketplace",
    "displayExactLocationToGuest": false
},...
]
            

GET /v1/ChannelManager/Airbnb/Listings/{accountId}

Get information for all listings of an account.

Response

The result is an array of Listing objects.

Example Response

Same as here.

GET /v1/ChannelManager/Airbnb/Listing/{accountId}/{listingId}

Get the information of listing.

Response

The result is a Listing object.

Example Response

<?xml version="1.0"?>
<Listing>
    <AccountId>299211034</AccountId>
    <ListingId>39237201</ListingId>
    <Name>Apartment test Marousi</Name>
    <PropertyGroup>apartments</PropertyGroup>
    <PropertyCategory>entire_home</PropertyCategory>
    <RoomCategory>entire_home</RoomCategory>
    <Bedrooms>2</Bedrooms>
    <Bathrooms>1.0</Bathrooms>
    <Beds>2</Beds>
    <CheckInOption />
    <ApprovalStatus>
        <StatusCategory>approved</StatusCategory>
    </ApprovalStatus>
    <HasAvailability>false</HasAvailability>
    <Apt />
    <Street>Leoforos Kifisias 15</Street>
    <City>Athina</City>
    <ZipCode>115 24</ZipCode>
    <CountryCode>GR</CountryCode>
    <Latitude>37.998203</Latitude>
    <Longitude>23.768972</Longitude>
    <UserDefinedLocation>false</UserDefinedLocation>
    <Directions />
    <PersonCapacity>4</PersonCapacity>
    <Currency>EUR</Currency>
    <Price>11</Price>
    <Connected>Limited</Connected>
    <TotalInventoryCount>4</TotalInventoryCount>
    <PropertyExternalId>Test name</PropertyExternalId>
    <Tier>marketplace</Tier>
    <DisplayExactLocationToGuest>false</DisplayExactLocationToGuest>
</Listing>
            
{
    "accountId": "123456",
    "listingId": "456789",
    "name": "Apartment test Marousi",
    "propertyGroup": "apartments",
    "propertyCategory": "entire_home",
    "roomCategory": "entire_home",
    "bedrooms": 2,
    "bathrooms": 1.0,
    "beds": 2,
    "checkInOption": {
        "category": null,
        "instruction": null
    },
    "approvalStatus": {
        "statusCategory": "approved",
        "notes": null
    },
    "hasAvailability": false,
    "permitOrTaxId": null,
    "apt": "",
    "street": "Leoforos Kifisias 15",
    "city": "Athina",
    "state": null,
    "zipCode": "115 24",
    "countryCode": "GR",
    "latitude": "37.998203",
    "longitude": "23.768972",
    "userDefinedLocation": false,
    "directions": "",
    "personCapacity": 4,
    "currency": "EUR",
    "price": "11",
    "connected": "Limited",
    "bathroomSharedWithCategory": null,
    "commonSpacesSharedWithCategory": null,
    "totalInventoryCount": 4,
    "propertyExternalId": "Test name",
    "tier": "marketplace",
    "displayExactLocationToGuest": false
}
            

PUT /v1/ChannelManager/Airbnb/Listing

Update properties of listing.

Request parameters

Name Type Value
accountId string Account ID of listing to be updated
listingId string ID of listing to be updated
action string Update to be made.Please review the table below.
totalInventoryCount int? Update the total amount of rooms of a certain room type. Valid value: > 0.
propertyExternalId int? Only used with totalInventoryCount. A string indicating which property the current listing belongs to.
hasAvailability bool? While this field is false, the listing will not appear on Airbnb. Do not set it to false until after the listing is published for the first time to avoid re-setting the review process.

Action valid values

Value Description
connect Set listing to be managed through hoteliga API. This request triggers a validation check. If the listing passes the validation, it will be published. In rare cases, the "approvalStatus.statusCategory" will remain "ready_for_review" until a manual review is successfully completed. If the publish fails, read the "approvalStatus.notes", address the rejection reason(s), and re-send the request.
disconnect Set listing NOT to be managed through the hoteliga API.
update Update one or more of the following: "totalInventoryCount", "propertyExternalId", "hasAvailability"

Example Request

<?xml version="1.0"?>
<Listing>
    <AccountId>29924</AccountId>
    <ListingId>3928</ListingId>
    <Action>disconnect</Action>
</Listing>
            
{
    "accountId":"29924",
    "listingId":"3928",
    "action": "disconnect"
}
            

Response

The result is the Listing object.

Example Response

Same as here.

GET /v1/ChannelManager/Airbnb/AvailabilityRules/{accountId}/{listingId}

Get the availability rules of a listing.

Response

The result is an Availability Rule object.

Response Object properties
Availability Rule Object
Name Type Value
defaultMinNights int The default minimum night requirement for reservations.
defaultMaxNights int The default maximum night requirement for reservations.
minHoursAhead int The number of hours required for minimum notice before booking. Valid values are 0-24, 48, 72, and 168
allowRequestToBook int Bookings that do not meet the minimum notice requirement can become requests to book instead. Use -1 or 0 to prohibit requests and 1 to allow requests. The default value is -1; requests are not allowed
maxDaysNotice int Defines the maximum lead time allowed before the reservation date. Supported values are 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, and 365 days. If this setting is used, all dates after the specified value are unavailable. You can also use -1 to set all days within the next 2 years to available, and 0 to set all days to unavailable
preparationTime int Defines the time between reservations when bookings are not permitted. Supported values are 0, 1, and 2 days
checkInDays [int] Day of week guests are allowed to check in. Value in range 0-6, representing Sunday - Saturday.If unspecified, a reservation may start on any day of the week
checkOutDays [int] Day of week guests are allowed to check out. Value in range 0-6, representing Sunday - Saturday.If unspecified, a reservation may end on any day of the week
minNightsForCheckIn [obj] Defines a minimum number of nights required that depends on the day the reservation starts
MinNightsForCheckIn Object
Name Type Description
dayOfWeek int Day of week guests are allowed to check in. Value in range 0-6, represents Sun-Sat
minNights int Minimum number of nights if the trip starts on this day

Example Response

<?xml version="1.0"?>
<AvailabilityRule>
    <DefaultMinNights>1</DefaultMinNights>
    <DefaultMaxNights>8</DefaultMaxNights>
    <MinHoursAhead>3</MinHoursAhead>
    <AllowRequestToBook>1</AllowRequestToBook>
    <MaxDaysNotice>30</MaxDaysNotice>
    <PreparationTime>0</PreparationTime>
    <CheckInDays>
        <DayOfWeek>1</DayOfWeek>
        <DayOfWeek>2</DayOfWeek>
    </CheckInDays>
    <CheckOutDays>
        <DayOfWeek>2</DayOfWeek>
    </CheckOutDays>
    <MinNightsForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>0</DayOfWeek>
            <MinNights>0</MinNights>
        </MinNightForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>1</DayOfWeek>
            <MinNights>1</MinNights>
        </MinNightForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>2</DayOfWeek>
            <MinNights>0</MinNights>
        </MinNightForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>3</DayOfWeek>
            <MinNights>0</MinNights>
        </MinNightForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>4</DayOfWeek>
            <MinNights>0</MinNights>
        </MinNightForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>5</DayOfWeek>
            <MinNights>0</MinNights>
        </MinNightForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>6</DayOfWeek>
            <MinNights>0</MinNights>
        </MinNightForCheckIn>
    </MinNightsForCheckIn>
</AvailabilityRule>
            
{
    "defaultMinNights": 1,
    "defaultMaxNights": 8,
    "minHoursAhead": 3,
    "allowRequestToBook": 1,
    "maxDaysNotice": 30,
    "preparationTime": 0,
    "checkInDays": [
        1,
        2
    ],
    "checkOutDays": [
        2
    ],
    "minNightsForCheckIn": [
        {
            "dayOfWeek": 0,
            "minNights": 0
        },
        {
            "dayOfWeek": 1,
            "minNights": 1
        },
        {
            "dayOfWeek": 2,
            "minNights": 0
        },
        {
            "dayOfWeek": 3,
            "minNights": 0
        },
        {
            "dayOfWeek": 4,
            "minNights": 0
        },
        {
            "dayOfWeek": 5,
            "minNights": 0
        },
        {
            "dayOfWeek": 6,
            "minNights": 0
        }
    ]
}
            

PUT /v1/ChannelManager/Airbnb/AvailabilityRules

Update the selected availability rules.

Request parameters

Name Type Value
accountId string Account ID of listing to be updated
listingId string ID of listing to be updated
defaultMinNights int? The default minimum night requirement for reservations.
defaultMaxNights int? The default maximum night requirement for reservations.
minHoursAhead int? The number of hours required for minimum notice before booking. Valid values are 0-24, 48, 72, and 168
allowRequestToBook int? Bookings that do not meet the minimum notice requirement can become requests to book instead. Use -1 or 0 to prohibit requests and 1 to allow requests. The default value is -1; requests are not allowed
maxDaysNotice int? Defines the maximum lead time allowed before the reservation date. Supported values are 30, 60, 90, 120, 150, 180, 210, 240, 270, 300, 330, and 365 days. If this setting is used, all dates after the specified value are unavailable. You can also use -1 to set all days within the next 2 years to available, and 0 to set all days to unavailable
preparationTime int? Defines the time between reservations when bookings are not permitted. Supported values are 0, 1, and 2 days
checkInDays [int]? Day of week guests are allowed to check in. Value in range 0-6, representing Sunday - Saturday.If unspecified, a reservation may start on any day of the week
checkOutDays [int]? Day of week guests are allowed to check out. Value in range 0-6, representing Sunday - Saturday.If unspecified, a reservation may end on any day of the week
minNightsForCheckIn [obj]? Defines a minimum number of nights required that depends on the day the reservation starts

Example Request

<?xml version="1.0"?>
<AvailabilityRule>
    <AccountId>29976</AccountId>
    <ListingId>4095</ListingId>
    <MinHoursAhead>3</Hours>
    <AllowRequestToBook>1</AllowRequestToBook>
    <DefaultMinNights>2</DefaultMinNights>
    <CheckInDays>
        <DayOfWeek>1</DayOfWeek>
        <DayOfWeek>2</DayOfWeek>
    </CheckInDays>
    <MinNightsForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>1</DayOfWeek>
            <MinNights>3</MinNights>
        </MinNightForCheckIn>
        <MinNightForCheckIn>
            <DayOfWeek>2</DayOfWeek>
            <MinNights>2</MinNights>
        </MinNightForCheckIn>
    </MinNightsForCheckIn>
</AvailabilityRule>
            
{
    "accountId": "123456",
    "listingId": "456789",
    "defaultMaxNights": 8,
    "minNightsForCheckIn": [
        {
            "dayOfWeek": 1,
            "minNights": 1
        }
    ]
}
            

Response

The result is Ok(200 status code).

POST /v1/ChannelManager/Airbnb/Inventory

Get the inventory, the prices and the restrictions of a listing for a date range.

Request parameters

Name Type Value
accountId string Account ID of listing
listingId string ID of listing
dateFrom date (YYYY-MM-DD) Starting date of search
dateTo date (YYYY-MM-DD) Ending date of search

Example Request

<?xml version="1.0"?>
<Inventory>
    <AccountId>2976</AccountId>
    <ListingId>405</ListingId>
    <DateFrom>2020-10-20</DateFrom>
    <DateTo>2020-10-21</DateTo>
</Inventory>
            
{
    "accountId":"2976",
    "listingId":"405",
    "dateFrom": "2020-10-20",
    "dateTo": "2020-10-21"
}
            

Response

The result is an array of Inventory objects.

Invetory Object
Name Type Description
date string Date in ISO 8601 YYYY-MM-DD format.
dailyPrice decimal? Nightly price for this day. If a custom daily price is not specified, the default daily price will be returned.
availability string Either "available", "unavailable" or "default".
availabilityType string A detailed breakdown of the availability field.
availabilitySubType string A detailed breakdown of the availabilityType field.
availableCount int? This parameter only applies to listings using Room Type inventory. The total number of a specific room type. Booking a room does not remove it from this total.
minNights int Minimum length of stay.
maxNights int Maximum length of stay.
closedToArrival bool If true, the guest cannot check in on this day.
closedToDeparture bool If true, the guest cannot check out on this day.
notes string Optional notes.

Example Response

<?xml version="1.0"?>
<InventoryList>
    <Inventory>
        <Date>2020-10-20</Date>
        <DailyPrice>52.0</DailyPrice>
        <Availability>available</Availability>
        <AvailabilityType>available</AvailabilityType>
        <AvailableCount>4</AvailableCount>
        <MinNights>2</MinNights>
        <MaxNights>6</MaxNights>
        <ClosedToArrival>false</ClosedToArrival>
        <ClosedToDeparture>false</ClosedToDeparture>
    </Inventory>
    <Inventory>
        <Date>2020-10-21</Date>
        <DailyPrice>52.0</DailyPrice>
        <Availability>available</Availability>
        <AvailabilityType>available</AvailabilityType>
        <AvailableCount>4</AvailableCount>
        <MinNights>1</MinNights>
        <MaxNights>6</MaxNights>
        <ClosedToArrival>true</ClosedToArrival>
        <ClosedToDeparture>true</ClosedToDeparture>
    </Inventory>
</InventoryList>
            
[
    {
        "date": "2020-10-20",
        "dailyPrice": 52.0,
        "availability": "available",
        "availabilityType": "available",
        "availabilitySubType": null,
        "availableCount": 4,
        "minNights": 2,
        "maxNights": 6,
        "closedToArrival": false,
        "closedToDeparture": false,
        "notes": null
    },
    {
        "date": "2020-10-21",
        "dailyPrice": 52.0,
        "availability": "available",
        "availabilityType": "available",
        "availabilitySubType": null,
        "availableCount": 4,
        "minNights": 1,
        "maxNights": 6,
        "closedToArrival": true,
        "closedToDeparture": true,
        "notes": null
    }
]
            

PUT /v1/ChannelManager/Airbnb/Inventory

Update the inventory and/or the prices and/or the restrictions of a listing.

Request parameters

Name Type Value
accountId string Account ID of listing
listingId string ID of listing
operations [obj] Array of operations requests

Operation request

Name Type Value
dateFrom date (YYYY-MM-DD) Starting date of search
dateTo date (YYYY-MM-DD) Ending date of search
setAvailable bool Set to true for updating the availability. Default value is false.
available string Either "available", "unavailable" or "default".
countEligible bool Applies for listings using Room Type inventory. Set this to true in order to update the "count" field.
count int The total number of a specific room type. Booking a room does not remove it from this total.
setPrice bool Set to true for updating prices. Default value is false.
dailyPrice int Nightly price for this day.
setRestrictions bool Set to true for updating restrictions. Default value is false.
minNights int? Minimum length of stay. Use null to unset this value.
maxNights int? Maximum length of stay. Use null to unset this value.
closedToArrival bool? If true, the guest cannot check in on this day.
closedToDeparture bool? If true, the guest cannot check out on this day.

Example Request

<?xml version="1.0"?>
<Inventory>
    <AccountId>29976</AccountId>
    <ListingId>405</ListingId>
    <Operations>
        <Operation>
            <DateFrom>2020-10-20</DateFrom>
            <DateTo>2020-10-21</DateTo>
            <Available>unavailable</Available>
            <Count>3</Count>
            <SetAvailable>true</SetAvailable>
        </Operation>
        <Operation>
            <DateFrom>2020-10-22</DateFrom>
            <DateTo>2020-10-23</DateTo>
            <DailyPrice>30</DailyPrice>
            <SetPrice>true</SetPrice>
            <SetRestrictions>true</SetRestrictions>
            <MaxNights>15</MaxNights>
            <ClosedToDeparture>true</ClosedToDeparture>
        </Operation>
    </Operations>
</Inventory>
            
{
    "accountId":"29976",
    "listingId":"405",
    "operations": [
        {
            "dateFrom": "2020-10-20",
            "dateTo": "2020-10-21",
            "available": "available",
            "count": 4,
            "setAvailable": true
        },
        {
            "dateFrom": "2020-10-22",
            "dateTo": "2020-10-23",
            "available": "unavailable",
            "dailyPrice": 40,
            "setPrice":true,
            "setRestrictions": true,
            "maxNights": 15,
            "closedToDeparture": true
        }
    ]
}
            

Response

The result is an array of Inventory objects.

Example Response

Same as here.

GET /v1/ChannelManager/Airbnb/PricingSettings/{accountId}/{listingId}

Get the pricing settings of a listing.

Response

The result is a PricingSetting object.

PricingSetting Object
Name Type Description
currency string Currency used for listing prices. Do not include any other pricing fields when updating the currency; send this request separately to ensure proper processing order. Only supported strings are accepted. Format: ISO 4217
defaultDailyPrice int? The default daily price for the listing. Must be between 10 and 25,000 USD
weekendPrice int? The default price to apply for the weekend days. Must be between 10 and 25,000 USD
securityDeposit int? A security deposit held by Airbnb and refunded to the guest unless the host makes a claim within 48 hours after guest checks out. Must be between 100 and 5000 USD
cleaningFee int? Cleaning fee, denoted in currency. Maximum cleaning fee is (600 USD + 25% nightly price). Minimum cleaning fee is 5 USD. To remove a cleaning fee, set the value to 0
guestsIncluded int? Number of guests permitted without any additional fees. Default is 1
pricePerExtraPerson int? Amount added to the listing's nightly price for each guest beyond the number specified in "guestsIncluded". Minimum is 5 USD
monthlyPriceFactor decimal? If set, multiply the price by this factor for trips of 28 days or more. Range from 0 to 1. For example, 0.7 means 30% off. Must be less than weeklyPriceFactor
weeklyPriceFactor decimal? If set, multiply the price by this factor for trips between 7 and 28 days. Range from 0 to 1. For example, 0.7 means 30% off. Must be greater than monthlyPriceFactor
standardFees [obj] Array of standard fees to be applied to the listing
eligibleForPassThroughTaxes bool True if this listing is eligible for collecting pass through occupancy taxes
passThroughTaxes [obj] Array of pass through occupancy taxes to be applied to the listing
defaultPricingRules [obj] Array of default pricing rules to be applied to the listing.
StandardFees Object
Name Type Description
feeType string The type of fee being charged. Some fees are a flat rate, some are a percentage, and some are consumption fees charged each time a unit is consumed
amountType string Type of fee amount to be charged. "percent" or "flat"
amountFlat int Amount to be charged. If amountType is "percent" then this is 0
amountPercent decimal Amount to be charged. If amountType is "flat" then this is 0
offline bool If true, this is an offline fee that will be charged when the guest checks in or out.Otherwise, this fee will be collected at time of booking
feeUnitType string This field only applies to fees charged each time a measured unit is consumed: electricity, water, heat, air conditioning, or other utilities.This field defines the unit being measured. For these fee types the amountType must be "flat"
Standard Fee Types
feeType amountType feeUnitType
PASS_THROUGH_RESORT_FEE percent or flat N/A
PASS_THROUGH_MANAGEMENT_FEE percent or flat N/A
PASS_THROUGH_COMMUNITY_FEE percent or flat N/A
PASS_THROUGH_LINEN_FEE flat N/A
PASS_THROUGH_SECURITY_DEPOSIT flat N/A
PASS_THROUGH_CLEANING_FEE flat N/A
PASS_THROUGH_ELECTRICITY_FEE flat PER_KILOWATT_HOUR
PASS_THROUGH_WATER_FEE flat PER_LITER or PER_CUBIC_METER
PASS_THROUGH_HEATING_FEE flat PER_KILOWATT_HOUR
PASS_THROUGH_AIR_CONDITIONING_FEE flat PER_KILOWATT_HOUR or PER_LITER or PER_CUBIC_METER
PASS_THROUGH_UTILITY_FEE flat PER_KILOWATT_HOUR or PER_LITER or PER_CUBIC_METER
PassThroughTaxes Object
Name Type Description
taxType string Tax type. Valid values: pass_through_hotel_tax, pass_through_lodging_tax, pass_through_room_tax, pass_through_tourist_tax, pass_through_transient_occupancy_tax, pass_through_sales_tax, pass_through_vat_gst,pass_through_tourism_assessment_fee
amountType string Type of amount to be charged. "percent_per_reservation" or "flat_per_guest" or "flat_per_guest_per_night"
amount decimal If amount_type is "percent_per_reservation", this is a float between 0 and 100 (inclusive). If amount_type is "flat_per_guest" , "flat_per_night", or "flat_per_guest_per_night", this is a float in the listing currency
businessTaxId string The business tax id identifies the business as a taxpayer. For example, in the US, it would be the EIN
registrationId string Represents the ID number that a host receives from a jurisdiction when it registers to collect, remit, and report the applicable occupancy tax, and demonstrates that the host likely will do so
attestation bool A confirmation that the tax information is true and the host accepts responsibility to remit the tax given to them as a business
longTermStayExemption int? A length of stay (in number of days). Pass through taxes do not apply to stays longer than this value. The minimum value for this field is 13 days. If set to null or 0, no exemption applies and taxes are applied to all bookings regardless of length
DefaultPricingRules Object
Name Type Description
ruleType string STAYED_AT_LEAST_X_DAYS: Long-term stay adjustment; BOOKED_WITHIN_AT_MOST_X_DAYS: Last-minute discount; BOOKED_BEYOND_AT_LEAST_X_DAYS: Booking ahead discount. SEASONAL_ADJUSTMENT is not applicable to listings as default pricing rules, it can only be used in seasonal rule sets.
priceChange float Must be a negative value, meaning price decrease.
priceChangeType string Use PERCENT only. The "ABSOLUTE" type has been deprecated.
ThresholdOne integer Specifies the X value in the X_DAYS rules.Must be a multiple of 28 or 30 for "BOOKED_BEYOND_AT_LEAST_X_DAYS". Must be equal to or less than 28 for "BOOKED_WITHIN_AT_MOST_X_DAYS". Cannot be negative.

Example Response

<?xml version="1.0"?>
<PricingSetting>
    <Currency>EUR</Currency>
    <DefaultDailyPrice>11</DefaultDailyPrice>
    <GuestsIncluded>1</GuestsIncluded>
    <PricePerExtraPerson>0</PricePerExtraPerson>
    <EligibleForPassThroughTaxes>true</EligibleForPassThroughTaxes>
    <StandardFees>
        <StandardFee>
            <FeeType>PASS_THROUGH_MANAGEMENT_FEE</FeeType>
            <AmountType>percent</AmountType>
            <AmountFlat>0</AmountFlat>
            <AmountPercent>15.5</AmountPercent>
            <Offline>false</Offline>
        </StandardFee>
        <StandardFee>
            <FeeType>PASS_THROUGH_RESORT_FEE</FeeType>
            <AmountType>flat</AmountType>
            <AmountFlat>12</AmountFlat>
            <AmountPercent>0</AmountPercent>
            <Offline>false</Offline>
        </StandardFee>
    </StandardFees>
</PricingSetting>
            
{
    "currency": "EUR",
    "defaultDailyPrice": 11,
    "guestsIncluded": 1,
    "pricePerExtraPerson": 0,
    "eligibleForPassThroughTaxes": true,
    "standardFees": [
        {
            "feeType": "PASS_THROUGH_MANAGEMENT_FEE",
            "amountType": "percent",
            "amountFlat": 0,
            "amountPercent": 15.5,
            "offline": false,
            "feeUnitType": null
        },
        {
            "feeType": "PASS_THROUGH_RESORT_FEE",
            "amountType": "flat",
            "amountFlat": 12,
            "amountPercent": 0.0,
            "offline": false,
            "feeUnitType": null
        }
    ],
    "passThroughTaxes": null
}
            

PUT /v1/ChannelManager/Airbnb/PricingSettings

Update the selected pricing settings.

Request parameters

Name Type Value
accountId string Account ID of listing to be updated
listingId string ID of listing to be updated
pricingSetting obj Selected object properties to be updated

Example Request

<?xml version="1.0"?>
<PricingSettings>
    <AccountId>299413876</AccountId>
    <ListingId>40362395</ListingId>
    <PricingSetting>
        <DefaultDailyPrice>22</DefaultDailyPrice>
        <StandardFees>
            <StandardFee>
                <FeeType>PASS_THROUGH_MANAGEMENT_FEE</FeeType>
                <AmountType>percent</AmountType>
                <AmountFlat>0</AmountFlat>
                <AmountPercent>16.6</AmountPercent>
                <Offline>false</Offline>
            </StandardFee>
            <StandardFee>
                <FeeType>PASS_THROUGH_RESORT_FEE</FeeType>
                <AmountType>flat</AmountType>
                <AmountFlat>12</AmountFlat>
                <AmountPercent>0</AmountPercent>
                <Offline>false</Offline>
            </StandardFee>
        </StandardFees>
        <DefaultPricingRules>
            <DefaultPricingRule>
                <RuleType>BOOKED_BEYOND_AT_LEAST_X_DAYS</RuleType>
                <PriceChange>-3</PriceChange>
                <PriceChangeType>PERCENT</PriceChangeType>
            </DefaultPricingRule>
        </DefaultPricingRules>
        <PricePerExtraPerson>10</PricePerExtraPerson>
    </PricingSetting>
</PricingSettings>
            
{
    "accountId": "299413876",
    "listingId": "40269846",
    "pricingSetting": {
        "defaultDailyPrice": 12,
        "guestsIncluded": 2,
        "pricePerExtraPerson": 0,
        "standardFees": [
            {
                "feeType": "PASS_THROUGH_MANAGEMENT_FEE",
                "amountType": "percent",
                "amountFlat": 0,
                "amountPercent": 15.5,
                "offline": false,
                "feeUnitType": null
            },
            {
                "feeType": "PASS_THROUGH_RESORT_FEE",
                "amountType": "flat",
                "amountFlat": 12,
                "amountPercent": 0,
                "offline": false,
                "feeUnitType": null
            }
        ],
        "passThroughTaxes": [],
        "defaultPricingRules": [
            {
                "ruleType": "BOOKED_BEYOND_AT_LEAST_X_DAYS",
                "priceChange": -3,
                "priceChangeType": "PERCENT"
            }
        ]
    }
}
            

Response

The result is Ok(200 status code).

GET v1/ChannelManager/Airbnb/RuleSets/{accountId}

Get the rule-sets of an account.

Response

The result is an array of Rule-Set objects.

Response Object properties
Rule-Set Object
Name Type Description
id string The unique identifier of the rule-set.
title string Title to show on the UI Airbnb calendar for this rule-set.
color int Color to show on the UI Airbnb calendar for the rule-set. Value from 0 to 8.
createdByUserId string User ID of the person who created this rule-set.
ruleSetPricingRules [obj]? Array of rule-set's pricing rule objects.
ruleSetAvailabilityRule obj Rule-set's availability rule.
Rule-Set Pricing Rule Object
Name Type Description
ruleType string One of the SEASONAL_ADJUSTMENT, STAYED_AT_LEAST_X_DAYS, BOOKED_WITHIN_AT_MOST_X_DAYS, BOOKED_BEYOND_AT_LEAST_X_DAYS
priceChange int If ruleType is SEASONAL_ADJUSTMENT, this field can be either positive or negative. Otherwise, priceChange must be a negative value, meaning price decrease.
priceChangeType string Either PERCENT or ABSOLUTE (fixed currency amount).
thresholdOne int? Not used for seasonal adjustments. Specifies the X value in the X_DAYS rules. Must be a multiple of 28 or 30 for "BOOKED_BEYOND_AT_LEAST_X_DAYS". Must be equal to or less than 28 for "BOOKED_WITHIN_AT_MOST_X_DAYS". Cannot be negative.
Rule-Set Availability Rule Object
Name Type Description
closedForCheckOut [string] Days in week that guest cannot check out. Comma-separated array of enum strings "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" or "SUNDAY".
closedForCheckIn [string] Days in week that guest cannot check in. Comma-separated array of enum strings "MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY" or "SUNDAY".
maxNights [obj]? Map from day of week to corresponding max nights value, which is the maximum length of stay if the trip starts on this day. If any days are missing, the "UNSPECIFIED" value is used. If there is no "UNSPECIFIED" value, then 1095 days is used.
minNights [obj]? Map from day of week to corresponding min nights value, which is the minimum length of stay if the trip starts on this day.
Week Day Mapping Object
Name Type Description
monday int? Max or min days value if the trip starts on Monday.
tuesday int? Max or min days value if the trip starts on Tuesday.
wednesday int? Max or min days value if the trip starts on Wednesday.
thursday int? Max or min days value if the trip starts on Thursday.
friday int? Max or min days value if the trip starts on Friday.
saturday int? Max or min days value if the trip starts on Saturday.
sunday int? Max or min days value if the trip starts on Sunday.
unspecified int? Max or min days value if the trip starts on a day that is not specified.

Example Response

<?xml version="1.0"?>
<RuleSets>
  <RuleSet>
    <Id>67450734</Id>
    <Color>1</Color>
    <CreatedByUserId>299413876</CreatedByUserId>
    <RuleSetPricingRules>
      <RuleSetPricingRules>
        <RuleType>SEASONAL_ADJUSTMENT</RuleType>
        <PriceChange>10</PriceChange>
        <PriceChangeType>PERCENT</PriceChangeType>
      </RuleSetPricingRules>
    </RuleSetPricingRules>
  </RuleSet>
  <RuleSet>
    <Id>169710991</Id>
    <Color>4</Color>
    <CreatedByUserId>299413876</CreatedByUserId>
    <RuleSetPricingRules>
      <RuleSetPricingRules>
        <RuleType>SEASONAL_ADJUSTMENT</RuleType>
        <PriceChange>-12</PriceChange>
        <PriceChangeType>PERCENT</PriceChangeType>
      </RuleSetPricingRules>
      <RuleSetPricingRules>
        <RuleType>STAYED_AT_LEAST_X_DAYS</RuleType>
        <PriceChange>-20</PriceChange>
        <PriceChangeType>PERCENT</PriceChangeType>
        <ThresholdOne>15</ThresholdOne>
      </RuleSetPricingRules>
      <RuleSetPricingRules>
        <RuleType>BOOKED_WITHIN_AT_MOST_X_DAYS</RuleType>
        <PriceChange>-35</PriceChange>
        <PriceChangeType>PERCENT</PriceChangeType>
        <ThresholdOne>10</ThresholdOne>
      </RuleSetPricingRules>
    </RuleSetPricingRules>
    <RuleSetAvailabilityRule>
      <ClosedForCheckOut>
        <DayOfWeek>SATURDAY</DayOfWeek>
        <DayOfWeek>FRIDAY</DayOfWeek>
      </ClosedForCheckOut>
      <ClosedForCheckIn>
        <DayOfWeek>TUESDAY</DayOfWeek>
        <DayOfWeek>WEDNESDAY</DayOfWeek>
      </ClosedForCheckIn>
      <MaxNights>
        <Thursday>11</Thursday>
        <Saturday>1</Saturday>
        <Unspecified>1095</Unspecified>
      </MaxNights>
      <MinNights>
        <Monday>5</Monday>
        <Tuesday>3</Tuesday>
        <Wednesday>2</Wednesday>
        <Unspecified>1</Unspecified>
      </MinNights>
    </RuleSetAvailabilityRule>
  </RuleSet>
</RuleSets>
            
[
   {
      "id": "67450734",
      "title": null,
      "color": 1,
      "createdByUserId": "299413876",
      "ruleSetPricingRules": [
         {
            "ruleType": "SEASONAL_ADJUSTMENT",
            "priceChange": 10,
            "priceChangeType": "PERCENT"
         }
      ],
      "ruleSetAvailabilityRule": null
   },
   {
      "id": "169710991",
      "title": null,
      "color": 4,
      "createdByUserId": "299413876",
      "ruleSetPricingRules": [
         {
            "ruleType": "SEASONAL_ADJUSTMENT",
            "priceChange": -12,
            "priceChangeType": "PERCENT"
         },
         {
            "ruleType": "STAYED_AT_LEAST_X_DAYS",
            "priceChange": -20,
            "priceChangeType": "PERCENT",
            "thresholdOne": 15
         },
         {
            "ruleType": "BOOKED_WITHIN_AT_MOST_X_DAYS",
            "priceChange": -35,
            "priceChangeType": "PERCENT",
            "thresholdOne": 10
         }
      ],
      "ruleSetAvailabilityRule": {
         "closedForCheckOut": [
            "FRIDAY",
            "SATURDAY"
         ],
         "closedForCheckIn": [
            "TUESDAY",
            "WEDNESDAY"
         ],
         "maxNights": {
            "thursday": 11,
            "saturday": 1,
            "unspecified": 1095
         },
         "minNights": {
            "monday": 5,
            "tuesday": 3,
            "wednesday": 2,
            "unspecified": 1
         }
      }
   }
]
            

POST v1/ChannelManager/Airbnb/RuleSet

Create a rule-set for an account.

Request parameters

Name Type Value
accountId string Account ID of listing
rule-set obj Rule-set to be created.

Example Request

<?xml version="1.0"?>
<RuleSetRequest>
    <AccountId>123456</AccountId>
    <RuleSet>
        <Title>Created rule through API</Title>
        <Color>2</Color>
        <RuleSetPricingRules>
            <RuleSetPricingRule>
                <RuleType>SEASONAL_ADJUSTMENT</RuleType>
                <PriceChange>15</PriceChange>
                <PriceChangeType>PERCENT</PriceChangeType>
            </RuleSetPricingRule>
        </RuleSetPricingRules>
        <RuleSetAvailabilityRule>
            <ClosedForCheckIn>
                <DayOfWeek>MONDAY</DayOfWeek>
                <DayOfWeek>SUNDAY</DayOfWeek>
                <DayOfWeek>WEDNESDAY</DayOfWeek>
            </ClosedForCheckIn>
            <MaxNights>
                <Monday>5</Monday>
                <Unspecified>1095</Unspecified>
            </MaxNights>
        </RuleSetAvailabilityRule>
    </RuleSet>
</RuleSetRequest>
            
{
   "accountId": "123456",
   "ruleSet": {
      "title": "Created rule through API",
      "color": 2,
      "ruleSetPricingRules": [
         {
            "ruleType": "SEASONAL_ADJUSTMENT",
            "priceChange": 15,
            "priceChangeType": "PERCENT"
         }
      ],
      "ruleSetAvailabilityRule": {
         "closedForCheckIn": [
            "MONDAY",
            "SUNDAY",
            "TUESDAY"
         ],
         "maxNights": 
         {
             "monday": 6,
             "unspecified": 7
         }
      }
   }
}
            

Response

The result is the created Rule-Set object.

Example Response

<?xml version="1.0"?>
<RuleSets>
    <RuleSet>
        <Id>456789</Id>
        <Title>Created rule through API</Title>
        <Color>2</Color>
        <CreatedByUserId>123456</CreatedByUserId>
        <RuleSetPricingRules>
            <RuleSetPricingRule>
                <RuleType>SEASONAL_ADJUSTMENT</RuleType>
                <PriceChange>15</PriceChange>
                <PriceChangeType>PERCENT</PriceChangeType>
            </RuleSetPricingRule>
        </RuleSetPricingRules>
        <RuleSetAvailabilityRule>
            <ClosedForCheckOut />
            <ClosedForCheckIn>
                <DayOfWeek>WEDNESDAY</DayOfWeek>
                <DayOfWeek>MONDAY</DayOfWeek>
                <DayOfWeek>SUNDAY</DayOfWeek>
            </ClosedForCheckIn>
            <MaxNights>
                <Monday>5</Monday>
                <Unspecified>1095</Unspecified>
            </MaxNights>
            <MinNights />
        </RuleSetAvailabilityRule>
    </RuleSet>
</RuleSets>
            
[
    {
        "id": "456789",
        "title": "Created rule through API",
        "color": 2,
        "createdByUserId": "123456",
        "ruleSetPricingRules": [
            {
                "ruleType": "SEASONAL_ADJUSTMENT",
                "priceChange": 15,
                "priceChangeType": "PERCENT"
            }
        ],
        "ruleSetAvailabilityRule": {
            "closedForCheckOut": [],
            "closedForCheckIn": [
                "SUNDAY",
                "MONDAY",
                "TUESDAY"
            ],
            "maxNights": {
                "monday": 6,
                "unspecified": 7
            },
            "minNights": {}
        }
    }
]
            

PUT v1/ChannelManager/Airbnb/RuleSet

Update a rule-set of an account.

Request parameters

The same as here.

Example Request

<?xml version="1.0"?>
<RuleSetRequest>
    <AccountId>123456</AccountId>
    <RuleSet>
        <Id>456789</Id>
        <Title>Updated rule through API</Title>
        <Color>2</Color>
        <RuleSetPricingRules>
            <RuleSetPricingRule>
                <RuleType>SEASONAL_ADJUSTMENT</RuleType>
                <PriceChange>15</PriceChange>
                <PriceChangeType>PERCENT</PriceChangeType>
            </RuleSetPricingRule>
        </RuleSetPricingRules>
        <RuleSetAvailabilityRule>
            <ClosedForCheckIn>
                <DayOfWeek>MONDAY</DayOfWeek>
                <DayOfWeek>SUNDAY</DayOfWeek>
                <DayOfWeek>WEDNESDAY</DayOfWeek>
            </ClosedForCheckIn>
            <MaxNights>
                <Monday>5</Monday>
                <Unspecified>1095</Unspecified>
            </MaxNights>
        </RuleSetAvailabilityRule>
    </RuleSet>
</RuleSetRequest>
            
{
   "accountId": "123456",
   "ruleSet": {
      "id": "456789",
      "title": "Created rule through API",
      "color": 2,
      "ruleSetPricingRules": [
         {
            "ruleType": "SEASONAL_ADJUSTMENT",
            "priceChange": 15,
            "priceChangeType": "PERCENT"
         }
      ],
      "ruleSetAvailabilityRule": {
         "closedForCheckIn": [
            "MONDAY",
            "SUNDAY",
            "TUESDAY"
         ],
         "maxNights": 
         {
             "monday": 6,
             "unspecified": 7
         }
      }
   }
}
            

Response

The result is Ok(200 status code).

DELETE v1/ChannelManager/Airbnb/RuleSet/{accountId}/{ruleSetId}

Delete a rule-set.

Response

Empty response.

GET v1/ChannelManager/Airbnb/RuleSetTimeline/{accountId}/{listingId}

Get the applied rule-sets to a listing.

Response

The result is a Rule-Set Timeline object.

Response Object properties
Rule-Set Timeline Object
Name Type Description
listingId string The unique identifier of the listing.
timelineItems [obj]? An array of Rule-Set Timeline Item objects.
Rule-Set Timeline Item Object
Name Type Description
startDate string Start date in ISO 8601 YYYY-MM-DD format.
endDate int End date in ISO 8601 YYYY-MM-DD format..
ruleSetId string Unique identifier of the applied rule-set.

Example Response

<?xml version="1.0"?>
<RuleSetTimeline>
  <ListingId>40269846</ListingId>
  <TimelineItems>
    <TimelineItem>
      <StartDate>2020-10-08</StartDate>
      <EndDate>2020-10-15</EndDate>
      <RuleSetId>67450734</RuleSetId>
    </TimelineItem>
    <TimelineItem>
      <StartDate>2020-10-20</StartDate>
      <EndDate>2020-10-29</EndDate>
      <RuleSetId>67450734</RuleSetId>
    </TimelineItem>
  </TimelineItems>
</RuleSetTimeline>
            
{
   "listingId": "40269846",
   "timelineItems": [
      {
         "startDate": "2020-10-08",
         "endDate": "2020-10-15",
         "ruleSetId": "67450734"
      },
      {
         "startDate": "2020-10-20",
         "endDate": "2020-10-29",
         "ruleSetId": "67450734"
      }
   ]
}
            

POST v1/ChannelManager/Airbnb/RuleSetTimeline/{accountId}

Apply a rule-set to a listing.

Request parameters

Name Type Value
accountId string Account ID.
listingId string Listing ID.
timelineItem obj Rule-set to be applied.

Example Request

<?xml version="1.0"?>
<ApplyRuleSet>
    <AccountId>123456<AccountId>
    <ListingId>40269846</ListingId>
    <TimelineItem>
        <StartDate>2021-05-05</StartDate>
        <EndDate>2021-05-15</EndDate>
        <RuleSetId>169710991</RuleSetId>
    </TimelineItem>
</ApplyRuleSet>
            
{
   "accountId": "123456",
   "listingId": "40269846",
   "timelineItem": {
      "startDate": "2021-06-05",
      "endDate": "2021-06-15",
      "ruleSetId": "169710991"
   }
}
            

Response

The result is Ok(200 status code).

PUT v1/ChannelManager/Airbnb/RuleSetTimeline/{accountId}

Remove applied rule-sets to a listing for a date range.

Request parameters

Name Type Value
accountId string Account ID.
listingId string Listing ID.
startDate string Start date in ISO 8601 YYYY-MM-DD format.
endDate int End date in ISO 8601 YYYY-MM-DD format..

Example Request

<?xml version="1.0"?>
<RemoveRuleSets>
    <AccountId>299413876</AccountId>
    <ListingId>40269846</ListingId>
    <StartDate>2021-05-05</StartDate>
    <EndDate>2021-05-15</EndDate>
</RemoveRuleSets>
            
{
   "accountId": "123456",
   "listingId": "40269846",
   "StartDate": "2021-06-05",
    "EndDate": "2021-06-15",
}
            

Response

The result is Ok(200 status code).

GET v1/ChannelManager/Airbnb/Reservation/{accountId}/{confirmationCode}

Get the information of a reservation.

Response

The result is a Reservation object.

Response Object properties
Reservation Object
Name Type Description
cancellationPolicyCategory string The cancellation policy category.
confirmationCode string Confirmation code (10 chars).
createdAt DateTime The time that the guest initiated the reservation / entered the checkout page.
updatedAt DateTime The time this reservation was last updated.
bookedAt DateTime The time the reservation was confirmed / entered the accepted state.
startDate DateTime The beginning of the reservation.
endDate DateTime The end of the reservation.
guestDetails obj Details of guests.
guestEmail string Anonymized guest email.
guestFirstName string Guest's first name.
guestId string Guest's Airbnb ID.
guestLastName string Guest's last name.
guestPhoneNumbers [string] Array of Guest's phone numbers.
guestPrefferedLocale string Guest's preferred locale.
hostCurrency string The currency of the amount this in which reservation is quoted.
hostId string Host's Airbnb ID.
expectedPayoutAmountAccurate string Amount paid to Host for reservation, in Host's currency.
listingBasePriceAccurate string Reservation price without fees.
listingHostFeeAccurate string Airbnb service fee charged to host without VAT.
listingSecurityPriceAccurate string Amount of security deposit.
listingCleaningFeeAccurate string Amount of cleaning fee.
listingCancellationPayoutAccurate string Amount paid to the Host in case of cancellation. Defaults to 0 unless the reservation was cancelled. If cancelled by Host, this is 0.
listingCancellationHostFeeAccurate string The Host fee paid to Airbnb if reservation is canceled. If canceled by host, this value is 0.
listingId string Listing's Airbnb ID.
specialOfferId string The id of the relevant Special Offer or pre-approval. If none, this vaue is null.
nights int Number of nights.
PassThroughTaxAmountPaidToHostAccurate string The tax amount passed back to hosts who are using Occupancy Taxes. This amount must be remitted to the appropriate tax authorities.
statusType string The status of this reservation at the time it was retrieved.
standardFeesDetailsList [obj] The standard fees applied to the reservation.
threadId string ID of the message thread asscoicated with reservation to use for Messaging API.
totalPaidAmountAccurate string The cumulative sum of all payouts (consolidated of past and current) that have been released to the Host.
Guest Details Object
Name Type Description
adults int The number of adults.
children int The number of children.
infants int The number of infants. Infants are not included in the total maximum guest count.
Standard Fees Details Object
Name Type Description
feeType string Fee type.
amountNative string The amount charged in listing's currency.

Example Response

<?xml version="1.0"?>
<Reservation>
  <CancellationPolicyCategory>moderate</CancellationPolicyCategory>
  <ConfirmationCode>HMCBHD3SRW</ConfirmationCode>
  <CreatedAt>1/24/2021 6:14:35 PM</CreatedAt>
  <UpdatedAt>1/24/2021 6:39:12 PM</UpdatedAt>
  <BookedAt>1/24/2021 6:39:12 PM</BookedAt>
  <StartDate>1/24/2021 12:00:00 AM</StartDate>
  <EndDate>1/25/2021 12:00:00 AM</EndDate>
  <GuestDetails>
    <Adults>2</Adults>
    <Children>0</Children>
    <Infants>0</Infants>
  </GuestDetails>
  <GuestEmail />
  <GuestFirstName>John</GuestFirstName>
  <GuestId>123456</GuestId>
  <GuestLastName>Doe</GuestLastName>
  <GuestPhoneNumbers>
    <GuestPhoneNumber>5554536</GuestPhoneNumber>
  </GuestPhoneNumbers>
  <GuestPrefferedLocale>el</GuestPrefferedLocale>
  <HostCurrency>EUR</HostCurrency>
  <HostId>456789</HostId>
  <ExpectedPayoutAmountAccurate>32.33</ExpectedPayoutAmountAccurate>
  <ListingBasePriceAccurate>38.03</ListingBasePriceAccurate>
  <ListingHostFeeAccurate>5.70</ListingHostFeeAccurate>
  <ListingSecurityPriceAccurate>0.00</ListingSecurityPriceAccurate>
  <ListingCleaningFeeAccurate>0.00</ListingCleaningFeeAccurate>
  <ListingCancellationPayoutAccurate>32.33</ListingCancellationPayoutAccurate>
  <ListingCancellationHostFeeAccurate>5.70</ListingCancellationHostFeeAccurate>
  <ListingId>258963</ListingId>
  <Nights>1</Nights>
  <PassThroughTaxAmountPaidToHostAccurate>0.00</PassThroughTaxAmountPaidToHostAccurate>
  <StatusType>accept</StatusType>
  <ThreadId>987235321</ThreadId>
  <TotalPaidAmountAccurate>0.00</TotalPaidAmountAccurate>
</Reservation>
            
{
   "cancellationPolicyCategory": "moderate",
   "confirmationCode": "HMCBHD3SRW",
   "createdAt": "1/24/2021 6:14:35 PM",
   "updatedAt": "1/24/2021 6:39:12 PM",
   "bookedAt": "1/24/2021 6:39:12 PM",
   "startDate": "1/24/2021 12:00:00 AM",
   "endDate": "1/25/2021 12:00:00 AM",
   "guestDetails": {
      "adults": 2,
      "children": 0,
      "infants": 0
   },
   "guestEmail": "",
   "guestFirstName": "John",
   "guestId": "123456",
   "guestLastName": "Doe",
   "guestPhoneNumbers": [
      "5554562"
   ],
   "guestPrefferedLocale": "el",
   "hostCurrency": "EUR",
   "hostId": "456789",
   "expectedPayoutAmountAccurate": "32.33",
   "listingBasePriceAccurate": "38.03",
   "listingHostFeeAccurate": "5.70",
   "listingSecurityPriceAccurate": "0.00",
   "listingCleaningFeeAccurate": "0.00",
   "listingCancellationPayoutAccurate": "32.33",
   "listingCancellationHostFeeAccurate": "5.70",
   "listingId": "25896",
   "specialOfferId": null,
   "nights": 1,
   "PassThroughTaxAmountPaidToHostAccurate": "0.00",
   "statusType": "accept",
   "standardFeesDetailsList": [],
   "threadId": "987235321",
   "totalPaidAmountAccurate": "0.00"
}
            

GET v1/ChannelManager/Airbnb/Reservations/{accountId}/{listingId}

Get the future reservations of a listing.

Response

The result is an array of Reservation objects.

Example Response

<?xml version="1.0"?>
<Reservations>
<Reservation>
  <CancellationPolicyCategory>moderate</CancellationPolicyCategory>
  <ConfirmationCode>HMCBHD3SRW</ConfirmationCode>
  <CreatedAt>1/24/2021 6:14:35 PM</CreatedAt>
  <UpdatedAt>1/24/2021 6:39:12 PM</UpdatedAt>
  <BookedAt>1/24/2021 6:39:12 PM</BookedAt>
  <StartDate>1/24/2021 12:00:00 AM</StartDate>
  <EndDate>1/25/2021 12:00:00 AM</EndDate>
  <GuestDetails>
    <Adults>2</Adults>
    <Children>0</Children>
    <Infants>0</Infants>
  </GuestDetails>
  <GuestEmail />
  <GuestFirstName>John</GuestFirstName>
  <GuestId>123456</GuestId>
  <GuestLastName>Doe</GuestLastName>
  <GuestPhoneNumbers>
    <GuestPhoneNumber>5554536</GuestPhoneNumber>
  </GuestPhoneNumbers>
  <GuestPrefferedLocale>el</GuestPrefferedLocale>
  <HostCurrency>EUR</HostCurrency>
  <HostId>456789</HostId>
  <ExpectedPayoutAmountAccurate>32.33</ExpectedPayoutAmountAccurate>
  <ListingBasePriceAccurate>38.03</ListingBasePriceAccurate>
  <ListingHostFeeAccurate>5.70</ListingHostFeeAccurate>
  <ListingSecurityPriceAccurate>0.00</ListingSecurityPriceAccurate>
  <ListingCleaningFeeAccurate>0.00</ListingCleaningFeeAccurate>
  <ListingCancellationPayoutAccurate>32.33</ListingCancellationPayoutAccurate>
  <ListingCancellationHostFeeAccurate>5.70</ListingCancellationHostFeeAccurate>
  <ListingId>258963</ListingId>
  <Nights>1</Nights>
  <PassThroughTaxAmountPaidToHostAccurate>0.00</PassThroughTaxAmountPaidToHostAccurate>
  <StatusType>accept</StatusType>
  <ThreadId>987235321</ThreadId>
  <TotalPaidAmountAccurate>0.00</TotalPaidAmountAccurate>
</Reservation>
</Reservations>
            
[
{
   "cancellationPolicyCategory": "moderate",
   "confirmationCode": "HMCBHD3SRW",
   "createdAt": "1/24/2021 6:14:35 PM",
   "updatedAt": "1/24/2021 6:39:12 PM",
   "bookedAt": "1/24/2021 6:39:12 PM",
   "startDate": "1/24/2021 12:00:00 AM",
   "endDate": "1/25/2021 12:00:00 AM",
   "guestDetails": {
      "adults": 2,
      "children": 0,
      "infants": 0
   },
   "guestEmail": "",
   "guestFirstName": "John",
   "guestId": "123456",
   "guestLastName": "Doe",
   "guestPhoneNumbers": [
      "5554562"
   ],
   "guestPrefferedLocale": "el",
   "hostCurrency": "EUR",
   "hostId": "456789",
   "expectedPayoutAmountAccurate": "32.33",
   "listingBasePriceAccurate": "38.03",
   "listingHostFeeAccurate": "5.70",
   "listingSecurityPriceAccurate": "0.00",
   "listingCleaningFeeAccurate": "0.00",
   "listingCancellationPayoutAccurate": "32.33",
   "listingCancellationHostFeeAccurate": "5.70",
   "listingId": "25896",
   "specialOfferId": null,
   "nights": 1,
   "PassThroughTaxAmountPaidToHostAccurate": "0.00",
   "statusType": "accept",
   "standardFeesDetailsList": [],
   "threadId": "987235321",
   "totalPaidAmountAccurate": "0.00"
}
]
            

Webhooks

Notifications about asynchronous events.

All relevant notifications and their payload are described below. Tips:


Expected Response

Name Type Description
succeed bool Whether the notification was successfully received.
failure_code string If succeed is false, this field has a value of null. It is reserved for future use.

Example Response

 { "succeed" : true } 


Listing Approval Status Updated

Sent when a listing's status is updated: approved or rejected.

Payload

Name Type Description
action string "ListingApprovalStatusChanged"
hostId string The ID of the host.
listingId string The listing ID.
statusCategory string Listing status. One of "new", "ready for review", "approved", or "rejected".
notes string Notes on the decision.

Example

{
   "hostId": "299211034",
   "listingId": "39237201",
   "statusCategory": "approved",
   "notes": null,
   "action": "ListingApprovalStatusChanged"
}
            


Listing Synchronization Settings Updated

Sent when a user switches the synchronization category.

Payload

Name Type Description
action string "ListingSynchronizationSettingsUpdated"
hostId string The ID of the host.
updates [obj] An array of Settings Update objects.

Settings Update Object

Name Type Description
listingId string The listing ID.
cyncCategory string Should always be "Limited".

Example

{
   "hostId": "299211034",
   "updates": [
      {
         "listingId": "39237201",
         "syncCategory": "Limited"
      }
   ],
   "action": "ListingSynchronizationSettingsUpdated"
}
            


Listings Unlinked

Sent when a host has disconnected (or unlinked) their listing(s) from your application in order to manage them directly on Airbnb.

Payload

Name Type Description
action string "ListingsUnlinked"
hostId string The ID of the host.
listingIds [string] An array of the unlinked listing ID(s).

Example

{
   "hostId": "299211034",
   "listingIds": ["39237201"],
   "action": "ListingsUnlinked"
}
            


Authorization Revoked

Sent when a host has decided to revoke permission for your application to access the specified listings. Your application can no longer be used to manage these listings.If a host is not managing any listings with your application, the array of listing IDs will be empty. Otherwise, this payload is identical to the listings unlinked notification.

Payload

Name Type Description
action string "AuthorizationRevoked"
hostId string The ID of the host.
listingIds [string] An array of the revoked listing ID(s).

Example

{
   "hostId": "299211034",
   "listingIds": ["39237201"],
   "action": "AuthorizationRevoked"
}            


Listing Suspension Notification

Notification is triggered when a listing is unlinked, taken down, suspended or otherwise removed.

Payload

Name Type Description
action string "ListingSuspension"
listingId string The listing ID.
restrictedCapabilityTypes [string] Associated capability types (restrictions).

Listing Suspension Capability Types

Capability Type Description
listing_searchable Listing is not visible in search page.
listing_visible Listing is not visible on details page.
activate_listing Listing is not allowed to be activated.
accept_reservation Listing is not allowed to accept a reservation.

Example

{
   "listingId": "39237201",
   "restrictedCapabilityTypes": ["listing_visible", "listing_searchable"],
   "action": "ListingSuspension"
}           


Host Suspension Notification

Notification is triggered when a user gets suspended due to trust and safety or customer service concerns.

Payload

Name Type Description
action string "HostSuspension"
hostId string The ID of the host.
capabilityTypes [string] Associated capability types (restrictions).

Host Suspension Capability Types

Capability Type Description
login Host is not allowed to log in.
send_message Host is not allowed to send messages.
receive_payout Host is blocked from receiving payouts.
accept_reservation Host is blocked from accepting reservation.
create_listing Host is blocked from creating new listings.
listing_searchable Listings are not visible on search page.
listing_visible Listings are not visible on details page.
activate_listing Host is not allowed to activate listings.
make_payment Host is blocked from making payments.
ugc_visible User generated content is hidden.
message Host is not allowed to send messages.
review_visible Host reviews are not visible.
delete_account User is not allowed to delete their own account.
activate_us_listing_without_postal_verification Listing can't be published until postal verification is complete.

Example

{
   "hostId": "299211034",
   "capabilityTypes": [
      "listing_visible",
      "listing_searchable"
   ],
   "action": "HostSuspension"
}
            


COVID-19 Safety Commitment Suspension Notification

Notification is triggered when the host doesn’t accept the COVID-19 safety commitment. Failing to accept the safety commitment in time will block all of the host’s listing calendars and guests won’t be able to make a reservation until the host accepts the safety commitment through their Airbnb user account.

Payload

Name Type Description
action string "SafetyCommitmentSuspension"
hostId string The host ID.
capabilityTypeRestricted string "accept_reservation"
message string "Because you didn't agree to the COVID-19 safety practices by the deadline of %{deadline_date}, your calendar is blocked and guests can't make future bookings."

Example

{
   "hostId": "299211034",
   "capabilityTypeRestricted": "accept_reservation",
   "message": "Because you didn't agree to the COVID-19 safety practices by the deadline of 2020-11-20, your calendar is blocked and guests can't make future bookings.",
   "action": "SafetyCommitmentSuspension"
}
            


COVID-19 Safety Commitment Reactivation Notification

Notification is triggered when the host accepts the safety commitment. This will also unblock all of the host’s listing calendars and guests will be able to make reservations again.

Payload

Name Type Description
action string "SafetyCommitmentReactivation"
hostId string The host ID.
capabilityTypeReactivated string "accept_reservation"
message string "Thank you for agreeing to the COVID-19 safety practices. Your calendar is unblocked and guests can make reservations."

Example

{
   "hostId": "299211034",
   "capabilityTypeReactivated": "accept_reservation",
   "message": "Thank you for agreeing to the COVID-19 safety practices. Your calendar is unblocked and guests can make reservations.",
   "action": "SafetyCommitmentReactivation"
}
            


Special Offer Update Notifications

This notification is sent when Special Offers and pre-approvals are created, withdrawn, or expired using your application or through the Airbnb website.

Payload

Name Type Description
action string One of "SpecialOfferCreated", "SpecialOfferVoided". Voided means that the special offer has been withdrawn or expired.
specialOfferId string The ID of the relevant special offer or preapproval.
isActive bool Whether this special offer is still active or not.
listingId string The ID of the listing associated with this offer.
nights int The number of nights included in the offer.
numberOfGuests int The number of guests included in the offer.
offerType string Type of offer. Either "preapproval" or "special_offer".
rescindedAt string? The time the offer was withdrawn, or null if the offer was not withdrawn. ISO-8601 format.
startDate string? The beginning date of the offer. ISO-8601 format.
threadId string The ID of the thread that received this offer.
totalPrice int The total price of the offer in the listing's currency, including the cleaning fee and all standard fees.
blockInstantBooking bool For Pre-approvals, the listing may or may not remain available while the guest is deciding.
createdAt string The time the offer was sent. ISO-8601 format.
expiresAt string The time the offer was set to expire. ISO-8601 format.
numberOfAdults int The number of adults.
numberOfChildren int The number of children.
numberOfInfants int The number of infants. Infants are not calculated in the maximum number of guests.

Example

{
   "blockInstantBooking": false,
   "createdAt": "2021-03-08T06:24:05Z",
   "expiresAt": "2021-03-09T06:24:05Z",
   "numberOfAdults": 6,
   "numberOfChildren": 0,
   "numberOfInfants": 0,
   "specialOfferId": "230610054",
   "isActive": true,
   "listingId": "39237201",
   "nights": 4,
   "numberOfGuests": 0,
   "offerType": "preapproval",
   "rescindedAt": null,
   "startDate": "2021-10-23",
   "threadId": "1005375462",
   "totalPrice": "944",
   "action": "SpecialOfferCreated"
}        
            


Pending Reservation Notification

This notification is sent when a new reservation is requested or when a reservation request is voided. This notification is not sent for when a reservation alteration request is received.

Payload

Name Type Description
action string "ReservationRequested" or "ReservationRequestVoided"
messageToHost string? If the action is "reservation_requested", this field will contain the message from the guest that was sent with the request.
reservation obj Notification Reservation object
Notification Reservation
Name Type Description
cancellationPolicyCategory string The cancellation policy category.
confirmationCode string Confirmation code (10 chars).
createdAt string? The time that the guest initiated the reservation / entered the checkout page.
updatedAt string? The time this reservation was last updated.
bookedAt string? The time the reservation was confirmed / entered the accepted state.
startDate string The beginning of the reservation.
endDate string The end of the reservation.
guestDetails obj Details of guests.
guestEmail string Anonymized guest email.
guestFirstName string Guest's first name.
guestId string Guest's Airbnb ID.
guestLastName string Guest's last name.
guestPhoneNumbers [string] Array of Guest's phone numbers.
guestPrefferedLocale string Guest's preferred locale.
hostCurrency string The currency of the amount this in which reservation is quoted.
hostId string Host's Airbnb ID.
expectedPayoutAmountAccurate string Amount paid to Host for reservation, in Host's currency.
listingBasePriceAccurate string Reservation price without fees.
listingHostFeeAccurate string Airbnb service fee charged to host without VAT.
listingSecurityPriceAccurate string Amount of security deposit.
listingCleaningFeeAccurate string Amount of cleaning fee.
listingCancellationPayoutAccurate string Amount paid to the Host in case of cancellation. Defaults to 0 unless the reservation was cancelled. If cancelled by Host, this is 0.
listingCancellationHostFeeAccurate string The Host fee paid to Airbnb if reservation is canceled. If canceled by host, this value is 0.
listingId string Listing's Airbnb ID.
specialOfferId string The id of the relevant Special Offer or pre-approval. If none, this vaue is null.
nights int Number of nights.
PassThroughTaxAmountPaidToHostAccurate string The tax amount passed back to hosts who are using Occupancy Taxes. This amount must be remitted to the appropriate tax authorities.
statusType string The status of this reservation at the time it was retrieved.
standardFeesDetailsList [obj] The standard fees applied to the reservation.
threadId string ID of the message thread asscoicated with reservation to use for Messaging API.
totalPaidAmountAccurate string The cumulative sum of all payouts (consolidated of past and current) that have been released to the Host.

Example

{
   "reservation": {
      "cancellationPolicyCategory": "moderate",
      "confirmationCode": "HMM2JEHBPQ",
      "createdAt": "2021-02-25T22:06:42Z",
      "updatedAt": "2021-02-25T22:18:31Z",
      "bookedAt": null,
      "startDate": "2021-02-26",
      "endDate": "2021-02-27",
      "guestDetails": {
         "adults": 3,
         "children": 0,
         "infants": 0
      },
      "guestEmail": "test-hrpww2azmdwtpkzc@guest.airbnb.com",
      "guestFirstName": "test",
      "guestId": "242492608",
      "guestLastName": "test",
      "guestPhoneNumbers": [
         "30694123456789"
      ],
      "guestPrefferedLocale": "el",
      "hostCurrency": "EUR",
      "hostId": "299211034",
      "expectedPayoutAmountAccurate": "91.88",
      "listingBasePriceAccurate": "89.10",
      "listingHostFeeAccurate": "16.22",
      "listingSecurityPriceAccurate": "0.00",
      "listingCleaningFeeAccurate": "19.00",
      "listingCancellationPayoutAccurate": "91.88",
      "listingCancellationHostFeeAccurate": "16.22",
      "listingId": "39237201",
      "specialOfferId": null,
      "nights": 1,
      "PassThroughTaxAmountPaidToHostAccurate": "0.00",
      "statusType": "pending_voided",
      "standardFeesDetailsList": [],
      "threadId": "1000736918",
      "totalPaidAmountAccurate": "0.00"
   },
   "messageToHost": null,
   "action": "ReservationRequestVoided"
}
            


Confirmed Reservation Notification

Reservation notifications are a critical element of API integration. Sent when a new reservation is confirmed, when a confirmed reservation is altered by guest or host, or the reservation is cancelled.Multiple cancellation notifications might be sent for the same reservation if the cancellation type changes. A change in the cancellation type is important because it may affect the payout amount.

Payload

Name Type Description
action string One of "ReservationAcceptanceConfirmation", "ReservationCancellationConfirmation", "ReservationAlterationConfirmation"
reservation [obj] Reservation object

Example

{
   "reservation": {
      "cancellationPolicyCategory": "moderate",
      "confirmationCode": "HMSHYFH3AK",
      "createdAt": "2021-03-06T14:45:18Z",
      "updatedAt": "2021-03-06T16:22:48Z",
      "bookedAt": "2021-03-06T14:49:59Z",
      "startDate": "2021-03-06T00:00:00",
      "endDate": "2021-03-07T00:00:00",
      "guestDetails": {
         "adults": 2,
         "children": 0,
         "infants": 0
      },
      "guestEmail": "test-lhbtjn5aru2jtb58@guest.airbnb.com",
      "guestFirstName": "test",
      "guestId": "348563651",
      "guestLastName": "test",
      "guestPhoneNumbers": ["123456789"],
      "guestPrefferedLocale": "es",
      "hostCurrency": "EUR",
      "hostId": "299211034",
      "expectedPayoutAmountAccurate": "27.07",
      "listingBasePriceAccurate": "26.85",
      "listingHostFeeAccurate": "4.78",
      "listingSecurityPriceAccurate": "0.00",
      "listingCleaningFeeAccurate": "5.00",
      "listingCancellationPayoutAccurate": "27.07",
      "listingCancellationHostFeeAccurate": "4.78",
      "listingId": "39237201",
      "specialOfferId": null,
      "nights": 1,
      "PassThroughTaxAmountPaidToHostAccurate": "0.00",
      "statusType": "cancelled_by_guest",
      "standardFeesDetailsList": [],
      "threadId": "1004715967",
      "totalPaidAmountAccurate": "0.00"
   },
   "action": "ReservationCancellationConfirmation"
}

            


Payout Sent Notification

A notification is sent when we release payouts to hosts, which normally occurs approximately 24 hours after check-in.

Payload

Name Type Description
action string "PayoutNotification"
confirmedAt int A timestamp formatted in Unix time.
reservation [obj] Reservation object

Example

{
   "confirmedAt": 1615172200,
   "reservation": {
      "cancellationPolicyCategory": "tiered_pricing_non_refundable",
      "confirmationCode": "HMFFH582BT",
      "createdAt": "2021-01-06T07:00:21Z",
      "updatedAt": "2021-01-06T07:03:04Z",
      "bookedAt": "2021-01-06T07:03:04Z",
      "startDate": "2021-02-18T00:00:00",
      "endDate": "2021-02-19T00:00:00",
      "guestDetails": {
         "adults": 5,
         "children": 0,
         "infants": 0
      },
      "guestEmail": "",
      "guestFirstName": "test",
      "guestId": "220593249",
      "guestLastName": "test",
      "guestPhoneNumbers": ["64212608292"],
      "guestPrefferedLocale": "en",
      "hostCurrency": "NZD",
      "hostId": "299211034",
      "expectedPayoutAmountAccurate": "218.02",
      "listingBasePriceAccurate": "256.50",
      "listingHostFeeAccurate": "38.48",
      "listingSecurityPriceAccurate": "0.00",
      "listingCleaningFeeAccurate": "0.00",
      "listingCancellationPayoutAccurate": "218.02",
      "listingCancellationHostFeeAccurate": "38.48",
      "listingId": "39237201",
      "specialOfferId": null,
      "nights": 1,
      "PassThroughTaxAmountPaidToHostAccurate": "0.00",
      "statusType": "accept",
      "standardFeesDetailsList": [],
      "threadId": "980215446",
      "totalPaidAmountAccurate": "218.02"
   },
   "action": "PayoutNotification"
}
            


Review Notifications

Notifications triggered by review events.

Payload

Name Type Description
action string One of "ReviewCreated", "ReviewSubmitted", "ReviewPublished", "ReviewExpired", "ReviewResponseSubmitted"
reviewId string The ID number of this review.
reviewerRole string Role of the reviewer.
reviewerΙd string User ID of the reviewer.
revieweeRole string Role of the reviewee.
revieweeId string User ID of the reviewee.
listingId string Id of the listing. Note that the listingId is not present on host-to-guest review notifications.
reservationConfirmationCode string Reservation unique identifier.
hidden bool Hidden reviews do not appear in search results by default. All reviews are hidden until submitted.
submitted bool Indicates whether this review has been submitted.
overallRating int Guest rates the overall quality of the stay. Valid values are 1-5, 5 being highest.
publicReview string Public comment left by reviewer.
privateFeedback string Private comment left by reviewer. This information is not publicly visible. It is often used to offer suggestions for improvement.
revieweeResponse string Reviewee's response to the review.
categoryRatings [obj] List of all category ratings for the reservation associated with this review.
Category Ratings Object
Name Type Description
category string For host-to-guest reviews, one of cleanliness, communication, respect_house_rules. For guest-to-host reviews, one of accuracy, cleanliness, checkin, communication, location, value.
rating int A rating from scale of 1 to 5, 5 being highest.
comment string? Explanation for the rating if < 5 stars.

Example

{
   "reviewId": "736203919",
   "reviewerRole": "guest",
   "reviewerId": "312116019",
   "revieweeRole": "host",
   "revieweeId": "299211034",
   "listingId": "39237201",
   "reservationConfirmationCode": "HM4QWDYJE8",
   "hidden": false,
   "submitted": true,
   "overallRating": 5,
   "publicReview": "Very nice and quiet area, close to the airport and stylish space. Breakfast was wonderful as well.",
   "privateFeedback": "Thank you for hosting us! We enjoyed our stay. -Anni & Cole",
   "revieweeResponse": "Thank you very much for your kind feedback. We appreciate your positive review.",
   "categoryRatings": [
      {
         "category": "value",
         "rating": 5,
         "comment": null
      }
   ],
   "expiresAt": "2021-03-18T12:59:05.615Z",
   "firstCompletedAt": "2021-03-05T08:00:50.932Z",
   "submittedAt": "2021-03-05T08:04:48.688Z",
   "respondedAt": "2021-03-05T08:52:48.000Z",
   "action": "ReviewResponseSubmitted"
}
        
            


Check Availability

A call will be made right after the guest clicks to submit the booking on the checkout screen. If this call fails, the guest is informed that the dates for the reservation are no longer available.

Payload

Name Type Description
action string "CheckAvailability"
startDate string The reservation start date, in ISO 8601 YYYY-MM-DD format.
nights int The number of nights in the reservation.
listingId int The Airbnb Listing ID.

Example

{
   "action": "CheckAvailability",
   "startDate": "2021-03-23",
   "nights": 2,
   "listingId": "39237201"
}
            


Make Reservation

A call to will be made right after the guest clicks to submit the booking on the checkout screen. If this call fails, the guest is informed that the dates for the reservation are no longer available.

Payload

Name Type Description
action string "MakeReservation"
confirmationCode string Unique identifier of the reservation.
startDate string The reservation start date, in ISO 8601 YYYY-MM-DD format.
nights string The number of nights in the reservation.
listingId string The Airbnb listing ID.
numberOfGuests string The number of guests for the reservation.
guestDetails obj Guest Details object.
listingBasePrice string The reservation price.
guestId string The Airbnb user ID of the guest booking this reservation.
specialOfferId string? The id of the special offer if the reservation was initiated through an offer. If not, this value is null.
Guest Details object
Name Type Description
localizedDescription string Description.
adults int Number of adults.
children int Number of children.
infants int Number of infants.

Example

{
   "action": "MakeReservation",
   "confirmationCode": "8QA2BP",
   "guestDetails": {
      "localizedDescription": "1 guest",
      "adults": 1,
      "children": 0,
      "infants": 0
   },
   "guestId": "1111",
   "listingBasePrice": "477.0",
   "listingId": "39237201",
   "nights": "3",
   "numberOfGuests": "1",
   "specialOfferId": null,
   "startDate": "2021-04-01"
}
            


Update Reservation

The Update Reservation call happens once both the guest and the host have accepted the alteration on Airbnb. At this point, your application should check if the alteration is possible based on the most up-to-date calendar. Only check the daily availability, as the host and guest may have agreed on a set of dates that doesn't match the standard availability rules, such as the minimum length of stay.

Payload

Name Type Description
action string "UpdateReservation"
confirmationCode string Unique identifier of the reservation.
startDate string The reservation start date, in ISO 8601 YYYY-MM-DD format.
nights string The number of nights in the reservation.
listingId string The Airbnb listing ID.
numberOfGuests string The number of guests for the reservation.
listingBasePrice string The reservation price.

Example

{
   "action": "UpdateReservation",
   "confirmationCode": "HMQQSCW895",
   "startDate": "2021-05-27",
   "nights": "3",
   "listingId": "39237201",
   "numberOfGuests": "3",
   "listingBasePrice": "630"
}