Manage Airbnb Listings
List, create, publish, unlist, and delete listings on Airbnb. The default response is a fast index of every listing connected to the workspace. Pass `?include=amenities` to enrich each connection with its current Airbnb amenity set (one extra upstream call per unique listing id, fanned out in parallel — per-connection failures surface in `_errors.amenities` rather than failing the whole request).
GET
/v1/channels/airbnb/listingsParameters
includestringComma-separated expansions. Currently supported: `amenities` — adds `amenities` and `accessibilityAmenities` arrays to each connection.
Example
# List Airbnb-connected properties (fast — local data only)
curl https://api.repull.dev/v1/channels/airbnb/listings \
-H "Authorization: Bearer sk_test_YOUR_KEY"
# Same list, but include each property's current Airbnb amenities
curl 'https://api.repull.dev/v1/channels/airbnb/listings?include=amenities' \
-H "Authorization: Bearer sk_test_YOUR_KEY"
# Get a single Vanio listing's Airbnb connections (with amenities)
curl 'https://api.repull.dev/v1/channels/airbnb/listings/6248?include=amenities' \
-H "Authorization: Bearer sk_test_YOUR_KEY"
# Create a new Airbnb listing
curl -X POST https://api.repull.dev/v1/channels/airbnb/listings \
-H "Authorization: Bearer sk_test_YOUR_KEY" \
-d '{"listingId": 123, "hostId": "380436627"}'
# Publish a listing
curl -X POST https://api.repull.dev/v1/channels/airbnb/listings/123 \
-H "Authorization: Bearer sk_test_YOUR_KEY" \
-d '{"action": "publish", "connectionId": 456}'Response
{
"data": [
{
"listingId": 6248,
"name": "Oceanview Villa",
"city": "Malibu",
"connections": [
{
"id": 2642,
"airbnbId": "1116939745194659457",
"hostId": "23998907",
"active": true,
"syncEnabled": true,
"primary": true,
"markup": "0.16",
"createdAt": "2024-12-15T20:39:07.346Z",
"amenities": [
{ "id": "WIFI", "isPresent": true, "name": "Wifi", "category": "common" },
{ "id": "POOL", "isPresent": true, "name": "Pool", "category": "outdoors" }
],
"accessibilityAmenities": []
}
]
}
],
"pagination": { "nextCursor": null, "hasMore": false, "total": 1 }
}AI