Update Listing

Updates listing details. Send any subset of the fields below; omitted
fields are left unchanged, and null clears a nullable field. Each
field documents its own constraints — values that violate them return
400.

Enabling a listing. Turning on messaging, availability, or pricing
enables the listing — you're billed for any enabled listing, and turning
all three off disables it. Enable them individually, but turning on
availability or pricing also turns on messaging.

ToggleFieldWhat enabling it doesAlso enables messaging
MessagingmessagingEnabledLets messages be sent and received
AvailabilitysyncAvailabilitySyncs the connected calendarsYes
PricingsyncPricingSyncs prices and restrictionsYes

Enabling sync. Turning on syncPricing or syncAvailability returns
400 if the listing's Airbnb account is in setup mode (no calendar
permission — reconnect in full mode first), or it's a co-hosted listing
whose owner hasn't granted sync permission yet. syncPricing also needs
an effective minNights of at least 1 (sent in the request or already
stored), and neither toggle can be enabled while turning
messagingEnabled off — messaging is the master switch. When a sync
toggle change triggers an immediate Airbnb push, the response includes
syncPushed (false = push failed but settings are saved; the next
periodic sync reconciles).

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Path Params
string
required

_id of listing to update

Body Params

Listing update fields

boolean

Lets guest messages be sent and received for this listing.
The master switch: availability and pricing sync only run
while messaging is on.

boolean

Syncs prices and restrictions (calendar prices, base &
minimum price, minimum nights, check-in/out rules,
discounts). Enabling also turns messaging on; see "Enabling
sync" above for when it's blocked.

boolean

Syncs availability across the connected calendars. Enabling
also turns messaging on; see "Enabling sync" above for when
it's blocked.

number | null
0 to 100

Weekly discount percent (0-100). Pass null to clear.

number | null
0 to 100
number | null
0 to 100
string | null

Set this listing's parent room (for multi-unit setups). Pass
null to unlink. The target must belong to the same user and
must not create a cycle.

string
enum

Where synced prices come from. API means the prices you
push via the setPrices endpoint (update prices via the API
before selecting it). Use Listing to mirror another listing
(set priceSourceListingID). Changing this also enables
pricing and availability sync unless you send those toggles
explicitly, so the same "Enabling sync" checks apply.

Allowed:
string | null

Required when priceSource = "Listing".

number | null
≥ 0

Minimum nightly price. Pass null to clear.

number
enum

Availability window in days.

calendars
array of objects

iCal import URLs. Pass an empty array to clear all
user-added calendars. Auto-added entries (e.g. from a
channel sync) are always preserved.

calendars
string
string

Postal address. When changed, we geocode it to derive the
listing's location components (city, region, country,
countryCode, zipcode, latitude, longitude, timeZone); a
poorly-structured or ambiguous address fails validation
(400). An unchanged address skips the geocoder.

number
0 to 23

Check-in hour, 0–23.

number
0 to 23

Check-out hour, 0–23.

string
^[A-Z]{3}$

3-letter ISO 4217 code (e.g. USD).

string

IANA timezone name.

number
≥ 0
number
≥ 0
notes
object
neighborhoodOverview
object
about
object
keyCollection
object
policy
object
number
≥ 1

Optional; when sent must be at least 1. You only need to
send it when changing it.

number
≥ 0
number
≥ 0
number
≥ 0
string
enum
Allowed:
uri | null

URL used by the {{Upsell URL}} message tag. Pass null to clear.

Headers
string

Partner API key (deprecated — use OAuth 2.0 for new integrations)

string

User's authentication token (legacy). Use Authorization Bearer header for new integrations.

Responses

429

Too many requests

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json