Tous les scrapers

Voyage

Airbnb Reviews Scraper

airbnb.com

99.5% Taux de réussite
2s Réponse moyenne
Bot detection + rate limiting Protection
1 100 appels Mesuré sur

La page d'un logement Airbnb affiche une poignée de commentaires ; les autres se chargent page par page depuis la propre API interne d'Airbnb. Un endpoint de plugin dédié prend un identifiant d'annonce ou une URL de logement de n'importe quel domaine Airbnb et lit chaque commentaire, pas seulement les quelques-uns de la page : pour chaque commentaire, l'identifiant, la note en étoiles, le texte tel qu'écrit avec sa langue et la traduction d'Airbnb dans la locale de votre choix, la date ISO et la date relative d'Airbnb, le détail du séjour (comme Stayed a few nights ou Group trip), les photos, l'auteur (nom, photo, ville d'origine ou ancienneté sur Airbnb, lien vers le profil, badge Superhost, et si le compte a été fermé depuis) et la réponse de l'hôte. Le résumé de l'annonce est fourni avec : titre, type de logement et de propriété, ville et pays, hôte, note globale et les six notes par catégorie, nombre de commentaires, la part et le nombre de notes par étoile, les tags des commentaires comme Location ou Hospitality avec leurs nombres, et le badge Guest favourite. Triez selon la pertinence propre à Airbnb, les plus récents, les mieux ou les moins bien notés, écartez les commentaires antérieurs à une date avec since, et collectez jusqu'à 500 commentaires par appel depuis n'importe quelle page ou position, avec nextPage et nextOffset pour continuer. C'est le complément commentaires de nos plugins de recherche et d'annonce Airbnb, sans compte Airbnb ni connexion.

Ce que vous pouvez extraire

  • Identifiant du commentaire, note en étoiles, le texte tel qu'écrit, sa langue et la date (ISO et telle qu'Airbnb la formule)
  • La traduction d'Airbnb dans la locale de votre choix, par exemple en, de, fr, es ou pt-BR
  • Détail du séjour comme Stayed a few nights ou Group trip, et photos du commentaire
  • Auteur : nom, photo, ville d'origine ou ancienneté sur Airbnb, lien vers le profil, badge Superhost et indicateur de compte fermé
  • La réponse de l'hôte
  • Résumé de l'annonce : titre, type de logement et de propriété, ville, pays, hôte, note globale et six notes par catégorie, nombre de commentaires, répartition des notes, notes par étoile, tags des commentaires et Guest favourite
  • Tri par pertinence, plus récents, mieux ou moins bien notés, avec une date limite since
  • Tous les commentaires : jusqu'à 500 par appel depuis n'importe quelle page ou position, avec nextPage et nextOffset pour continuer

Endpoints dédiés

/travel/airbnb-reviews

Commentaires d'une annonce Airbnb

Les commentaires de voyageurs d'une annonce par identifiant ou URL de logement (n'importe quel domaine Airbnb) : un tableau reviews avec id, rating, text, language, translatedText, date, localizedDate, stayDetail, photos, reviewer (id, name, photo, location ou tenure, profileUrl, profileId, isSuperhost, deleted) et response, plus le résumé de l'annonce (title, roomType, propertyType, city, country, host, rating avec les notes par catégorie, reviewsCount, ratingDistribution, ratingCounts, reviewTags, isGuestFavorite) et totalResults, hasMore, nextPage et nextOffset. sort vaut most_relevant, most_recent, highest_rated ou lowest_rated ; locale fixe la langue de traduction ; since écarte les commentaires plus anciens ; max_reviews de 1 à 500 (50 par défaut, Airbnb en sert 50 par page) depuis page ou offset ; include_listing=false saute le résumé.

Comment le scraper

curl -X POST \
  -H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
  "https://api.scrapeunblocker.com/travel/airbnb-reviews?room=35283352&max_reviews=100&sort=most_recent"
import requests

resp = requests.post(
    "https://api.scrapeunblocker.com/travel/airbnb-reviews",
    headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
    params={"room": "35283352", "max_reviews": "100", "sort": "most_recent"},
)
print(resp.text)
import { ScrapeUnblockerClient } from 'scrapeunblocker';

const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });

const data = await su.airbnbReviews('35283352', {
  maxReviews: 100,
  sort: 'most_recent',
});
console.log(data);

Les requêtes sont en POST et passent leurs paramètres dans la query string. Le rendu navigateur a toujours lieu : aucun flag à activer.

Exemple de réponse

{
  "url": "https://www.airbnb.com/rooms/35283352",
  "listingId": "35283352",
  "listing": {
    "id": "35283352",
    "url": "https://www.airbnb.com/rooms/35283352",
    "title": "Cozy studio close to Champs Elysées & Eiffel tower",
    "roomType": "Entire home/apt",
    "propertyType": "Entire rental unit",
    "city": "Seine",
    "country": "France",
    "host": {
      "id": "...",
      "name": "Moutaz",
      "isSuperhost": true
    },
    "rating": {
      "overall": 4.9,
      "accuracy": 4.93,
      "cleanliness": 4.86,
      "checkin": 4.95,
      "communication": 4.98,
      "location": 4.97,
      "value": 4.86
    },
    "reviewsCount": 177,
    "ratingDistribution": [
      {
        "stars": 5,
        "percentage": 0.921
      },
      {
        "stars": 4,
        "percentage": 0.056
      },
      {
        "stars": 3,
        "percentage": 0.023
      }
    ],
    "ratingCounts": {
      "5": 163,
      "4": 10,
      "3": 4,
      "2": 0,
      "1": 0
    },
    "isGuestFavorite": true,
    "isNewListing": false,
    "reviewTags": [
      {
        "key": "LOCATION",
        "name": "Location",
        "count": 117
      },
      {
        "key": "WALKABILITY",
        "name": "Walkability",
        "count": 42
      }
    ]
  },
  "reviews": [
    {
      "id": "1783949263908511671",
      "rating": 5,
      "text": "Logement très bien situé avec toutes les commodités. Moutaz répond rapidement.",
      "language": "fr",
      "translatedText": "Very well-located accommodation with all amenities. Moutaz responds quickly.",
      "date": "2026-09-27T09:08:44Z",
      "localizedDate": "1 week ago",
      "stayDetail": "Stayed a few nights",
      "stayDetailType": "LENGTH_OF_STAY",
      "roomTypeTitle": null,
      "photos": [],
      "reviewer": {
        "id": "...",
        "name": "Yvan",
        "photo": "https://a0.muscache.com/im/pictures/user/....jpg",
        "location": "North Hatley, Canada",
        "tenure": null,
        "profileUrl": "...",
        "profileId": "...",
        "isSuperhost": false,
        "deleted": false
      },
      "response": null
    }
  ],
  "resultsCollected": 10,
  "totalResults": 177,
  "page": 1,
  "offset": 0,
  "pagesFetched": 1,
  "hasMore": true,
  "nextPage": 2,
  "nextOffset": 10,
  "sort": "most_recent",
  "locale": "en",
  "since": null,
  "warnings": []
}

Lire la documentation de l'API

Questions fréquentes

Le scraping des commentaires Airbnb est-il légal ?

Collecter des commentaires et des notes Airbnb publics est licite dans de nombreuses juridictions, mais les règles dépendent de votre pays, des données collectées et de leur usage. Les noms des auteurs, leurs photos et le texte des commentaires sont des données personnelles, respectez donc les règles de confidentialité qui s'appliquent à vous. ScrapeUnblocker renvoie les commentaires publics ; ce que vous collectez et comment vous l'utilisez relève de votre responsabilité.

Comment scraper les commentaires Airbnb sans se faire bloquer ?

Airbnb utilise la détection de bots et la limitation de débit. Le plugin /travel/airbnb-reviews lit les commentaires dans la propre API web d'Airbnb via les sorties de ScrapeUnblocker, quelques pages à la fois, sans rendu navigateur. Quand Airbnb retire la requête qu'utilise son application web, le plugin lit une fois la vraie page du logement, apprend la nouvelle et continue. Dans le benchmark de ScrapeUnblocker, 99,5 % des 1 100 appels, avec une annonce différente à chaque fois, ont renvoyé des commentaires, en environ 2,0 s par appel.

Combien de commentaires Airbnb puis-je obtenir ?

Tous. Airbnb sert les commentaires 50 par 50, et le plugin lit autant de ces pages que max_reviews l'exige : jusqu'à 500 par appel (50 par défaut), en commençant à n'importe quelle page ou à une position exacte avec offset. hasMore, nextPage et nextOffset reprennent là où l'appel s'est arrêté, et totalResults est le nombre de commentaires de l'annonce, si bien qu'une annonce de 1 200 commentaires demande trois appels. Une annonce sans commentaires répond avec une liste vide ; une annonce supprimée ou privée donne un 404.

Quelles données j'obtiens pour chaque commentaire ?

Chaque commentaire comporte son identifiant, la note en étoiles, le texte tel qu'écrit et sa langue, la traduction d'Airbnb, la date ISO et sa formulation par Airbnb, le détail du séjour, les photos, le nom de l'auteur, sa photo, sa ville d'origine ou son ancienneté sur Airbnb, le lien vers son profil et son badge Superhost, un indicateur pour un voyageur qui a fermé son compte depuis, et la réponse de l'hôte. Le résumé de l'annonce ajoute le titre, le type de logement et de propriété, la ville, le pays, l'hôte, la note globale et les notes de précision, propreté, arrivée, communication, emplacement et qualité-prix, le nombre de commentaires, la part des notes de chaque étoile avec les nombres correspondants, les tags des commentaires comme Location avec leurs nombres, et le badge Guest favourite.

Puis-je obtenir les commentaires Airbnb dans ma langue ?

Oui. Chaque commentaire revient tel qu'il a été écrit, avec son code de langue, et translatedText contient la propre traduction d'Airbnb dans locale (en par défaut ; par exemple de, fr, es ou pt-BR), qui s'applique aussi aux réponses de l'hôte. sort fixe l'ordre : most_relevant (celui d'Airbnb), most_recent, highest_rated ou lowest_rated, et since écarte les commentaires antérieurs à une date ; avec most_recent, la pagination s'arrête dès que les commentaires plus anciens commencent, ce qui convient au suivi des nouveaux commentaires. Pour l'annonce elle-même, utilisez notre plugin d'annonce Airbnb, /travel/airbnb-room, et pour trouver des annonces dans une ville, /travel/airbnb.

Combien coûte le scraping des commentaires Airbnb ?

Airbnb sert 50 commentaires par page, et chaque page lue est facturée comme une requête : les 50 commentaires par défaut correspondent à 1 requête, 500 commentaires à 10, et pagesFetched indique le nombre exact. 1 requête = 1 crédit, 1,00 EUR pour 1 000 en paiement à l'usage, en descendant jusqu'à environ 0,55 EUR pour 1 000 sur l'offre Ultimate. Les blocages et les timeouts ne sont pas facturés, et l'essai gratuit inclut 500 requêtes sans carte bancaire.

Scrapers similaires

Commencez à scraper ce site dès aujourd'hui

Palier gratuit inclus. Aucune carte bancaire requise pour tester.