Airbnb Scraper API
Extract structured accommodation data from public Airbnb pages as JSON. Send a accommodation URL and receive the fields exposed by the target page.
Decide before you build
- Endpoint
- POST /scrape/booking
- Scrapers
- Airbnb accommodation pages
- Cost
- from 1 credit / call
- Free plan
- 500 credits / month
- Call pattern
- sync, POST
- On failure
- credits refunded
- Response format
- JSON
- Concurrency
- by plan tier
Booking & Travel requests are synchronous. Cost depends on the options selected for the request.
Try the Airbnb scraper on your own targetRun a request against a public accommodation page and inspect the JSON before you integrate.
Open the live testWhat you get back
accommodation dataAirbnb data in JSON
Retrieve the accommodation information exposed by the public Airbnb page.
- Accommodation name, description and images
- Rates, currency and availability when available
- Location, facilities and room information
- Ratings and booking details exposed publicly
Request optionsControl how the page is collected
Use rendering or proxy options only when the target requires them.
- JavaScript rendering with useChrome
- Premium proxy and country targeting
- Public URL input; no account login required
- Structured JSON in the same response
Call the Airbnb scraper
Send a public accommodation URL to the Booking & Travel endpoint. The API returns the result in the same response.
# POST - scrape a public accommodation page
curl -X POST "https://api.scraping-bot.io/scrape/booking" \
-u "yourUsername:yourApiKey" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/hotel/example",
"options": {
"useChrome": false,
"premiumProxy": false
}
}'Code example
Authenticate with your ScrapingBot username and API key, then read the returned JSON.
const auth = "Basic " + Buffer.from("yourUsername:yourApiKey").toString("base64");
const response = await fetch("https://api.scraping-bot.io/scrape/booking", {
method: "POST",
headers: { "Content-Type": "application/json", Authorization: auth },
body: JSON.stringify({ url: "https://example.com/hotel/example", options: { useChrome: false, premiumProxy: false } }),
});
const result = await response.json();Run this call in two minutesCreate an account, copy your API key, then use the example above.
Get your API keyRequest parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | — | Full public page URL, including https://. |
options.useChrome | boolean | false | Render JavaScript when the target page requires a browser. |
options.premiumProxy | boolean | false | Use a premium proxy for targets that require it. |
options.proxyCountry | string | — | Country targeting with a premium proxy. |
Response example
Example of the structured data returned for a public Airbnb accommodation page. Available fields vary with the target page.
{
"data": {
"image": "https://a0.muscache.com/im/pictures/e8f6398e-c55d-47df-addf-0bbf11c31af0.jpg?ml=true",
"images": [
"https://a0.muscache.com/im/pictures/e8f6398e-c55d-47df-addf-0bbf11c31af0.jpg?ml=true",
"https://a0.muscache.com/im/pictures/e9dfb996-3ab9-47b0-b123-d2079078d381.jpg?ml=true",
],
"title": "Paris : studio cosy au pied du métro - Appartements à louer à Paris, Île-de-France, France - Airbnb",
"price": 493,
"currency": "EUR",
"siteURL": "https://www.airbnb.fr/rooms/643283028667272430?search_mode=regular_search&check_in=2024-10-17&check_out=2024-10-23&source_impression_id=p3_1726729845_P3VI3XowzDS1B5kf&previous_page_section_name=1000&federated_search_id=e9b6e0c6-e56d-4754-901b-ab4c566356dc",
"siteHtml": null,
"statusCode": 200,
"htmlLength": 622274,
"captchaFound": true,
"isHtmlPage": true,
"host": "www.airbnb.fr",
"available": true,
"priceType": "total",
"description": "Bienvenue ! L'appartement n'est pas vide, il n'est loué qu'occasionnellement, il y aura des affaires et tout le nécessaire. Mais vous aurez bien évidemment la place pour passer un bon séjour et découvrir Paris ! Parisienne depuis plus de 10 ans, si vous le souhaitez je peux vous recommander des lieux, des restos ou vous donner des conseils.<br /><br /><b>Le logement</b><br />Le studio est situé au premier étage d'un immeuble ancien, avec ascenseur. Il donne sur une cour intérieure au calme. Son emplacement est idéal : proche du tram, de deux lignes de métro et de plusieurs lignes de bus.<br /><br />Le studio dispose d'une cuisine séparée avec un espace pour manger ou travailler. Vous avez à disposition des denrées alimentaires si nécessaire à condition de racheter ce que vous utilisez. <br /><br />Un canapé lit confortable vous attend. Et petite curiosité, la table basse se transforme en table à manger !<br /><br />Vous avez également la fibre ainsi qu'une TV avec beaucoup de chaînes. <br /><br />Au plaisir de vous recevoir !<br /><br /><b>Autres remarques</b><br />L'arrivée dans le logement peut souvent se faire avant 17h. C'est à voir ensemble en amont. Je ferai au mieux pour tenter de vous arranger. Écrivez l'horaire d'arrivée souhaitée dans votre message de demande de réservation et nous tenterons de voir ensemble ce qu'il est possible de faire. <br /><br />En revanche, l'arrivée ne peut pas se faire après 20h.<br /><br /><b>Numéro d'enregistrement</b><br />7512007073112",
"amenities": [
"Wifi",
"Télévision",
"Ascenseur",
"Sèche-cheveux",
"Système audio Bluetooth",
"Stationnement payant dans la rue",
"Détecteur de monoxyde de carbone",
"Détecteur de fumée"
],
"rooms": [
{
"title": "Espace chambre",
"subtitle": "1 canapé convertible",
"images": [
{
"url": "https://a0.muscache.com/im/pictures/hosting/Hosting-U3RheVN1cHBseUxpc3Rpbmc6NjQzMjgzMDI4NjY3MjcyNDMw/original/2823af46-83f8-48c4-a641-f652c7f47890.jpeg",
"caption": null
}
]
},
{
"title": "Espace de vie",
"subtitle": "1 canapé convertible",
"images": [
{
"url": "https://a0.muscache.com/im/pictures/e8f6398e-c55d-47df-addf-0bbf11c31af0.jpg?ml=true",
"caption": null
}
]
}
],
"reviews": {
"rating": 4.91,
"count": 70,
"list": [
{
"username": "Chloe",
"subtitle": "7 ans sur Airbnb",
"rate": 5,
"date": "août 2024",
"duration": "Séjour de quelques nuits",
"review": "Julie-Marie a été une hôte extraordinaire et très flexible avec nos heures d'arrivée. Le studio était impeccable et disposait de tout le nécessaire pour un séjour de courte durée. En plus de cela, nous avons reçu une délicieuse bouteille de vin en cadeau de bienvenue. Je recommande vivement de rester ici !"
}
],
"details": [
{
"title": "Propreté",
"rate": "5,0"
},
{
"title": "Précision",
"rate": "4,9"
},
{
"title": "Arrivée",
"rate": "5,0"
},
{
"title": "Communication",
"rate": "5,0"
},
{
"title": "Emplacement",
"rate": "4,7"
},
{
"title": "Qualité-prix",
"rate": "4,9"
}
],
"ratingDistribution": [
{
"name": "5",
"value": "91%"
},
{
"name": "4",
"value": "9%"
},
{
"name": "3",
"value": "0%"
},
{
"name": "2",
"value": "0%"
},
{
"name": "1",
"value": "0%"
}
]
},
"neighborhood": [
"Quartier vivant et populaire, vous aurez tout à proximité. Les supérettes ferment tard le soir (22h) et sont ouvertes les dimanches. Chaque jour de la semaine un marché sera non loin de l'appartement. Le secteur est également très bien desservi en transports et vous permet de relier le centre de Paris en 15 minutes. Un vaste choix de restaurants s'offre à vous. Pour les amateurs de balades : les buttes Chaumont et le cimetière du père Lachaise sont à proximité.",
"Le logement est situé entre deux lignes de métro, un ligne de tram et plusieurs lignes de bus. Vous êtes sur une ligne directe à 15 min du centre de Paris (Châtelet les Halles)."
],
"hostInformation": {
"name": "Julie-Marie",
"isSuperHost": true,
"isVerified": true,
"image": "https://a0.muscache.com/im/pictures/user/143bb779-bbb8-4707-b46a-81579b8ff2d7.jpg",
"statics": [
{
"title": "REVIEW_COUNT",
"value": "70"
},
{
"title": "RATING",
"value": "4,91"
},
{
"title": "YEARS_HOSTING",
"value": "2"
}
],
"url": "https://www.airbnb.fr/users/show/19618412",
"description": "",
"details": [
"Langues parlées: Français et Italien",
"Je vis à : Paris, France"
],
"hostDetails": [
"Taux de réponse : 100 %",
"Répond dans l'heure"
]
},
"policies": {
"houseRules": [
"Arrivée : entre 17:00 et 20:00",
"Départ avant 11:00",
"2 voyageurs maximum"
],
"previewSafetyAndProperties": [
"Aucun détecteur de monoxyde de carbone",
"Aucun détecteur de fumée",
"Ne convient pas aux bébés (moins de 2 ans)"
]
}
}
}Credits, failures and limits
| Case | Credits | Notes |
|---|---|---|
| Standard request | from 1 credit / call | Current plans start at this rate. |
| JavaScript rendering | Additional credits | Enable only when the target requires it. |
| Premium proxy | Additional credits | Use for targets that require a premium proxy. |
| Unsuccessful request | Not deducted | Only successful requests count towards the monthly limit. |
Booking & Travel API or Raw HTML scraper?
| Booking & Travel API | Raw HTML scraper | |
|---|---|---|
| Endpoint | /scrape/booking | /scrape/raw-html |
| Returns | Structured accommodation JSON | Rendered page HTML |
| Flow | One synchronous request | One synchronous request |
| Starting cost | from 1 credit / call | from 1 credit / call |
| Use it when | You need parsed accommodation fields | You need your own extraction logic |
Questions about the Airbnb API
- Does the Airbnb scraper access private data?
- No. This guide covers public accommodation pages and does not require signing in to a Airbnb account.
- Are all fields always available?
- No. Returned data depends on what the public Airbnb page exposes and what the extractor supports.
- Can I collect multiple pages at once?
- Each request takes one public URL. Submit one request per page you need to collect.
- When should I use a premium proxy?
- Use it only when a target requires it or when you need country targeting for a public page.
Source: ScrapingBot API documentation.
Other booking & travel scrapers
Browse the Booking & Travel category for the complete list of guides. Visit the ScrapingBot blog for implementation guides.
Trusted by developers using Booking & Travel data.
Customer reviews apply to ScrapingBot's service overall, not specifically to this scraper.
Start scraping Airbnb today
500 free credits every month. No card required, cancel anytime.
