Airbnb API: complete guide to every endpoint
Every endpoint, what it is for, every parameter and a real example answer. Base URL https://airbnb74.p.rapidapi.com. Send your key in X-RapidAPI-Key and the host in X-RapidAPI-Host. Every answer is HTTP 200 with status, message and data; check status.
Typical journey: Search Stay Destinations gives a placeId → Search Stays gives listingIds → the listing endpoints (details, photos, amenities, policies, host, pricing, reviews, availability calendar). Get your API key.
Stays
Search Airbnb homes and read every part of a listing page.
Contents
- Stays (14): Search Stay Destinations, Get Suggested Destinations, Get Place Boundary, Get Stay Price Trends, Search Stays, Get Stay Search Filters, Get Stay Details, Get Stay Amenities, Get Stay Photos, Get Stay Policies, Get Stay Host, Get Stay Pricing, Get Stay Reviews, Get Stay Availability Calendar
- Experiences (9): Search Experience Destinations, Search Experiences, Get Experience Search Filters, Get Experience Details, Get Experience Pricing, Get Experience Sessions, Get Experience Calendar, Get Experience Reviews, Get Similar Experiences
- Services (10): Search Service Destinations, Get Service Types, Search Services, Get Service Search Filters, Get Service Details, Get Service Offerings, Get Service Location, Get Service Calendar, Get Service Time Slots, Get Service Reviews
- Profiles (3): Get Profile Details, Get Profile Past Locations, Get Profile Reviews
- Home (2): Get Home Tabs, Get Home Feed
- Common (4): Create Session, Get Languages, Get Currency, Get Server Status
Search Stay Destinations
GET /api/v1/stays/autocomplete
Find a place from typed text
Type the first letters of a city, area or landmark and get matching places.
- Use the placeId of a place in Search Stays.
- Works from the first letter. Returns up to 10 places (default 5).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | yes | The text typed, for example Lond. | |
limit | integer (1..10) | no | 5 | How many places, 1 to 10. Default 5. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/autocomplete?query=Paris' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Places found",
"data": {
"count": 5,
"places": [
{
"name": "Paris, France",
"type": "LOCATION",
"placeId": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"acpId": "db9f8d81-98a0-4f97-8e5f-51f6987effdb",
"query": "Paris, France",
"countryCode": "FR",
"placeTypes": [
"locality",
"political"
],
"boundingBox": {
"southWestLatitude": 48.8155622,
"southWestLongitude": 2.2242171,
"northEastLatitude": 48.9021476,
"northEastLongitude": 2.4698511
}
},
{
"name": "Eiffel Tower",
"type": "LOCATION",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"acpId": "134159b3-4f48-4163-807a-14b67547bca0",
"query": "Eiffel Tower, Paris, France",
"countryCode": "FR",
"placeTypes": [
"establishment",
"point_of_interest"
],
"boundingBox": {
"southWestLatitude": 48.8566838197085,
"southWestLongitude": 2.2934008,
"northEastLatitude": 48.8593817802915,
"northEastLongitude": 2.296314600000001
}
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "query",
"message": "\"query\" is required: the text the user typed"
}
]
}
Get Suggested Destinations
GET /api/v1/stays/suggested-destinations
Suggested destinations
The destinations Airbnb shows on its "Where?" screen before anything is typed.
- Returns two lists: recent (searches made with this session) and suggested (about 20 places).
- Every place has a placeId for Search Stays and an openWith call that is ready to send.
- The list depends on the server location, so use it as a starting list, not as a nearby search.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
latitude | number | no | With longitude. -90 to 90 | |
longitude | number | no | With latitude. -180 to 180 | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/suggested-destinations' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Suggested destinations",
"data": {
"nearby": {
"name": "Nearby",
"reason": "Find what’s around you",
"latitude": 18.98,
"longitude": 72.83,
"iconUrl": "https://a0.muscache.com/im/pictures/airbnb-platform-assets/AirbnbPlatformAssets-hawaii-autosuggest-destination-icons-2/original/ea5e5ee3-e9d8-48a1-b7e9-1003bf6…"
},
"count": 20,
"sections": [
{
"type": "recent",
"title": "Recent searches",
"places": [],
"count": 0
},
{
"type": "suggested",
"title": "Suggested destinations",
"places": [
{
"name": "Mumbai, Maharashtra",
"reason": "For sights like Gateway of India",
"placeId": "ChIJwe1EZjDG5zsRaYxkjY_tpF0",
"query": "Mumbai, Maharashtra",
"checkIn": null,
"checkOut": null,
"adults": null,
"filters": [],
"countryCode": "IN",
"iconUrl": "https://a0.muscache.com/im/pictures/airbnb-platform-assets/AirbnbPlatformAssets-hawaii-autosuggest-destination-icons-1/original/ebb968b2-3fb6-45d3-b675-7765e48…",
"openWith": {
"endpoint": "/stays/search",
"params": [
{
"name": "placeId",
"value": "ChIJwe1EZjDG5zsRaYxkjY_tpF0"
}
]
}
},
{
"name": "North Goa, Goa",
"reason": "Popular beach destination",
"placeId": "ChIJMaD6Uu3AvzsR0E3VfowKzRs",
"query": "North Goa, Goa",
"checkIn": null,
"checkOut": null,
"adults": null,
"filters": [],
"countryCode": "IN",
"iconUrl": "https://a0.muscache.com/im/pictures/airbnb-platform-assets/AirbnbPlatformAssets-hawaii-autosuggest-destination-icons-1/original/06f0f050-c167-4d1e-89e1-2775be9…",
"openWith": {
"endpoint": "/stays/search",
"params": [
{
"name": "placeId",
"value": "ChIJMaD6Uu3AvzsR0E3VfowKzRs"
}
]
}
}
],
"count": 20
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "languageCode",
"message": "\"languageCode\" \"xx-INVALID\" is not supported. See GET /common/languages for the codes."
}
]
}
Get Place Boundary
GET /api/v1/stays/place-boundary
Outline of a city or area
The border of a place as a GeoJSON polygon, to draw the area on a map.
- Get the acpId from Search Stay Destinations.
- Some places have no outline; then status is false.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
acpId | string | yes | Airbnb's id of the place, from GET /stays/autocomplete, e.g. 4360b783-7c07-41a0-a227-a17d1c3d3895 |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/place-boundary?acpId=4360b783-7c07-41a0-a227-a17d1c3d3895' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Place boundary",
"data": {
"acpId": "4360b783-7c07-41a0-a227-a17d1c3d3895",
"pointCount": 572,
"boundingBox": {
"southWestLatitude": 51.28678,
"southWestLongitude": -0.51033,
"northEastLatitude": 51.69176,
"northEastLongitude": 0.3339
},
"boundary": {
"type": "Polygon",
"coordinates": [
[
[
-0.49953,
51.48726
],
[
-0.49505,
51.49233
]
]
]
}
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "acpId",
"message": "\"acpId\" is required: the `acpId` of a place from GET /stays/autocomplete"
}
]
}
Get Stay Price Trends
GET /api/v1/stays/price-trends
Cheaper and dearer dates for a place
Shows which dates are cheaper (LOW) or dearer (HIGH) for a place, like the Airbnb date picker.
- Send placeId or query. Coordinates alone are not enough.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
placeId | string | no | The exact place: the placeId from the autocomplete endpoint. Enough on its own. | |
query | string | no | Place name, for example London, United Kingdom. Prefer placeId; send either one. | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/price-trends?query=Paris' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Price trends",
"data": {
"count": 71,
"dates": [
{
"date": "2026-11-01",
"level": "LOW"
},
{
"date": "2026-11-08",
"level": "LOW"
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "languageCode",
"message": "\"languageCode\" \"xx-INVALID\" is not supported. See GET /common/languages for the codes."
},
{
"field": "",
"message": "Either \"query\" or \"placeId\" is required (from /stays/autocomplete)"
}
]
}
Search Stays
GET /api/v1/stays/search
Search homes
Search Airbnb homes in a place, with dates, guests and filters.
- Send placeId from Search Stay Destinations, or a map area, or a point (latitude and longitude).
- With dates, prices are for the whole stay.
- Up to 40 results per page; send nextCursor as cursor to get the next page.
- To see which filters exist for a search, call Get Stay Search Filters.
- Flexible dates: flexibleDays (1, 2, 3, 7 or 14 days around your dates) or flexibleMonths (1 to 12 months, with flexibleLength).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
placeId | string | no | The exact place: the placeId from the autocomplete endpoint. Enough on its own. | |
query | string | no | Place name, for example London, United Kingdom. Prefer placeId; send either one. | |
northEastLatitude | number | no | Map area: top-right corner latitude. Send all four corners; the area beats placeId and query | |
northEastLongitude | number | no | Map area: top-right corner longitude | |
southWestLatitude | number | no | Map area: bottom-left corner latitude (below northEastLatitude) | |
southWestLongitude | number | no | Map area: bottom-left corner longitude | |
latitude | number | no | Stays around a point (send with longitude; not with a map area) | |
longitude | number | no | Stays around a point (send with latitude) | |
flexibleDays | enum: 1, 2, 3, 7, 14 | no | Dates flexible by this many days before and after checkIn/checkOut: 1, 2, 3, 7 or 14 (needs checkIn and checkOut) | |
flexibleMonths | string | no | Flexible dates: comma separated month names, 1 to 12, e.g. December,January (instead of checkIn/checkOut) | |
flexibleLength | enum: weekend, week, month | no | With flexibleMonths: weekend, week or month (default week) | |
checkIn | string | no | YYYY-MM-DD (send with checkOut) | |
checkOut | string | no | YYYY-MM-DD, after checkIn (send with checkIn) | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
pets | integer (0..5) | no | 0 to 5 | |
priceMin | integer (0..1000000) | no | Lowest price (whole stay when dates are sent, else per night), in currencyCode | |
priceMax | integer (0..1000000) | no | Highest price, in currencyCode; not below priceMin | |
minBedrooms | integer (0..16) | no | At least this many bedrooms, 0 to 16 | |
minBeds | integer (0..16) | no | At least this many beds, 0 to 16 | |
minBathrooms | integer (0..16) | no | At least this many bathrooms, 0 to 16 | |
superhost | boolean | no | true = only Superhosts | |
instantBook | boolean | no | true = only Instant Book listings | |
guestFavorite | boolean | no | true = only Guest favourites | |
freeCancellation | boolean | no | true = only flexible-cancellation listings | |
discounted | boolean | no | true = only listings with a discount | |
luxe | boolean | no | true = only Airbnb Luxe | |
minRating | number (0..5) | no | Lowest review score, 0 to 5 | |
tags | string | no | Category tags separated by commas, for example Tag:9613 (hotels). Values come from the home feed tiles. | |
neighborhoodIds | string | no | Neighbourhood ids separated by commas, from the neighbourhoods section of Get Stay Search Filters. | |
bathroomPrivacy | string | no | Bathroom type, from Get Stay Search Filters. ENSUITE = private attached bathroom. | |
roomTypes | string | no | Comma separated: Entire home/apt, Private room, Hotel room, Shared room | |
amenities | string | no | Comma separated amenity ids from GET /stays/search-filters (all must be present) | |
propertyTypeIds | string | no | Comma separated property type ids from GET /stays/search-filters | |
hostLanguages | string | no | Comma separated language codes the host speaks, e.g. en,fr | |
limit | integer (2..40) | no | 16 | Listings per page, 2 to 40 (default 16) |
cursor | string | no | The nextCursor of the previous answer, to get the next page. | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/search?placeId=ChIJD7fiBh9u5kcRYJSMaMOCCwQ&checkIn=2026-12-25&checkOut=2026-12-27&adults=2&limit=16' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Stays found",
"data": {
"totalCount": 5102,
"resultCount": 16,
"nextCursor": "eyJzZWN0aW9uX29mZnNldCI6MCwiaXRlbXNfb2Zmc2V0IjoxNiwidmVyc2lvbiI6MX0=",
"searchSummary": {
"location": "Paris",
"dates": "25–27 Dec",
"guests": "2 guests"
},
"listings": [
{
"listingId": "1782511868597718033",
"url": "https://www.airbnb.com/rooms/1782511868597718033",
"title": "Flat in Paris",
"name": "Cosy haven at the foot of Montmartre",
"city": "Paris",
"latitude": 48.88282,
"longitude": 2.34724,
"rating": 5,
"reviewCount": 6,
"ratingText": "5.0 (6)",
"badges": [
{
"type": "GUEST_FAVORITE",
"text": "Guest favourite"
}
],
"details": [
{
"type": "BEDINFO",
"text": "1 bedroom"
},
{
"type": "BEDINFO",
"text": "1 queen bed"
}
],
"highlights": [],
"photos": [
{
"photoId": "2832465134",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/334f8d37-fc88-49a0-9d66-234c2258dcfb.jpeg?media_domain=LISTING&media_identifie…",
"aspectRatio": 1.5009380863039399
},
{
"photoId": "2832465151",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/592cd3cc-55f1-48a1-b94e-3d70c70d00a0.jpeg?media_domain=LISTING&media_identifie…",
"aspectRatio": 1.5009380863039399
}
],
"price": {
"price": "$270 USD",
"amount": 270,
"originalPrice": null,
"originalAmount": null,
"qualifier": "total",
"description": "$270 USD total",
"notes": [],
"breakdown": [
{
"description": "2 nights x $134.61 USD",
"price": "$269.22 USD",
"originalPrice": null
}
]
},
"paymentMessages": [
{
"type": "PAY_ZERO_UPFRONT_HIGHLIGHT",
"text": "Pay $0 today"
},
{
"type": "FREE_CANCELLATION_HIGHLIGHT",
"text": "Free cancellation"
}
],
"bedCount": 1
},
{
"listingId": "1212974164442514613",
"url": "https://www.airbnb.com/rooms/1212974164442514613",
"title": "Room in Paris",
"name": "1 room shared bathroom, Arc de Triomphe, metro 1",
"city": "Paris",
"latitude": 48.8757,
"longitude": 2.2894,
"rating": 4.87,
"reviewCount": 107,
"ratingText": "4.87 (107)",
"badges": [],
"details": [
{
"type": "BEDINFO",
"text": "1 sofa bed"
}
],
"highlights": [],
"photos": [
{
"photoId": "2018983205",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-U3RheVN1cHBseUxpc3Rpbmc6MTIxMjk3NDE2NDQ0MjUxNDYxMw%3D%3D/original/677df45b-6726-4169-95c3-fe3b9972c1fc.png?…",
"aspectRatio": 0.7515151515151515
},
{
"photoId": "2018983209",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-U3RheVN1cHBseUxpc3Rpbmc6MTIxMjk3NDE2NDQ0MjUxNDYxMw%3D%3D/original/1d31120c-8465-41f5-b07c-06e1191bd8f6.png?…",
"aspectRatio": 1.3349494949494949
}
],
"price": {
"price": "$265 USD",
"amount": 265,
"originalPrice": null,
"originalAmount": null,
"qualifier": "total",
"description": "$265 USD total",
"notes": [],
"breakdown": [
{
"description": "2 nights x $132.36 USD",
"price": "$264.72 USD",
"originalPrice": null
}
]
},
"paymentMessages": [
{
"type": "PAY_ZERO_UPFRONT_HIGHLIGHT",
"text": "Pay $0 today"
},
{
"type": "FREE_CANCELLATION_HIGHLIGHT",
"text": "Free cancellation"
}
],
"bedCount": 1
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "languageCode",
"message": "\"languageCode\" \"xx-INVALID\" is not supported. See GET /common/languages for the codes."
},
{
"field": "",
"message": "Send a place (\"placeId\" from GET /stays/autocomplete, or \"query\" free text), a map area (northEast/southWest latitude and longitude), or a point (latitude, longitude): at least one of them"
}
]
}
Get Stay Search Filters
GET /api/v1/stays/search-filters
Filters available for a search
The live filter menu for a search: sections, options, result counts and the parameter each option sets.
- Takes the same place, dates and guests as Search Stays.
- To apply an option, send its searchParam name with its value to Search Stays. Several options of one section are comma separated.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
placeId | string | no | The exact place: the placeId from the autocomplete endpoint. Enough on its own. | |
query | string | no | Place name, for example London, United Kingdom. Prefer placeId; send either one. | |
checkIn | string | no | YYYY-MM-DD (send with checkOut) | |
checkOut | string | no | YYYY-MM-DD, after checkIn (send with checkIn) | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/search-filters?placeId=ChIJD7fiBh9u5kcRYJSMaMOCCwQ' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Search filters",
"data": {
"totalCount": 4131,
"sections": [
{
"sectionId": "PRICE_RANGE",
"title": "Price range",
"options": [
{
"kind": "price-range",
"title": "$50 USD - $2,700 USD",
"subtitle": "Trip price, includes all fees",
"params": [
{
"key": "price_min",
"value": null,
"valueType": "integer",
"searchParam": "priceMin",
"remove": false
},
{
"key": "price_max",
"value": null,
"valueType": "integer",
"searchParam": "priceMax",
"remove": false
}
],
"minValue": 50,
"maxValue": 2700,
"histogram": [
0,
0
]
}
]
},
{
"sectionId": "ROOM_TYPE",
"title": null,
"options": [
{
"kind": "choice",
"title": "Any",
"subtitle": null,
"params": [
{
"key": "kg_and_tags",
"value": "Tag:9613",
"valueType": "array",
"searchParam": "tags",
"remove": true
}
]
},
{
"kind": "choice",
"title": "Home",
"subtitle": null,
"params": [
{
"key": "room_types",
"value": "Entire home/apt",
"valueType": "array",
"searchParam": "roomTypes",
"remove": false
},
{
"key": "kg_and_tags",
"value": "Tag:9613",
"valueType": "array",
"searchParam": "tags",
"remove": true
}
]
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "languageCode",
"message": "\"languageCode\" \"xx-INVALID\" is not supported. See GET /common/languages for the codes."
},
{
"field": "",
"message": "Send \"placeId\" (exact, from GET /stays/autocomplete) or \"query\" (free text such as Paris, France): at least one of them"
}
]
}
Get Stay Details
GET /api/v1/stays/details
Listing details
The listing page: title, rating, highlights, description, location and house facts.
- Get the listingId from Search Stays.
- An unknown id returns status:false.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
listingId | string | yes | The listingId of a search result, e.g. 1772056939923148193 | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/details?listingId=1782511868597718033' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Listing details",
"data": {
"listingId": "1782511868597718033",
"url": "https://www.airbnb.co.uk/rooms/1782511868597718033",
"title": "Cosy haven at the foot of Montmartre",
"heading": "Entire rental unit in Paris, France",
"propertyType": "APARTMENT",
"propertyTypeText": "Entire rental unit",
"city": "Paris",
"shareUrl": "https://www.airbnb.co.uk/rooms/1782511868597718033?unique_share_id=91c06426-1434-4831-be0c-5b8adc0e54da&viralityEntryPoint=1&s=76",
"shareImageUrl": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/334f8d37-fc88-49a0-9d66-234c2258dcfb.jpeg?media_domain=LISTING&media_identifie…",
"spaceType": "ENTIRE_HOME",
"maxGuests": 2,
"summary": [
"2 guests",
"1 bedroom"
],
"description": "Welcome to our Parisian haven, ideally located just a stone's throw from Montmartre and the Sacré-Cœur.\nCompletely renovated and carefully furnished, this stud…",
"byline": null,
"sourceLanguage": "fr",
"highlights": [
{
"type": "LISTING_CUSTOM_OFFLINE_GENERATED",
"icon": "SYSTEM_CITY",
"headline": "In Montmartre, near Sacré-Cœur",
"text": "About a 10-min walk to Sacré-Cœur, with Square Louise Michel and Place des Abbesses along the way."
},
{
"type": "LISTING_CUSTOM_OFFLINE_GENERATED",
"icon": "SYSTEM_FORK_SPOON",
"headline": "Kitchenette and washer included",
"text": "A Nespresso machine, kitchenette, and washer make it easy to settle in for a weekend or longer."
}
],
"isGuestFavorite": true,
"isNewListing": false,
"isLuxe": false,
"rating": {
"average": 5,
"count": 6,
"categories": [
{
"category": "CLEANLINESS",
"label": "Cleanliness",
"rating": 5,
"share": 1
},
{
"category": "ACCURACY",
"label": "Accuracy",
"rating": 5,
"share": 1
}
],
"distribution": [
{
"stars": 5,
"count": null,
"share": 1,
"text": "100%"
},
{
"stars": 4,
"count": null,
"share": 0,
"text": "0%"
}
],
"tags": [
{
"tag": "GETTING_AROUND",
"label": "Getting around",
"count": 3
},
{
"tag": "WALKABILITY",
"label": "Walkability",
"count": 2
}
],
"reviewSorts": [
{
"sort": "BEST_QUALITY",
"label": "Most relevant"
},
{
"sort": "MOST_RECENT",
"label": "Most recent"
}
]
},
"host": {
"name": "Anita",
"isSuperhost": false,
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User-13287163/original/09514d8c-64dc-401a-8ce5-d01df1b9a303.jpeg",
"userId": "13287163",
"contextualUserId": "1462907809019481093",
"summary": [
"10 years hosting"
]
},
"location": {
"name": null,
"address": null,
"subtitle": "Paris, Île-de-France, France",
"country": "France",
"latitude": 48.88282,
"longitude": 2.34724,
"isExactLocation": false,
"isVerified": false,
"about": []
},
"guestLimits": null
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "listingId",
"message": "\"listingId\" is required: the number from search results"
}
]
}
Get Stay Amenities
GET /api/v1/stays/amenities
Listing amenities
All amenities of a listing, grouped, including the ones that are not available.
- Get the listingId from Search Stays.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
listingId | string | yes | The listingId of a search result, e.g. 1772056939923148193 | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/amenities?listingId=1782511868597718033' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Amenities",
"data": {
"title": "What this place offers",
"count": 34,
"popular": [
{
"amenityId": "pdp_v3_kitchen_dining_8_1782511868597718033-0",
"title": "Kitchen",
"available": true,
"icon": "SYSTEM_COOKING_BASICS",
"note": ""
},
{
"amenityId": "pdp_v3_internet_office_4_1782511868597718033-0",
"title": "Wifi",
"available": true,
"icon": "SYSTEM_WI_FI",
"note": ""
}
],
"groups": [
{
"groupId": "pdp_v3_bathroom_1782511868597718033",
"title": "Bathroom",
"amenities": [
{
"amenityId": "pdp_v3_bathroom_45_1782511868597718033-0",
"title": "Hairdryer",
"available": true,
"icon": "SYSTEM_HAIRDRYER",
"note": ""
},
{
"amenityId": "pdp_v3_bathroom_665_1782511868597718033-0",
"title": "Cleaning products",
"available": true,
"icon": "SYSTEM_CLEANING_SUPPLIES",
"note": ""
}
]
},
{
"groupId": "pdp_v3_bedroom_laundry_1782511868597718033",
"title": "Bedroom and laundry",
"amenities": [
{
"amenityId": "pdp_v3_bedroom_laundry_33_1782511868597718033-0",
"title": "Washing machine",
"available": true,
"icon": "SYSTEM_WASHER",
"note": ""
},
{
"amenityId": "pdp_v3_bedroom_laundry_34_1782511868597718033-0",
"title": "Tumble dryer",
"available": true,
"icon": "SYSTEM_DRYER",
"note": ""
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "listingId",
"message": "\"listingId\" is required: the number from search results"
}
]
}
Get Stay Photos
GET /api/v1/stays/photos
Listing photos
Every photo of a listing with its caption, grouped by room.
- Get the listingId from Search Stays.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
listingId | string | yes | The listingId of a search result, e.g. 1772056939923148193 | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/photos?listingId=1782511868597718033' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Photos",
"data": {
"count": 7,
"photos": [
{
"photoId": "2832465134",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/334f8d37-fc88-49a0-9d66-234c2258dcfb.jpeg?media_domain=LISTING&media_identifie…",
"caption": null,
"aspectRatio": 1.5009380863039399
},
{
"photoId": "2832465151",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/592cd3cc-55f1-48a1-b94e-3d70c70d00a0.jpeg?media_domain=LISTING&media_identifie…",
"caption": null,
"aspectRatio": 1.5009380863039399
}
],
"rooms": [
{
"stopId": "1782511868597718033-space-831934820",
"name": "Full kitchen",
"descriptions": [],
"photos": [
{
"photoId": "2832465151",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/592cd3cc-55f1-48a1-b94e-3d70c70d00a0.jpeg?media_domain=LISTING&media_identifie…",
"caption": null,
"aspectRatio": 1.5009380863039399
},
{
"photoId": "2832465178",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/8ea9010b-7994-48e4-ade7-f6bf0c658014.jpeg?media_domain=LISTING&media_identifie…",
"caption": null,
"aspectRatio": 1.5009380863039399
}
]
},
{
"stopId": "1782511868597718033-space-830202401",
"name": "Bedroom",
"descriptions": [
"Queen bed",
"Cot"
],
"photos": [
{
"photoId": "2832465134",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/334f8d37-fc88-49a0-9d66-234c2258dcfb.jpeg?media_domain=LISTING&media_identifie…",
"caption": null,
"aspectRatio": 1.5009380863039399
},
{
"photoId": "2832465139",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/f41df69f-5987-4dbd-b3c7-63c43720cf79.jpeg?media_domain=LISTING&media_identifie…",
"caption": null,
"aspectRatio": 1.5009380863039399
}
]
}
],
"sleeping": [
{
"stopId": "1782511868597718033-space-830202401",
"name": "Bedroom",
"descriptions": [
"1 queen bed",
"1 cot"
],
"photos": [
{
"photoId": "2832465134",
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-1782511868597718033/original/334f8d37-fc88-49a0-9d66-234c2258dcfb.jpeg?media_domain=LISTING&media_identifie…",
"caption": null,
"aspectRatio": 1.5009380863039399
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "listingId",
"message": "\"listingId\" is required: the number from search results"
}
]
}
Get Stay Policies
GET /api/v1/stays/policies
House rules and cancellation policy
House rules, safety information and cancellation policy of a listing.
- Send checkIn and checkOut to get the cancellation timeline with real dates.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
listingId | string | yes | The listingId of a search result, e.g. 1772056939923148193 | |
checkIn | string | no | YYYY-MM-DD (send with checkOut) | |
checkOut | string | no | YYYY-MM-DD, after checkIn (send with checkIn) | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/policies?listingId=1782511868597718033' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Policies",
"data": {
"summary": [
{
"type": "CHECK_IN_CHECK_OUT",
"title": "Check in after 15:00",
"lines": [
"Check out before 11:00",
"Self check-in with keypad"
]
},
{
"type": "HOUSE_RULES",
"title": "House rules and requests",
"lines": [
"Review these details for a smooth stay."
]
}
],
"bookingRequirements": null,
"houseRules": {
"title": "House rules and requests",
"description": "You’ll be staying in someone’s home, so please treat it with care and respect.",
"groups": [
{
"type": "HOUSE_RULES_STRUCTURED_RULES",
"title": "House rules",
"subtitle": "These things are required to book this place.",
"items": [
{
"type": "HOUSE_RULES_PERSON_CAPACITY",
"icon": "SYSTEM_FAMILY",
"title": "Up to 2 overnight guests",
"description": null
},
{
"type": "HOUSE_RULES_PETS",
"icon": "SYSTEM_NO_PETS",
"title": "No pets",
"description": "Service animals only"
}
]
},
{
"type": "HOUSE_RULES_HOST_REQUESTS",
"title": "Host requests",
"subtitle": "The host asks that you follow these requests.",
"items": [
{
"type": "HOUSE_RULES_ADDITIONAL_RULES",
"icon": "SYSTEM_HOUSE",
"title": "During the stay",
"description": "For everyone's comfort, the place is completely non-smoking. Smoking or vaping is also prohibited in the building's courtyard.\nWe would be grateful if you coul…"
},
{
"type": "HOUSE_RULES_ADDITIONAL_REQUESTS",
"icon": "SYSTEM_CHECK_IN",
"title": "Before checkout",
"description": "Please wash and put away your dishes and take out your rubbish."
}
]
}
]
},
"safetyAndProperty": {
"title": "Safety & property",
"description": "Avoid surprises by looking over these important details about your host’s property.",
"groups": [
{
"type": null,
"title": "Safety devices",
"subtitle": null,
"items": [
{
"type": null,
"icon": "SYSTEM_NO_DETECTOR_CO2",
"title": "Carbon monoxide alarm not reported",
"description": "The Host hasn’t reported a carbon monoxide alarm on the property. We suggest bringing a portable detector for your trip."
},
{
"type": null,
"icon": "SYSTEM_DETECTOR_SMOKE",
"title": "Smoke alarm installed",
"description": null
}
]
}
]
},
"cancellationPolicy": {
"policyId": 16,
"name": "Limited",
"title": "Add your trip dates to get the cancellation details for this stay.",
"rules": [
"Cleaning fees are always refunded if the reservation is cancelled before check-in.",
"The Airbnb service fee is refundable up to 3 times per year if the guest cancels at least 14 days before check-in. If booked less than 14 days before check-in,…"
],
"timeline": [],
"notes": []
}
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "listingId",
"message": "\"listingId\" is required: the number from search results"
}
]
}
Get Stay Host
GET /api/v1/stays/host
Host of a listing
The "Meet your host" section: name, Superhost status, years hosting, response rate and co-hosts.
- To open the host profile, send the long contextualUserId to Get Profile Details. Co-hosts have their own contextualUserId.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
listingId | string | yes | The listingId of a search result, e.g. 1772056939923148193 | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/host?listingId=1782511868597718033' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Host",
"data": {
"name": "Anita",
"userId": "13287163",
"contextualUserId": "1462907809019481093",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User-13287163/original/09514d8c-64dc-401a-8ce5-d01df1b9a303.jpeg",
"isSuperhost": false,
"isVerified": true,
"isAirbnbManaged": false,
"title": "Host",
"hostingYears": 10,
"hostingMonths": 3,
"rating": 4.58,
"reviewCount": 64,
"about": null,
"responseRate": "Response rate: 97%",
"responseTime": "Responds within an hour",
"canBeMessaged": true,
"highlights": [
{
"type": null,
"icon": "SYSTEM_GLOBE_STAND",
"text": "Lives in Paris, France"
}
],
"coHosts": [
{
"name": "Jules",
"contextualUserId": "1462896905081230599",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/1d8516d8-be58-422e-9b2d-924910d503b6.jpg?aki_policy=profile_x_medium"
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "listingId",
"message": "\"listingId\" is required: the number from search results"
}
]
}
Get Stay Pricing
GET /api/v1/stays/pricing
Price for your dates
The price of a listing for your dates and guests, with the full breakdown (nightly rate, fees, taxes).
- Without checkIn and checkOut there is no price: data.price is null.
- Infants do not change the price.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
listingId | string | yes | The listingId of a search result, e.g. 1772056939923148193 | |
checkIn | string | no | YYYY-MM-DD (send with checkOut) | |
checkOut | string | no | YYYY-MM-DD, after checkIn (send with checkIn) | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
pets | integer (0..5) | no | 0 to 5 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/pricing?listingId=1782511868597718033&checkIn=2026-12-25&checkOut=2026-12-27&adults=2' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Price for the stay",
"data": {
"available": true,
"canInstantBook": false,
"unavailabilityReason": null,
"unavailabilityMessage": null,
"dates": "25–27 Dec",
"price": "$281 USD",
"amount": 281,
"originalPrice": null,
"originalAmount": null,
"qualifier": "total",
"description": "$281 USD total",
"breakdown": [
{
"description": "2 nights x $134.61 USD",
"price": "$269.22 USD",
"amount": 269.22,
"originalPrice": null
},
{
"description": "Taxes",
"price": "$11.67 USD",
"amount": 11.67,
"originalPrice": null
}
],
"cancellationNote": "Free cancellation before 11 December",
"tip": {
"type": "PAY_ZERO_UPFRONT",
"title": "$0 today · Free cancellation"
},
"announcement": {
"type": "PRICE_TRANSPARENCY_FEE_INCLUSIVE",
"title": "Prices include all fees"
},
"guestLimits": null
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "listingId",
"message": "\"listingId\" is required: the number from search results"
}
]
}
Get Stay Reviews
GET /api/v1/stays/reviews
Listing reviews
Guest reviews of a listing, page by page.
- Use limit (1 to 50) and offset to page. Sort with sortBy.
- tag narrows the reviews to a topic from the "Guests mention" list in the answer.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
listingId | string | yes | The listingId of a search result, e.g. 1772056939923148193 | |
limit | integer (1..50) | no | 20 | 1 to 50 (default 20) |
offset | integer (0..100000) | no | 0 | Reviews to skip (default 0) |
sortBy | enum: MOST_RECENT, RATING_DESC, RATING_ASC | no | MOST_RECENT, RATING_DESC or RATING_ASC | |
tag | string | no | A review topic, e.g. LOCATION | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/reviews?listingId=1782511868597718033&limit=10' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Reviews found",
"data": {
"totalCount": 6,
"resultCount": 6,
"tags": [
{
"tag": "GETTING_AROUND",
"label": "Getting around",
"count": 3,
"iconUrl": "https://a0.muscache.com/im/pictures/AirbnbPlatformAssets/AirbnbPlatformAssets-Review-AI-Synthesis/original/1d5a4065-220e-4d80-b44f-019dd4a0ae68.png",
"summary": null
},
{
"tag": "WALKABILITY",
"label": "Walkability",
"count": 2,
"iconUrl": "https://a0.muscache.com/im/pictures/AirbnbPlatformAssets/AirbnbPlatformAssets-Review-AI-Synthesis/original/65e4ab99-d873-45c7-95a4-cd0c55a2314f.png",
"summary": null
}
],
"reviews": [
{
"reviewId": "1803513440490287309",
"createdAt": "2026-10-24T08:59:15Z",
"date": "2 days ago",
"rating": 5,
"room": null,
"comment": "Very nice little studio in a very quiet area.",
"originalComment": "Petit studio très agréable dans un quartier très calme.",
"language": "fr",
"translatedNotice": "Translated from French",
"highlight": "Stayed a few nights",
"highlightType": "LENGTH_OF_STAY",
"reviewer": {
"userId": "84385726",
"contextualUserId": "1481740716537702421",
"name": "Lionel",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/3ea4193d-6fbe-4ab2-8ceb-e06548b0b2f8.jpg",
"isSuperhost": false,
"tenure": "10 years on Airbnb"
},
"host": {
"userId": "13287163",
"contextualUserId": "1462907809019481093",
"name": "Anita",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User-13287163/original/09514d8c-64dc-401a-8ce5-d01df1b9a303.jpeg",
"isSuperhost": false
},
"hostResponse": null,
"respondedDate": null,
"photos": []
},
{
"reviewId": "1799919743846186039",
"createdAt": "2026-10-19T09:59:13Z",
"date": "1 week ago",
"rating": 5,
"room": null,
"comment": "If you want to visit Paris, Monmarte is the neighborhood you want to be and this place was right in the heart. Easily accessible wiyhin 15 minutes walking from…",
"originalComment": "If you want to visit Paris, Monmarte is the neighborhood you want to be and this place was right in the heart. Easily accessible wiyhin 15 minutes walking from…",
"language": "en",
"translatedNotice": null,
"highlight": "Stayed a few nights",
"highlightType": "LENGTH_OF_STAY",
"reviewer": {
"userId": "1783427825424103325",
"contextualUserId": "1783427825483851054",
"name": "Pavlos",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User/original/c1b2b516-263d-4776-91f5-d63946dae83e.jpeg",
"isSuperhost": false,
"tenure": "1 month on Airbnb"
},
"host": {
"userId": "13287163",
"contextualUserId": "1462907809019481093",
"name": "Anita",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User-13287163/original/09514d8c-64dc-401a-8ce5-d01df1b9a303.jpeg",
"isSuperhost": false
},
"hostResponse": null,
"respondedDate": null,
"photos": []
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "listingId",
"message": "\"listingId\" is required: the number from search results"
}
]
}
Get Stay Availability Calendar
GET /api/v1/stays/availability-calendar
Availability calendar
Which days of a listing are free, month by month, with check-in and check-out rules and minimum nights.
- Starts at month and year (default: this month) and covers months months (1 to 12, default 12). The window ends 36 months from now.
- Airbnb sends no price per day; use Get Stay Pricing for a price.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
listingId | string | yes | The listingId of a search result, e.g. 1772056939923148193 | |
month | integer (1..12) | no | 1 to 12 | |
year | integer (2020..2100) | no | e.g. 2026 | |
months | integer (1..12) | no | 12 | How many months, 1 to 12 (default 12) |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/stays/availability-calendar?listingId=1782511868597718033&months=2' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Availability calendar",
"data": {
"listingId": "1782511868597718033",
"firstBookableDate": "2026-10-29",
"constantMinNights": null,
"months": [
{
"month": 10,
"year": 2026,
"days": [
{
"date": "2026-10-01",
"available": false,
"bookable": null,
"canCheckIn": false,
"canCheckOut": false,
"minNights": 1,
"maxNights": 1
},
{
"date": "2026-10-02",
"available": false,
"bookable": null,
"canCheckIn": false,
"canCheckOut": false,
"minNights": 1,
"maxNights": 1
}
]
},
{
"month": 11,
"year": 2026,
"days": [
{
"date": "2026-11-01",
"available": false,
"bookable": false,
"canCheckIn": false,
"canCheckOut": false,
"minNights": 2,
"maxNights": 365
},
{
"date": "2026-11-02",
"available": false,
"bookable": false,
"canCheckIn": false,
"canCheckOut": false,
"minNights": 2,
"maxNights": 365
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "listingId",
"message": "\"listingId\" is required: the number from search results"
}
]
}
Experiences
Search Airbnb Experiences and read their details, prices, sessions and reviews.
Search Experience Destinations
GET /api/v1/experiences/autocomplete
Find a place for experiences
Type the first letters of a city, area or landmark and get matching places.
- Use the placeId in Search Experiences. The ids are the same as in the stays and services lookups.
- Returns up to 10 places (default 5).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | yes | The text typed, for example Lond. | |
limit | integer (1..10) | no | 5 | How many places, 1 to 10. Default 5. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/autocomplete?query=Paris' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Places found",
"data": {
"count": 5,
"places": [
{
"name": "Paris, France",
"type": "LOCATION",
"placeId": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"acpId": "db9f8d81-98a0-4f97-8e5f-51f6987effdb",
"query": "Paris, France",
"countryCode": "FR",
"placeTypes": [
"locality",
"political"
],
"boundingBox": {
"southWestLatitude": 48.8155622,
"southWestLongitude": 2.2242171,
"northEastLatitude": 48.9021476,
"northEastLongitude": 2.4698511
}
},
{
"name": "Eiffel Tower, Paris, France",
"type": "LOCATION",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"acpId": "134159b3-4f48-4163-807a-14b67547bca0",
"query": "Eiffel Tower, Paris, France",
"countryCode": "FR",
"placeTypes": [
"establishment",
"point_of_interest"
],
"boundingBox": {
"southWestLatitude": 48.8566838197085,
"southWestLongitude": 2.2934008,
"northEastLatitude": 48.8593817802915,
"northEastLongitude": 2.296314600000001
}
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "query",
"message": "\"query\" is required: the text the user typed"
}
]
}
Search Experiences
GET /api/v1/experiences/search
Search experiences
Search Airbnb Experiences (tours, classes, activities) in a place.
- Send placeId from Search Experience Destinations. Add dates, guests and filters if you like.
- Up to 40 results per page; send nextCursor as cursor for the next page. Durations are in minutes.
- To see the available filters call Get Experience Search Filters.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
placeId | string | no | The exact place: the placeId from the autocomplete endpoint. Enough on its own. | |
query | string | no | Place name, for example London, United Kingdom. Prefer placeId; send either one. | |
checkIn | string | no | YYYY-MM-DD (send with checkOut) | |
checkOut | string | no | YYYY-MM-DD, after checkIn (send with checkIn) | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
categoryTags | string | no | Comma separated category tags from GET /experiences/search-filters, e.g. Tag:5348 | |
attractionTags | string | no | Attraction tags separated by commas, taken from an attraction tile of the home feed. | |
featuredTags | string | no | Comma separated featured tags | |
ticketTags | string | no | Comma separated ticket tags | |
travelerTags | string | no | Comma separated traveler-type tags | |
accessibilityTags | string | no | Comma separated accessibility tags | |
priceMin | integer (0..1000000) | no | Lowest price per guest, in currencyCode | |
priceMax | integer (0..1000000) | no | Highest price per guest, in currencyCode; not below priceMin | |
minDuration | integer (0..1440) | no | Shortest duration in MINUTES, 0 to 1440 | |
maxDuration | integer (0..1440) | no | Longest duration in MINUTES, 0 to 1440; not below minDuration | |
timeOfDay | string | no | Comma separated: morning, afternoon, evening | |
languages | string | no | Comma separated language ids from GET /experiences/search-filters | |
topRated | boolean | no | true = only top-rated experiences | |
limit | integer (2..40) | no | 16 | Experiences per page, 2 to 40 (default 16) |
cursor | string | no | The nextCursor of the previous answer, to get the next page. | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/search?placeId=ChIJD7fiBh9u5kcRYJSMaMOCCwQ&limit=10' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Experiences found",
"data": {
"totalCount": 1233,
"resultCount": 10,
"nextCursor": "eyJzZWN0aW9uX29mZnNldCI6MCwiaXRlbXNfb2Zmc2V0IjoxMCwidmVyc2lvbiI6MX0=",
"experiences": [
{
"experienceId": "7286500",
"location": null,
"url": "https://www.airbnb.com/experiences/7286500",
"title": "Freeflow cold plunge & sauna at Sant Roch",
"description": "Access all spaces freely and compose your own ritual at your own pace. An autonomous session, ideal for first-timers and regulars. Up to 75 minutes, adjusting …",
"theme": "Wellness",
"rating": 4.87,
"reviewCount": 92,
"durationMinutes": 75,
"badges": [
{
"type": "EXPERIENCE_BADGE_TICKETS",
"text": "Ticket"
}
],
"price": {
"prefix": "From",
"price": "$51 USD",
"amount": 51,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "From $51 USD per guest",
"breakdown": [
{
"description": "Adults",
"price": "$50.48 USD per guest",
"amount": 50.48,
"originalPrice": null
}
],
"notes": [
"Ages 18 and up"
]
},
"paymentMessages": [],
"photos": [
"https://a0.muscache.com/im/pictures/Mt/MtTemplate-7286500/original/52fbfc81-7d17-4611-afdc-04ac6ba8acf8.jpeg",
"https://a0.muscache.com/im/pictures/Mt/MtTemplate-7286500/original/2c9fa3f4-82cf-49fc-8bcc-70402633ffe3.jpeg"
],
"nextSession": null
},
{
"experienceId": "7120471",
"location": null,
"url": "https://www.airbnb.com/experiences/7120471",
"title": "Guided cold plunge & sauna at Sant Roch",
"description": "Learn the principles of contrast therapy, move through guided sauna and cold immersion with breathwork and sound bowls, and share a collective ritual with fell…",
"theme": "Wellness",
"rating": 4.84,
"reviewCount": 310,
"durationMinutes": 75,
"badges": [
{
"type": "EXPERIENCE_BADGE_POPULAR",
"text": "Trending"
}
],
"price": {
"prefix": "From",
"price": "$45 USD",
"amount": 45,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "From $45 USD per guest",
"breakdown": [
{
"description": "Adults",
"price": "$44.87 USD per guest",
"amount": 44.87,
"originalPrice": null
}
],
"notes": [
"Ages 18 and up"
]
},
"paymentMessages": [],
"photos": [
"https://a0.muscache.com/im/pictures/Mt/MtTemplate-7120471/original/0cec0df6-1084-4414-895e-c5a7faa2b9c0.jpeg",
"https://a0.muscache.com/im/pictures/Mt/MtTemplate-7120471/original/d1d1be07-9e0d-4bed-9c08-c65038c17e73.jpeg"
],
"nextSession": null
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "languageCode",
"message": "\"languageCode\" \"xx-INVALID\" is not supported. See GET /common/languages for the codes."
},
{
"field": "",
"message": "Send \"placeId\" (exact, from GET /stays/autocomplete) or \"query\" (free text such as Paris, France): at least one of them"
}
]
}
Get Experience Search Filters
GET /api/v1/experiences/search-filters
Filters available for experiences
The live filter menu for a place: categories, tags, price range, duration, time of day and languages.
- To apply an option, send its searchParam name with its value to Search Experiences.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
placeId | string | no | The exact place: the placeId from the autocomplete endpoint. Enough on its own. | |
query | string | no | Place name, for example London, United Kingdom. Prefer placeId; send either one. | |
checkIn | string | no | YYYY-MM-DD (send with checkOut) | |
checkOut | string | no | YYYY-MM-DD, after checkIn (send with checkIn) | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/search-filters?placeId=ChIJD7fiBh9u5kcRYJSMaMOCCwQ' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Search filters",
"data": {
"totalCount": 1233,
"sections": [
{
"sectionId": "EXPERIENCE_FEATURED",
"title": "Featured",
"options": [
{
"kind": "choice",
"title": "Food culture",
"subtitle": null,
"params": [
{
"key": "experience_featured_tags",
"value": "Tag:41638",
"valueType": "array",
"searchParam": "featuredTags",
"remove": false
}
]
},
{
"kind": "choice",
"title": "Day trips",
"subtitle": null,
"params": [
{
"key": "experience_featured_tags",
"value": "Tag:53594",
"valueType": "array",
"searchParam": "featuredTags",
"remove": false
}
]
}
]
},
{
"sectionId": "TAXONOMY",
"title": "Experience type",
"options": [
{
"kind": "choice",
"title": "Architecture",
"subtitle": null,
"params": [
{
"key": "kg_or_tags",
"value": "Tag:9010",
"valueType": "array",
"searchParam": "categoryTags",
"remove": false
}
]
},
{
"kind": "choice",
"title": "Art workshops",
"subtitle": null,
"params": [
{
"key": "kg_or_tags",
"value": "Tag:8953",
"valueType": "array",
"searchParam": "categoryTags",
"remove": false
}
]
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "languageCode",
"message": "\"languageCode\" \"xx-INVALID\" is not supported. See GET /common/languages for the codes."
},
{
"field": "",
"message": "Send \"placeId\" (exact, from GET /stays/autocomplete) or \"query\" (free text such as Paris, France): at least one of them"
}
]
}
Get Experience Details
GET /api/v1/experiences/details
Experience details
The experience page: description, meeting point, location, hosts, highlights, what to bring, cancellation text, agenda, rating and photos.
- Get the experienceId from Search Experiences.
- Every host has a contextualUserId for the Profiles endpoints.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
experienceId | string | yes | The experienceId of a search result, e.g. 6785604 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/details?experienceId=7286500' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Experience details",
"data": {
"experienceId": "7286500",
"url": "https://www.airbnb.com/experiences/7286500",
"shareUrl": "https://www.airbnb.co.uk/experiences/7286500?viralityEntryP…",
"title": "Freeflow cold plunge & sauna at Sant Roch",
"description": "Access all spaces freely and compose your own ritual at you…",
"meetingPoint": "Sant Roch",
"category": "FITNESS_AND_WELLNESS",
"theme": "Wellness",
"location": {
"city": "Paris",
"address": "75001 Paris, France",
"latitude": 48.86429492284356,
"longitude": 2.331613020237735
},
"guestRequirements": {
"minAge": 18,
"childrenAllowed": false,
"childrenMinAge": 2,
"childrenMaxAge": 12,
"infantsAllowed": false
},
"highlights": [
{
"type": "PROFILE",
"title": "Hosted by Sant Roch or Léa",
"text": "Contrast therapy wellness center",
"imageUrl": "https://a0.muscache.com/im/pictures/user/User/original/e352…"
}
],
"tips": [
{
"type": "PRIVATE_GROUP",
"name": "Private groups welcome"
}
],
"hosts": [
{
"isPrimary": true,
"name": "Sant Roch",
"userId": "1699532318741611226",
"contextualUserId": "1699534166567210655",
"jobTitle": "Host",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User/original/e352…"
}
],
"aboutHost": "At Sant Roch, we believe contrast therapy should be accessi…",
"thingsToKnow": [
{
"type": "WHAT_TO_BRING",
"title": "What to bring",
"text": "Swimsuit",
"icon": "SYSTEM_BACKPACK"
}
],
"vetting": {
"title": "Wellness experiences with knowledgeable hosts",
"text": "Wellness experiences are led by nutritionists, meditation t…"
},
"agendaIntro": "Since antiquity, communal bathing has been a place for rest…",
"agenda": [
{
"title": "Arrive at Sant Roch",
"description": "Pick up your entry ticket and get oriented in the space bef…",
"imageUrl": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-7286500/o…"
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "experienceId",
"message": "\"experienceId\" is required: the `experienceId` of a search result"
}
]
}
Get Experience Pricing
GET /api/v1/experiences/pricing
Experience price
The "from" price of an experience, per guest, with its breakdown.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
experienceId | string | yes | The experienceId of a search result, e.g. 6785604 | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/pricing?experienceId=7286500' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Experience price",
"data": {
"experienceId": "7286500",
"price": {
"prefix": "From",
"price": "$51 USD",
"amount": 51,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "From $51 USD per guest",
"breakdown": [
{
"description": "Adults",
"price": "$50.48 USD per guest",
"amount": 50.48,
"originalPrice": null
}
],
"notes": [
"Ages 18 and up"
]
},
"tips": {
"pdpAboveFooter": {
"description": "Up to 1 day before start time",
"icon": "SYSTEM_CALENDAR",
"name": "Free cancellation",
"type": "FLEX_CANCELLATION"
},
"pdpInsideFooter": {
"name": "Free cancellation",
"type": "FLEX_CANCELLATION"
}
},
"offerings": {
"publishedOfferingsForCount": [
{
"id": "6605559"
}
],
"publishedOfferings": [
{
"id": "6605559",
"pdpWhoIsGoingToInstances": [
{
"pricingAvailabilityDisplay": {
"id": "Fv7EyLoBAA==",
"instanceDay": "Today, 26 October",
"instanceDuration": "16:45–18:00",
"instanceEndTime": "18:00",
"instanceStartTime": "16:45",
"instanceStartTimeUtc": "2026-10-26T15:45:00.000Z",
"isAvailable": false,
"lowRemainingAvailability": false,
"remainingCapacity": 0,
"maximumCapacity": 2
}
},
{
"pricingAvailabilityDisplay": {
"availabilityDescription": "3 spots left",
"id": "Frjhy7oBAA==",
"instanceDay": "Today, 26 October",
"instanceDuration": "21:30–22:45",
"instanceEndTime": "22:45",
"instanceStartTime": "21:30",
"instanceStartTimeUtc": "2026-10-26T20:30:00.000Z",
"isAvailable": true,
"lowRemainingAvailability": true,
"remainingCapacity": 3,
"maximumCapacity": 8
}
}
]
}
]
}
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "experienceId",
"message": "\"experienceId\" is required: the `experienceId` of a search result"
}
]
}
Get Experience Sessions
GET /api/v1/experiences/sessions
Bookable sessions
Bookable sessions of an experience: date, time, remaining seats and price, per offering.
- Set the window with from and to. Only real availability is returned.
- Up to 100 sessions per offering (default 50).
- This API does not book; offeringId and availabilityKey are for reference.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
experienceId | string | yes | The experienceId of a search result, e.g. 6785604 | |
from | string | no | First day, YYYY-MM-DD (default today) | |
to | string | no | Last day, YYYY-MM-DD, not before from, at most 366 days after it (default: a month after from) | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
limit | integer (1..100) | no | 50 | Sessions per offering, 1 to 100 (default 50) |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/sessions?experienceId=7286500&from=2026-10-28&to=2026-12-25' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Sessions",
"data": {
"experienceId": "7286500",
"timeZone": "Europe/Paris",
"city": "Paris",
"offerings": [
{
"offeringId": "6605559",
"maxGuestsPublicGroup": 18,
"maxGuestsPrivateGroup": 18,
"freeForInfants": false,
"hasNextPage": true,
"sessions": [
{
"availabilityKey": "FrTMz7oBAA==",
"day": "Wednesday, 28 October",
"time": "13:30–14:45",
"startTime": "13:30",
"endTime": "14:45",
"startsAtUtc": "2026-10-28T12:30:00.000Z",
"availabilityText": "",
"remainingCapacity": 7,
"soldOut": false,
"lowAvailability": false,
"privateBookable": false,
"onlyPrivateBookable": false,
"price": {
"prefix": null,
"price": "$51 USD",
"amount": 51,
"originalPrice": null,
"originalAmount": null,
"qualifier": "for 1 guest",
"description": "$51 USD for 1 guest",
"breakdown": [
{
"description": "$50.48 USD x 1 adult",
"price": "$50.48 USD",
"amount": 50.48,
"originalPrice": null
}
],
"notes": []
},
"pricePerGuest": {
"prefix": null,
"price": "$51 USD",
"amount": 51,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "$51 USD per guest"
}
},
{
"availabilityKey": "FvDNz7oBAA==",
"day": "Wednesday, 28 October",
"time": "13:45–15:00",
"startTime": "13:45",
"endTime": "15:00",
"startsAtUtc": "2026-10-28T12:45:00.000Z",
"availabilityText": "",
"remainingCapacity": 8,
"soldOut": false,
"lowAvailability": false,
"privateBookable": true,
"onlyPrivateBookable": false,
"price": {
"prefix": null,
"price": "$51 USD",
"amount": 51,
"originalPrice": null,
"originalAmount": null,
"qualifier": "for 1 guest",
"description": "$51 USD for 1 guest",
"breakdown": [
{
"description": "$50.48 USD x 1 adult",
"price": "$50.48 USD",
"amount": 50.48,
"originalPrice": null
}
],
"notes": []
},
"pricePerGuest": {
"prefix": null,
"price": "$51 USD",
"amount": 51,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "$51 USD per guest"
}
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "experienceId",
"message": "\"experienceId\" is required: the `experienceId` of a search result"
}
]
}
Get Experience Calendar
GET /api/v1/experiences/calendar
Experience calendar
Which days an experience has a session.
- The window can be up to 366 days.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
experienceId | string | yes | The experienceId of a search result, e.g. 6785604 | |
from | string | no | First day, YYYY-MM-DD (default today) | |
to | string | no | Last day, YYYY-MM-DD, not before from, at most 366 days after it (default: a month after from) | |
adults | integer (1..16) | no | 1 to 16 |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/calendar?experienceId=7286500' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Availability calendar",
"data": {
"count": 32,
"availableCount": 31,
"days": [
{
"date": "2026-10-26",
"available": true
},
{
"date": "2026-10-27",
"available": true
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "experienceId",
"message": "\"experienceId\" is required: the `experienceId` of a search result"
}
]
}
Get Experience Reviews
GET /api/v1/experiences/reviews
Experience reviews
Guest reviews of an experience, page by page.
- Use limit (1 to 50) and offset to page.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
experienceId | string | yes | The experienceId of a search result, e.g. 6785604 | |
limit | integer (1..50) | no | 20 | 1 to 50 (default 20) |
offset | integer (0..100000) | no | 0 | Reviews to skip (default 0) |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/reviews?experienceId=7286500&limit=5' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Reviews found",
"data": {
"resultCount": 5,
"hasNextPage": true,
"reviews": [
{
"reviewId": "1804517929640523403",
"createdAt": "2026-10-25T18:15:00.374Z",
"date": "Today",
"rating": 5,
"comment": "Very good experience",
"originalComment": "Tres bonne expérience",
"offering": null,
"paidPromotionNotice": null,
"language": "fr",
"reviewer": {
"userId": "1483776458608577863",
"name": "Lucie",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User-296661167/original/e50263e5-fcc9-406e-9e65-53cab0255e6a.jpeg?aki_policy=profile_x_medium",
"location": "Nantes, France"
},
"host": {
"userId": "1699534166567210655",
"name": "Sant Roch",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User/original/e352de93-e172-4774-8cfc-e3f54a90d901.jpeg?aki_policy=profile_x_medium",
"location": null
},
"hostResponse": null,
"respondedAt": null,
"respondedDate": null
},
{
"reviewId": "1804434884897618014",
"createdAt": "2026-10-25T15:30:00.669Z",
"date": "Today",
"rating": 5,
"comment": "Fantastic and relaxing experience in the middle of Paris! We left feeling completely relaxed and rejuvenated.\n\nHighly recommend taking the time to book a sessi…",
"originalComment": "Fantastic and relaxing experience in the middle of Paris! We left feeling completely relaxed and rejuvenated.\n\nHighly recommend taking the time to book a sessi…",
"offering": null,
"paidPromotionNotice": null,
"language": "en-GB",
"reviewer": {
"userId": "1501698887216912922",
"name": "Sam",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/e83dddde-73c3-4144-aa85-822a5d3b9a16.jpg?aki_policy=profile_x_medium",
"location": "Melbourne, Australia"
},
"host": {
"userId": "1699534166567210655",
"name": "Sant Roch",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User/original/e352de93-e172-4774-8cfc-e3f54a90d901.jpeg?aki_policy=profile_x_medium",
"location": null
},
"hostResponse": null,
"respondedAt": null,
"respondedDate": null
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "experienceId",
"message": "\"experienceId\" is required: the `experienceId` of a search result"
}
]
}
Get Similar Experiences
GET /api/v1/experiences/similar
Similar experiences
The "More experiences" row at the bottom of an experience page.
- Each card has an experienceId that opens Get Experience Details.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
experienceId | string | yes | The experienceId of a search result, e.g. 6785604 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/experiences/similar?experienceId=7286500' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Similar experiences",
"data": {
"count": 7,
"experiences": [
{
"experienceId": "7120471",
"location": null,
"url": "https://www.airbnb.com/experiences/7120471",
"title": "Guided cold plunge & sauna at Sant Roch",
"description": null,
"theme": "Wellness",
"rating": 4.84,
"reviewCount": 310,
"durationMinutes": 75,
"badges": [],
"price": {
"prefix": "From",
"price": "$45 USD",
"amount": 45,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "From $45 USD per guest",
"breakdown": [],
"notes": []
},
"paymentMessages": [],
"photos": [
"https://a0.muscache.com/im/pictures/Mt/MtTemplate-7120471/original/0cec0df6-1084-4414-895e-c5a7faa2b9c0.jpeg",
"https://a0.muscache.com/im/pictures/Mt/MtTemplate-7120471/original/d1d1be07-9e0d-4bed-9c08-c65038c17e73.jpeg"
],
"nextSession": null
},
{
"experienceId": "6785604",
"location": null,
"url": "https://www.airbnb.com/experiences/6785604",
"title": "Fast-Access Seine River Cruise from Eiffel Tower",
"description": null,
"theme": "Cultural tours",
"rating": 4.79,
"reviewCount": 4131,
"durationMinutes": 60,
"badges": [],
"price": {
"prefix": "From",
"price": "$24 USD",
"amount": 24,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "From $24 USD per guest",
"breakdown": [],
"notes": []
},
"paymentMessages": [],
"photos": [
"https://a0.muscache.com/im/pictures/Mt/MtTemplate-6785604/original/d19a8935-1762-403c-ad39-05b59bce45fc.jpeg",
"https://a0.muscache.com/im/pictures/Mt/MtTemplate-6785604/original/1361fd0b-75a1-49e6-97bc-4dff634c2c86.jpeg"
],
"nextSession": null
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "experienceId",
"message": "\"experienceId\" is required: the `experienceId` of a search result"
}
]
}
Services
Search Airbnb Services (chefs, photographers and more) and read their details, calendars and time slots.
Search Service Destinations
GET /api/v1/services/autocomplete
Find a place for services
Type the first letters of a city, area or landmark and get matching places.
- Use the placeId in Get Service Types. The ids are the same as in the stays and experiences lookups.
- Returns up to 10 places (default 5).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | yes | The text typed, for example Lond. | |
limit | integer (1..10) | no | 5 | How many places, 1 to 10. Default 5. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/autocomplete?query=Paris' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Places found",
"data": {
"count": 5,
"places": [
{
"name": "Paris, France",
"type": "LOCATION",
"placeId": "ChIJD7fiBh9u5kcRYJSMaMOCCwQ",
"acpId": "db9f8d81-98a0-4f97-8e5f-51f6987effdb",
"query": "Paris, France",
"countryCode": "FR",
"placeTypes": [
"locality",
"political"
],
"boundingBox": {
"southWestLatitude": 48.8155622,
"southWestLongitude": 2.2242171,
"northEastLatitude": 48.9021476,
"northEastLongitude": 2.4698511
}
},
{
"name": "Eiffel Tower, Paris, France",
"type": "LOCATION",
"placeId": "ChIJLU7jZClu5kcR4PcOOO6p3I0",
"acpId": "134159b3-4f48-4163-807a-14b67547bca0",
"query": "Eiffel Tower, Paris, France",
"countryCode": "FR",
"placeTypes": [
"establishment",
"point_of_interest"
],
"boundingBox": {
"southWestLatitude": 48.8566838197085,
"southWestLongitude": 2.2934008,
"northEastLatitude": 48.8593817802915,
"northEastLongitude": 2.296314600000001
}
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "query",
"message": "\"query\" is required: the text the user typed"
}
]
}
Get Service Types
GET /api/v1/services/types
Service types in a place
The kinds of service offered in a place (photography, chefs, massage and more).
- Use the serviceType of a type in Search Services.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
placeId | string | no | The exact place: the placeId from the autocomplete endpoint. Enough on its own. | |
query | string | no | Place name, for example London, United Kingdom. Prefer placeId; send either one. | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/types?placeId=ChIJD7fiBh9u5kcRYJSMaMOCCwQ' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Service types",
"data": {
"place": "Paris",
"count": 9,
"types": [
{
"title": "Photography",
"serviceType": "Tag:8949",
"imageUrl": "https://a0.muscache.com/im/pictures/airbnb-platform-assets/AirbnbPlatformAssets-isometric-images/original/e5fea971-fbfe-41fd-a331-7372b54c4192.png"
},
{
"title": "Chefs",
"serviceType": "Tag:8950",
"imageUrl": "https://a0.muscache.com/im/pictures/airbnb-platform-assets/AirbnbPlatformAssets-isometric-images/original/68fb553b-4706-4f6d-a102-9a7b6e1ebf83.png"
}
],
"partnerServices": [
{
"title": "Car hire",
"imageUrl": "https://a0.muscache.com/im/pictures/AirbnbPlatformAssets/AirbnbPlatformAssets-Restricted_Use_FPO_AI_Assets/original/a182e680-1775-44c6-bb1a-6a9452dd2de4.png"
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "languageCode",
"message": "\"languageCode\" \"xx-INVALID\" is not supported. See GET /common/languages for the codes."
},
{
"field": "",
"message": "Send \"placeId\" (exact, from GET /stays/autocomplete) or \"query\" (free text such as Paris, France): at least one of them"
}
]
}
Search Services
GET /api/v1/services/search
Search services
Search Airbnb Services (chefs, photographers and more) of one type in a place.
- Send placeId and serviceType from Get Service Types.
- Up to 40 results per page; send nextCursor as cursor for the next page.
- To see the available filters call Get Service Search Filters.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
placeId | string | no | The exact place: the placeId from the autocomplete endpoint. Enough on its own. | |
query | string | no | Place name, for example London, United Kingdom. Prefer placeId; send either one. | |
serviceType | string | yes | The kind of service, a tag from GET /services/types, e.g. Tag:8952 | |
checkIn | string | no | A day to check, YYYY-MM-DD | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
priceMin | integer (0..1000000) | no | Lowest price per guest | |
priceMax | integer (0..1000000) | no | Highest price per guest | |
minDuration | integer (0..1440) | no | Shortest duration in minutes | |
maxDuration | integer (0..1440) | no | Longest duration in minutes | |
timeOfDay | string | no | Comma separated: morning, afternoon, evening | |
accessibilityTags | string | no | Accessibility tags separated by commas, from the search filters endpoint. | |
languages | string | no | Comma separated language ids from GET /services/search-filters | |
limit | integer (2..40) | no | 16 | Services per page, 2 to 40 (default 16) |
cursor | string | no | The nextCursor of the previous answer, to get the next page. | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/search?placeId=ChIJD7fiBh9u5kcRYJSMaMOCCwQ&serviceType=Tag%3A8949&limit=10' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Services found",
"data": {
"totalCount": 692,
"resultCount": 10,
"nextCursor": "eyJzZWN0aW9uX29mZnNldCI6MCwiaXRlbXNfb2Zmc2V0IjoxMCwidmVyc2lvbiI6MX0=",
"services": [
{
"serviceId": "1946234",
"url": "https://www.airbnb.com/services/1946234",
"title": "Cinematic photos in Paris by Shithila",
"description": "I provide beautiful cinematic photography in iconic Paris locations.",
"category": "Photography",
"rating": 4.99,
"reviewCount": 1397,
"yearsOfExperience": 9,
"where": "In home",
"duration": null,
"highlight": null,
"host": {
"name": "Shithila",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/ba27605c-11a9-4597-8596-9cc91bc5359b.jpg?aki_policy=profile_x_medium"
},
"badges": [],
"price": {
"prefix": "From",
"price": "$54 USD",
"amount": 54,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "From $54 USD per guest",
"breakdown": [
{
"description": "Mini Photo Session",
"price": "From $53.84 USD per guest",
"amount": 53.84,
"originalPrice": null
}
],
"notes": []
},
"paymentMessages": [],
"photo": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/8c83f3b8-8329-459b-8fad-6aa4f74ffc41.jpeg",
"nextAvailabilityKey": "LBbw75sFGBgyMDI2LTEwLTI3VDA5OjAwOjAwLjAwMFoAAA=="
},
{
"serviceId": "6100522",
"url": "https://www.airbnb.com/services/6100522",
"title": "Eiffel Tower photo sessions by Picster!",
"description": "We're number one in Paris for a reason! With over 10,000 happy customers on all platforms, we know Paris like the back of our hands, and we're super excited to…",
"category": "Photography",
"rating": 4.81,
"reviewCount": 350,
"yearsOfExperience": 3,
"where": null,
"duration": null,
"highlight": null,
"host": {
"name": "Lis",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User/original/4aa0c15a-5804-4ddf-b41a-a0a0c82e48c7.jpeg?aki_policy=profile_x_medium"
},
"badges": [],
"price": {
"prefix": "From",
"price": "$67 USD",
"amount": 67,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ group",
"description": "From $67 USD per group",
"breakdown": [
{
"description": "20 photo session",
"price": "From $66.18 USD per group",
"amount": 66.18,
"originalPrice": null
}
],
"notes": [
"Up to 10 guests"
]
},
"paymentMessages": [],
"photo": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-6100522/original/45281bd5-141e-4fa9-96b9-03eeaf71e037.jpeg",
"nextAvailabilityKey": "LBbWl5kFGBgyMDI2LTEwLTI2VDEzOjQ1OjAwLjAwMFoAAA=="
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "serviceType",
"message": "\"serviceType\" is required: a type tag from GET /services/types, e.g. Tag:8952"
},
{
"field": "",
"message": "Send \"placeId\" (exact, from GET /stays/autocomplete) or \"query\" (free text such as Paris, France): at least one of them"
}
]
}
Get Service Search Filters
GET /api/v1/services/search-filters
Filters available for services
The live filter menu for one service type in a place.
- To apply an option, send its searchParam name with its value to Search Services.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
placeId | string | no | The exact place: the placeId from the autocomplete endpoint. Enough on its own. | |
query | string | no | Place name, for example London, United Kingdom. Prefer placeId; send either one. | |
serviceType | string | yes | The kind of service, a tag from GET /services/types, e.g. Tag:8952 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/search-filters?placeId=ChIJD7fiBh9u5kcRYJSMaMOCCwQ&serviceType=Tag%3A8949' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Search filters",
"data": {
"totalCount": 692,
"sections": [
{
"sectionId": "PRICE_RANGE",
"title": "Price per guest",
"options": [
{
"kind": "price-range",
"title": "$10 USD - $1,300 USD",
"subtitle": "Prices before fees and taxes",
"params": [
{
"key": "service_price_min",
"value": null,
"valueType": "integer",
"searchParam": "priceMin",
"remove": false
},
{
"key": "service_price_max",
"value": null,
"valueType": "integer",
"searchParam": "priceMax",
"remove": false
}
],
"minValue": 10,
"maxValue": 1300,
"histogram": [
0,
0
]
}
]
},
{
"sectionId": "EXPERIENCE_MAX_DURATION",
"title": "Duration",
"options": [
{
"kind": "stepper",
"title": null,
"subtitle": null,
"params": [
{
"key": "min_duration",
"value": null,
"valueType": "integer",
"searchParam": "minDuration",
"remove": false
},
{
"key": "max_duration",
"value": null,
"valueType": "integer",
"searchParam": "maxDuration",
"remove": false
}
],
"minValue": 30,
"maxValue": 300
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "serviceType",
"message": "\"serviceType\" is required: a type tag from GET /services/types"
},
{
"field": "",
"message": "Send \"placeId\" (exact, from GET /stays/autocomplete) or \"query\" (free text such as Paris, France): at least one of them"
}
]
}
Get Service Details
GET /api/v1/services/details
Service details
The service page: description, meeting point, location, service area, host with qualifications, guest requirements, cancellation text, rating and photos.
- Get the serviceId from Search Services.
- Prices are in Get Service Offerings. The host contextualUserId opens the Profiles endpoints.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
serviceId | string | yes | The serviceId of a search result, e.g. 6740930 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/details?serviceId=1946234' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Service details",
"data": {
"serviceId": "1946234",
"url": "https://www.airbnb.com/services/1946234",
"shareUrl": "https://www.airbnb.co.uk/services/1946234?viralityEntryPoint=179&s=76",
"title": "Cinematic photos in Paris by Shithila",
"description": "I provide beautiful cinematic photography in iconic Paris locations.",
"meetingPoint": "Trocadéro",
"category": "PHOTOGRAPHER",
"hostTitle": "Photographer in Paris",
"providedAt": "Provided at your home",
"meetingTypes": [
"TRAVEL_TO_HOST",
"TRAVEL_TO_GUEST"
],
"location": {
"city": "Paris",
"address": "75116 Paris, France",
"latitude": 48.8636126,
"longitude": 2.2866415,
"serviceAreaText": "I travel to guests in the area outlined on the map. To book in a different location, you can message me.",
"serviceArea": {
"northEast": {
"latitude": 48.9831,
"longitude": 2.6912
},
"southWest": {
"latitude": 48.6059,
"longitude": 2.0862
}
}
},
"host": {
"name": "Shithila",
"userId": "327821587",
"contextualUserId": "1463459996822402102",
"jobTitle": "Photographer",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/ba27605c-11a9-4597-8596-9cc91bc5359b.jpg",
"about": "Hi there! I'm Shithila. A passionate photographer and filmmaker based in Paris. I've been practicing and exploring the art of photography for more than 7 years…",
"qualifications": [
{
"icon": "SYSTEM_CAMERA",
"title": "9 years of experience",
"description": "I've been exploring and pursuing my craft in photography for over nine years."
},
{
"icon": "SYSTEM_STAR_BRIGHT",
"title": "Career highlight",
"description": "I’ve worked with over 1,500 clients from around the world."
}
]
},
"thingsToKnow": [
{
"type": "GUEST_REQUIREMENTS",
"title": "Guest requirements",
"text": "Guests aged 2 and up can attend.",
"icon": "SYSTEM_TEAM_STROKED"
},
{
"type": "ACCESSIBILITY",
"title": "Accessibility",
"text": "Message your host for details.",
"icon": "SYSTEM_ACCESSIBILITY"
}
],
"rating": {
"average": 4.99,
"count": 1397,
"writtenCount": 1397
},
"galleryTitle": "My portfolio",
"photos": [
{
"imageId": "2171626452",
"url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/8c83f3b8-8329-459b-8fad-6aa4f74ffc41.jpeg",
"aspectRatio": 1.4969413458078447
},
{
"imageId": "2143497520",
"url": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/7e4c3600-e191-413f-a2be-fff8c96809c1.jpeg",
"aspectRatio": 0.7962697274031564
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "serviceId",
"message": "\"serviceId\" is required: the `serviceId` of a search result"
}
]
}
Get Service Offerings
GET /api/v1/services/offerings
Service packages and prices
What the provider offers: each package with title, description, duration and price, plus the "from" price and the cancellation rule.
- Set the window with from and to (up to 366 days).
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
serviceId | string | yes | The serviceId of a search result, e.g. 6740930 | |
from | string | no | First day, YYYY-MM-DD (default today) | |
to | string | no | Last day, YYYY-MM-DD, not before from. Default one month after from. | |
adults | integer (1..16) | no | 1 to 16 | |
children | integer (0..5) | no | 0 to 5 | |
infants | integer (0..5) | no | 0 to 5 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/offerings?serviceId=1946234' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Service offerings",
"data": {
"serviceId": "1946234",
"fromPrice": {
"prefix": "From",
"price": "$54 USD",
"amount": 54,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "From $54 USD per guest"
},
"showOfferingDuration": true,
"cancellation": {
"type": "FLEX_CANCELLATION",
"name": "Free cancellation",
"description": "Up to 1 day before start time"
},
"offerings": [
{
"offeringId": "5471224",
"title": "Mini Photo Session",
"description": "A short and sweet 30 min session at the Eiffel Tower. 15 professionally edited photos, plus all the unedited images. On the same day, I'll send you a link to c…",
"duration": "30 mins",
"imageUrl": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/0a29c125-76c0-4f91-b285-cae9a14d21b9.jpeg",
"price": {
"prefix": null,
"price": "$54 USD",
"amount": 54,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "$54 USD per guest"
},
"availability": "Available"
},
{
"offeringId": "5349065",
"title": "Eiffel Tower photoshoot",
"description": "60-minute shoot around the Eiffel Tower, covering Trocadéro, the Seine, Avenue de New York & Bir-Hakeim Bridge. Includes 30 edited photos + all unedited images…",
"duration": "1 hr",
"imageUrl": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/36549457-5f12-4336-8d60-0d0adf7543f3.jpeg",
"price": {
"prefix": null,
"price": "$96 USD",
"amount": 96,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "$96 USD per guest"
},
"availability": "Available"
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "serviceId",
"message": "\"serviceId\" is required: the `serviceId` of a search result"
}
]
}
Get Service Location
GET /api/v1/services/location
Service location
Where the service takes place: the area covered, whether a custom location is allowed and how it is booked.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
serviceId | string | yes | The serviceId of a search result, e.g. 6740930 | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/location?serviceId=1946234' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Service location",
"data": {
"host": "Shithila",
"title": "Confirm where you want your photo shoot",
"subtitle": "Shithila travels to guests in Paris.",
"allowsCustomLocation": false,
"serviceArea": {
"northEast": {
"latitude": 48.9831,
"longitude": 2.6912
},
"southWest": {
"latitude": 48.6059,
"longitude": 2.0862
}
},
"coordinate": {
"latitude": 48.8636126,
"longitude": 2.2866415
},
"bookingFlow": "INSTANT_BOOK",
"bookingWarning": null,
"locationTitle": "Your service host’s location"
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "serviceId",
"message": "\"serviceId\" is required: the `serviceId` of a search result"
}
]
}
Get Service Calendar
GET /api/v1/services/calendar
Service calendar
Which days the provider is free.
- The window can be up to 366 days.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
serviceId | string | yes | The serviceId of a search result, e.g. 6740930 | |
from | string | no | First day, YYYY-MM-DD (default today) | |
to | string | no | Last day, YYYY-MM-DD, not before from. Default one month after from. | |
adults | integer (1..16) | no | 1 to 16 | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/calendar?serviceId=1946234' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Availability calendar",
"data": {
"count": 32,
"availableCount": 30,
"days": [
{
"date": "2026-10-26",
"available": true
},
{
"date": "2026-10-27",
"available": true
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "serviceId",
"message": "\"serviceId\" is required: the `serviceId` of a search result"
}
]
}
Get Service Time Slots
GET /api/v1/services/slots
Service time slots
Packages with their start times and price, per day.
- The window is at most 14 days.
- This API does not book; offeringId and availabilityKey are for reference.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
serviceId | string | yes | The serviceId of a search result, e.g. 6740930 | |
from | string | no | First day, YYYY-MM-DD (default today) | |
to | string | no | Last day, YYYY-MM-DD, not before from, at most 14 days after it. | |
adults | integer (1..16) | no | 1 to 16 | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/slots?serviceId=1946234&from=2026-10-29&to=2026-10-30' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Offerings and time slots",
"data": {
"title": "Schedule your photo shoot",
"host": "Shithila",
"days": [
{
"date": "2026-10-29",
"available": true,
"offerings": [
{
"offeringId": "5471224",
"title": "Mini Photo Session",
"description": "A short and sweet 30 min session at the Eiffel Tower. 15 professional…",
"duration": "30 mins",
"durationMinutes": 30,
"maxGuestsPrivateGroup": 7,
"photo": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/0a…",
"price": {
"prefix": null,
"price": "$54 USD",
"amount": 54,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "$54 USD per guest",
"breakdown": [],
"notes": []
},
"slots": [
{},
{}
]
},
{
"offeringId": "5349065",
"title": "Eiffel Tower photoshoot",
"description": "60-minute shoot around the Eiffel Tower, covering Trocadéro, the Sein…",
"duration": "1 hr",
"durationMinutes": 60,
"maxGuestsPrivateGroup": 5,
"photo": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/36…",
"price": {
"prefix": null,
"price": "$96 USD",
"amount": 96,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "$96 USD per guest",
"breakdown": [],
"notes": []
},
"slots": [
{},
{}
]
}
]
},
{
"date": "2026-10-30",
"available": true,
"offerings": [
{
"offeringId": "5471224",
"title": "Mini Photo Session",
"description": "A short and sweet 30 min session at the Eiffel Tower. 15 professional…",
"duration": "30 mins",
"durationMinutes": 30,
"maxGuestsPrivateGroup": 7,
"photo": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/0a…",
"price": {
"prefix": null,
"price": "$54 USD",
"amount": 54,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "$54 USD per guest",
"breakdown": [],
"notes": []
},
"slots": [
{},
{}
]
},
{
"offeringId": "5349065",
"title": "Eiffel Tower photoshoot",
"description": "60-minute shoot around the Eiffel Tower, covering Trocadéro, the Sein…",
"duration": "1 hr",
"durationMinutes": 60,
"maxGuestsPrivateGroup": 5,
"photo": "https://a0.muscache.com/im/pictures/Mt/MtTemplate-1946234/original/36…",
"price": {
"prefix": null,
"price": "$96 USD",
"amount": 96,
"originalPrice": null,
"originalAmount": null,
"qualifier": "/ guest",
"description": "$96 USD per guest",
"breakdown": [],
"notes": []
},
"slots": [
{},
{}
]
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "serviceId",
"message": "\"serviceId\" is required: the `serviceId` of a search result"
}
]
}
Get Service Reviews
GET /api/v1/services/reviews
Service reviews
Guest reviews of a service, page by page.
- Use limit (1 to 50) and offset to page.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
serviceId | string | yes | The serviceId of a search result, e.g. 6740930 | |
limit | integer (1..50) | no | 20 | 1 to 50 (default 20) |
offset | integer (0..100000) | no | 0 | Reviews to skip (default 0) |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/services/reviews?serviceId=1946234&limit=5' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Reviews found",
"data": {
"resultCount": 5,
"hasNextPage": true,
"reviews": [
{
"reviewId": "1804283887233048311",
"createdAt": "2026-10-25T10:30:00.344Z",
"date": "1 day ago",
"rating": 5,
"comment": "Shithila was incredibly professional, personable, and truly talented at what he does. He knew all the best locations, angles, and poses to capture the perfect …",
"originalComment": "Shithila was incredibly professional, personable, and truly talented at what he does. He knew all the best locations, angles, and poses to capture the perfect …",
"offering": null,
"paidPromotionNotice": null,
"language": "en-GB",
"reviewer": {
"userId": "1503213330812608997",
"name": "Michelle",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/ae77309c-6754-45eb-a2ed-4d7cc6926e1e.jpg?aki_policy=profile_x_medium",
"location": "San Antonio, TX"
},
"host": {
"userId": "1463459996822402102",
"name": "Shithila",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/ba27605c-11a9-4597-8596-9cc91bc5359b.jpg?aki_policy=profile_x_medium",
"location": "Paris, France"
},
"hostResponse": null,
"respondedAt": null,
"respondedDate": null
},
{
"reviewId": "1803574354399648273",
"createdAt": "2026-10-24T11:00:17.439Z",
"date": "2 days ago",
"rating": 5,
"comment": "Shithila skills are incredible, he was very patient and we loved the results.",
"originalComment": "Shithila skills are incredible, he was very patient and we loved the results.",
"offering": null,
"paidPromotionNotice": null,
"language": "en-GB",
"reviewer": {
"userId": "1478574009243005177",
"name": "Erick",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User-388659433/original/a4fc76d0-62b2-4ad2-8abd-0d8eb82be11d.jpeg?aki_policy=profile_x_medium",
"location": "Managua, Nicaragua"
},
"host": {
"userId": "1463459996822402102",
"name": "Shithila",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/ba27605c-11a9-4597-8596-9cc91bc5359b.jpg?aki_policy=profile_x_medium",
"location": "Paris, France"
},
"hostResponse": null,
"respondedAt": null,
"respondedDate": null
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "serviceId",
"message": "\"serviceId\" is required: the `serviceId` of a search result"
}
]
}
Profiles
Public profile of a host or a guest.
Get Profile Details
GET /api/v1/profiles/details
Profile of a host or guest
The public profile: name, verification, host or guest badges, ratings, time on Airbnb and highlighted reviews.
- Send the long contextualUserId from Get Stay Host, Get Stay Details or Get Stay Reviews. The short userId does not work.
- An unknown id returns status:false.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
userId | string | yes | The long user id (about 19 digits): contextualUserId from the stays endpoints, or userId from the experience and service reviews. | |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/profiles/details?userId=1462907809019481093' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Profile",
"data": {
"profile": {
"id": "1462907809019481093",
"displayFirstName": "Anita",
"isAHost": true,
"isSuperHost": false,
"verificationInfo": {
"hasVerificationBadge": true,
"verifiedSinceText": "Verified since February 2019",
"verificationExplanationHtml": "Our identity verification process checks a person’s information against trusted third-party sources…"
},
"profileVisibility": {
"profileViewMode": "PUBLIC"
},
"canViewProfilePicture": true,
"userRepresentationUrl": {
"hasProfilePicture": true,
"profilePictureUrl": "https://a0.muscache.com/im/pictures/user/User-13287163/original/09514d8c-64dc-401a-8ce5-d01df1b9a30…"
},
"isViewerProfileOwner": false,
"userProfileSectionConfiguration": {
"userProfileType": "HOST",
"showPhotoDisclaimer": false,
"contextualReviewHighlights": [
{
"id": "1804201280887340029",
"createdAt": "2026-10-25T07:45:52.901Z",
"commentV2": "Appartement proche de toutes commodités, quartier calme et bien desservi. L’appartement est petit m…",
"displayRating": 5,
"contextualReviewer": {
"id": "1473708112405420123",
"location": "Geneva, Switzerland",
"userRepresentationUrl": {
"profilePictureUrl": "https://a0.muscache.com/im/pictures/user/User/original/0f005ee3-4e26-4f1f-8b7a-ccd928f0e794.jpeg?ak…"
},
"displayFirstName": "Diana"
},
"translation": {
"comments": "Apartment close to all amenities, in a quiet neighbourhood with good transport links. The flat is s…",
"commentsLanguage": "fr"
}
},
{
"id": "1803513440490287309",
"createdAt": "2026-10-24T08:59:15.936Z",
"commentV2": "Petit studio très agréable dans un quartier très calme.",
"displayRating": 5,
"contextualReviewer": {
"id": "1481740716537702421",
"location": "Wintzenheim, France",
"userRepresentationUrl": {
"profilePictureUrl": "https://a0.muscache.com/im/pictures/user/3ea4193d-6fbe-4ab2-8ceb-e06548b0b2f8.jpg?aki_policy=profil…"
},
"displayFirstName": "Lionel"
},
"translation": {
"comments": "Very nice little studio in a very quiet area.",
"commentsLanguage": "fr"
}
}
],
"mainPlacement": {
"compact": [
"UserProfileAboutMeSection",
"UserProfileReviewsSection"
],
"wide": [
"UserProfileAboutMeSection",
"UserProfileReviewsSection"
],
"sections": [
{
"sectionId": "UserProfileAboutMeSection",
"sectionData": {
"contextualUser": {}
}
},
{
"sectionId": "UserProfileReviewsSection",
"sectionData": {
"contextualUser": {}
}
}
]
}
},
"userProfileIdCard": {
"subtitle": "Host",
"stats": [
{
"label": "Reviews",
"value": "64"
},
{
"icon": "COMPACT_STAR",
"label": "Rating",
"value": "4.58"
}
]
},
"timeAsUser": {
"months": 7,
"years": 12
},
"timeAsHost": {
"months": 3,
"years": 10
},
"pastTripsCount": 15,
"reviewsReceivedFromHosts": {
"pageInfo": {
"totalCount": 10
}
},
"hostRatingStats": {
"ratingStats": {
"ratingCount": "64",
"ratingAverage": 4.58
}
}
}
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "userId",
"message": "\"userId\" is required: the long `contextualUserId` of a host or reviewer"
}
]
}
Get Profile Past Locations
GET /api/v1/profiles/past-locations
Places a person has stayed
Places this person has stayed. Shown only when the person made them public, so the list is often empty, especially for hosts.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
userId | string | yes | The long user id (about 19 digits): contextualUserId from the stays endpoints, or userId from the experience and service reviews. | |
limit | integer (1..50) | no | 50 | 1 to 50 (default 50) |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/profiles/past-locations?userId=1462907809019481093' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "This profile shows no past places",
"data": {
"count": 0,
"hasNextPage": false,
"locations": []
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "userId",
"message": "\"userId\" is required: the long `contextualUserId` of a host or reviewer"
}
]
}
Get Profile Reviews
GET /api/v1/profiles/reviews
Reviews about a person
Reviews written about this person.
- type=guests (default): reviews from guests. type=hosts: reviews from hosts.
- Use limit (1 to 50, default 10) and offset to page.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
userId | string | yes | The long user id (about 19 digits): contextualUserId from the stays endpoints, or userId from the experience and service reviews. | |
type | enum: guests, hosts | no | guests | guests = reviews from guests, hosts = reviews from hosts (default guests) |
limit | integer (1..50) | no | 10 | 1 to 50 (default 10) |
offset | integer (0..100000) | no | 0 | Reviews to skip (default 0) |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/profiles/reviews?userId=1462907809019481093&limit=5' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Reviews found",
"data": {
"resultCount": 5,
"hasNextPage": false,
"reviews": [
{
"reviewId": "1804201280887340029",
"type": "StayListingReview",
"createdAt": "2026-10-25T07:45:52.901Z",
"rating": 5,
"comment": "Appartement proche de toutes commodités, quartier calme et bien desservi. L’appartement est petit mais très propre et l’essentiel y est. Les hôtes ont été très…",
"translatedComment": "Apartment close to all amenities, in a quiet neighbourhood with good transport links. The flat is small but very clean, and it has everything you need. The hos…",
"language": "fr",
"revieweeRole": "HOST",
"paidPromotionNotice": null,
"reviewer": {
"userId": "1473708112405420123",
"name": "Diana",
"location": "Geneva, Switzerland",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User/original/0f005ee3-4e26-4f1f-8b7a-ccd928f0e794.jpeg?aki_policy=profile_x_medium",
"superhost": null
},
"reviewee": {
"userId": "1462907809019481093",
"name": "Anita",
"location": "Paris, France",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User-13287163/original/09514d8c-64dc-401a-8ce5-d01df1b9a303.jpeg?aki_policy=profile_x_medium",
"superhost": false
},
"response": null,
"respondedAt": null
},
{
"reviewId": "1803513440490287309",
"type": "StayListingReview",
"createdAt": "2026-10-24T08:59:15.936Z",
"rating": 5,
"comment": "Petit studio très agréable dans un quartier très calme.",
"translatedComment": "Very nice little studio in a very quiet area.",
"language": "fr",
"revieweeRole": "HOST",
"paidPromotionNotice": null,
"reviewer": {
"userId": "1481740716537702421",
"name": "Lionel",
"location": "Wintzenheim, France",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/3ea4193d-6fbe-4ab2-8ceb-e06548b0b2f8.jpg?aki_policy=profile_x_medium",
"superhost": null
},
"reviewee": {
"userId": "1462907809019481093",
"name": "Anita",
"location": "Paris, France",
"pictureUrl": "https://a0.muscache.com/im/pictures/user/User-13287163/original/09514d8c-64dc-401a-8ce5-d01df1b9a303.jpeg?aki_policy=profile_x_medium",
"superhost": false
},
"response": null,
"respondedAt": null
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "userId",
"message": "\"userId\" is required: the long `contextualUserId` of a host or reviewer"
}
]
}
Home
The Airbnb home tabs and the home feed.
Get Home Tabs
GET /api/v1/home/tabs
Home tabs
The tabs along the top of the Airbnb app: All, Homes, Hotels, Experiences and Services.
- Use a tab value in Get Home Feed.
No parameters.
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/home/tabs' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Home tabs",
"data": {
"count": 5,
"tabs": [
{
"tab": "all",
"name": "All"
},
{
"tab": "stays",
"name": "Homes"
}
]
}
}
Get Home Feed
GET /api/v1/home/feed
Home feed
The home screen of one tab: rows of homes, hotels, experiences or services such as "Homes in Pune".
- Pick the tab with tab (see Get Home Tabs).
- Each row has openWith: the call that opens its "see all" list. Cards have an id for the detail endpoints.
- One call returns one page of rows. Send nextCursor as cursor for the next page; when it is null the feed has ended.
- The places shown follow the server location, not your coordinates.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
tab | string | no | all | Tab from Get Home Tabs: all, stays, hotels, experiences or services. Default all. |
cursor | string | no | The nextCursor of the previous answer, to get the next page. | |
currencyCode | string | no | USD | Currency of the prices, 3 letters. Values: Get Currency. Default USD. |
languageCode | string | no | en-GB | Language of the texts, for example en-GB, fr or ja. Values: Get Languages. Default en-GB. |
sessionId (optional) is also accepted: see Create Session.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/home/feed?tab=all' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Home feed",
"data": {
"tab": "all",
"nextCursor": "eyJzZWN0aW9uX29mZnNldCI6NSwic2Vlbl9zZWN0aW9uX3R5cGVfdWlkcyI…",
"sectionCount": 4,
"shortcuts": [],
"sections": [
{
"type": "carousel",
"sectionId": "HOMES_POPULAR_WITH_LOCALS_IN_DESTINATION_RECOMMENDED:North …",
"title": "Guest favourite homes in North Goa",
"subtitle": "Indian guests often rate these homes highly",
"place": {
"placeId": "ChIJMaD6Uu3AvzsR0E3VfowKzRs",
"query": "North Goa"
},
"kinds": [
"homes"
],
"openWith": {
"endpoint": "/stays/search",
"params": [
{}
],
"note": null
},
"items": [
{
"kind": "homes",
"listingId": "1732658285115285549",
"url": "https://www.airbnb.com/rooms/1732658285115285549",
"title": "Flat in Arpora",
"name": "Laxmi Studios by Ami | Luxury Stay Near Baga Beach",
"city": null,
"latitude": null,
"longitude": null,
"rating": 4.93,
"reviewCount": null,
"ratingText": "4.93",
"badges": [],
"details": [],
"highlights": [],
"photos": [],
"price": {},
"paymentMessages": [],
"bedCount": null
}
]
}
]
}
}
Example when something is wrong
{
"status": false,
"message": "Validation failed",
"errors": [
{
"field": "languageCode",
"message": "\"languageCode\" \"xx-INVALID\" is not supported. See GET /common/languages for the codes."
}
]
}
Common
Languages, currencies, sessions and server status.
Create Session
POST /api/v1/common/sessions
Create a session
Returns a new sessionId. Send it as the optional sessionId on the other endpoints.
- A session remembers its searches, and Get Home Feed is built from them.
- Without a sessionId a default session is used.
- Limit: 10 new sessions per hour.
No parameters.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/common/sessions' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Session created",
"data": {
"sessionId": "9cfc0a63ed439e64cd373330d941429536e304a4"
}
}
Get Languages
GET /api/v1/common/languages
Supported languages
The accepted languageCode values (64), each checked against Airbnb.
- A fixed list; it does not use your monthly quota.
No parameters.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/common/languages' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Supported languages",
"data": {
"count": 64,
"languages": [
{
"code": "ar",
"name": "Arabic"
},
{
"code": "az",
"name": "Azerbaijani"
}
]
}
}
Get Currency
GET /api/v1/common/currencies
Supported currencies
The accepted currencyCode values (69), each checked against Airbnb.
- A fixed list; it does not use your monthly quota.
No parameters.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/common/currencies' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Supported currencies",
"data": {
"count": 69,
"currencies": [
{
"code": "AED",
"name": "United Arab Emirates dirham"
},
{
"code": "ARS",
"name": "Argentine peso"
}
]
}
}
Get Server Status
GET /api/v1/common/server-status
Server status
Answers "online" while the service is running. No parameters; it does not use your monthly quota.
No parameters.
Example request
curl --request GET \
--url 'https://airbnb74.p.rapidapi.com/api/v1/common/server-status' \
--header 'X-RapidAPI-Host: airbnb74.p.rapidapi.com' \
--header 'X-RapidAPI-Key: YOUR_KEY'Example answer (shortened)
{
"status": true,
"message": "Server status",
"data": {
"server": "online",
"timestamp": "2026-10-26T13:46:08.712Z"
}
}