API

leboncoin API : annonces, immobilier et véhicules en JSON

leboncoin ne propose pas d'API publique aux développeurs. Ce qui revient ici, c'est ce que le site affiche publiquement — annonces, prix, localisation — rendu en JSON. Trois recherches distinctes sont exposées parce que le site lui-même les traite différemment : annonces générales, immobilier et véhicules.

Endpoints

endpointCe qui est renvoyéObligatoires
searchRecherche par mot-clé et/ou catégorie : prix, localisation, état et tri, tels que le site les applique.tous optionnels
real_estate/searchRecherche immobilière : ventes, locations, colocations et locaux professionnels. Le type de transaction est obligatoire car il change la nature du résultat.transaction
cars/searchRecherche véhicules : voitures, motos, utilitaires et camping-cars, avec les baisses de prix signalées par le site.tous optionnels
listingL'annonce complète par identifiant ou URL, dans n'importe quelle catégorie : titre, prix (y compris 'gratuit' et prix non publié), description, photos et vendeur.ad_id
categoriesL'arbre des catégories : identifiants, noms, parents, et les catégories raccourcies qui pointent vers une autre.tous optionnels

Chaque appel est facturé en crédits. Les appels en échec ou bloqués sont gratuits.

Exemple qui fonctionne

Pour l'immobilier, `transaction` est obligatoire et ce n'est pas une contrainte arbitraire : une annonce de vente et une annonce de location n'ont ni le même prix ni le même sens, et les mélanger produit une moyenne qui ne veut rien dire.

Requête
curl -X POST https://api.reefapi.com/leboncoin/v1/real_estate/search \
  -H "x-api-key: VOTRE_CLE" \
  -H "content-type: application/json" \
  -d '{"transaction": "sale", "location": "lyon", "price_max": 400000}'
Réponse (abrégée)
{
  "ok": true,
  "data": {
    "results": [
      {
        "ad_id": "...",
        "title": "...",
        "price": 345000,
        "currency": "EUR",
        "surface_m2": 72,
        "rooms": 3,
        "city": "Lyon"
      }
    ]
  },
  "meta": { "record_count": 35, "cache_hit": false, "mode": "live" }
}

Plutôt que votre propre scraper leboncoin

Écrire un scraper leboncoin marche le premier jour. Ce qui coûte vient ensuite : quand la structure des annonces change, l'analyseur renvoie une liste vide au lieu d'une erreur, et sur un parcours un peu long la protection anti-robot coupe en cours de route. Des deux côtés, cela ressemble à « aucune annonce ».

Ici la maintenance est de notre côté : si le schéma change, nous réparons le moteur ; en cas de blocage, un code d'erreur revient et cet appel n'est pas facturé.

Pour une extraction ponctuelle, votre script reste moins cher, nous le disons franchement. Pour une veille qui doit tourner chaque jour, le coût n'est pas dans le code mais dans les pannes que personne ne remarque.

Limites et remarques honnêtes

  • Ce n'est pas l'API officielle de leboncoin et nous n'avons aucun partenariat avec leboncoin.
  • `transaction` est obligatoire en immobilier : vente et location ne se mélangent pas.
  • Quand une annonce ne publie pas de prix, le champ revient à null ; nous ne reconstituons rien.
  • Pas de cache : chaque appel reflète l'état au moment de la requête.