Vous pouvez mettre en place un tableau de bord automatisé pour votre veille des prix sur Leboncoin en utilisant Google Apps Script comme intermédiaire entre l'API et une feuille Google Sheets. Cette méthode permet d'appeler régulièrement le endpoint `/api/v1/leboncoin/search` via la bibliothèque HTTP native, puis d'écrire les résultats bruts directement dans vos cellules sans passer par un serveur externe.
Sommaire
L’architecture repose sur l’exécution d’un script Google Apps Script qui interroge les endpoints de scraping via HTTP. Cette approche élimine la nécessité de maintenir un serveur dédié en tirant parti des quotas gratuits du moteur serverless de Google pour automatiser le cycle de collecte et d’indexation. Le flux suit une séquence linéaire : requête API, parsing JSON, écriture dans Sheets, déclenchement périodique.
Le point de départ est l’URL de recherche générée depuis la marketplace cible (par exemple, LeBonDeal API Leboncoin). Vous ne construisez pas les filtres côté serveur ; vous transmettez directement le lien tel quel au paramètre url. Cela garantit que les résultats correspondent exactement à la vue de l’utilisateur final, y compris les mises en avant sponsorisées.
page dans votre boucle ou déclencheur.Le script Apps Script utilise la méthode UrlFetchApp.fetch() pour envoyer une requête GET authentifiée via l’en-tête Authorization. La réponse JSON contient les annonces structurées (ads) ainsi que des métadonnées de quota (credits_remaining). Vous devez extraire ces données et les mapper vers vos colonnes Google Sheets : ID, titre, prix, date de publication et URL.
L’indexation se fait par l’ID unique de l’annonce. Pour le suivi temporel, comparez la colonne price à chaque exécution. Si la valeur change ou si une annonce disparaît (retour de code 402 ou liste vide), mettez à jour votre tableau de bord local. Cette méthode évite les doublons et permet de calculer des indicateurs simples comme le temps moyen de vente ou l’évolution du prix médian par catégorie.
Pour sécuriser votre accès à l’API LeBonDeal, il est impératif de ne jamais hardcoder la clé d’authentification dans le code source. Google Apps Script expose par défaut les scripts aux utilisateurs du projet, ce qui rendrait votre identifiant accessible en clair. La méthode robuste consiste à utiliser les propriétés du script (Script Properties), qui stockent ces données au niveau de l’environnement d’exécution et non du dépôt de code.
Dans l’éditeur Google Apps Script, accédez aux paramètres du projet via le menu Fichier > Paramètres du projet. Sélectionnez la catégorie « Propriétés du script » (Script Properties) plutôt que les propriétés du fichier ou utilisateur. Ajoutez une nouvelle entrée avec la clé LEBONDEAL_API_KEY et pour valeur, votre token généré depuis votre tableau de bord LeBonDeal API. Cette configuration isole le secret des versions Git ou des exports CSV du code.
Lorsque vous invoquez l’API, récupérez la valeur dynamiquement :
const apiKey = PropertiesService.getScriptProperties().getProperty('LEBONDEAL_API_KEY');
if (!apiKey) { throw new Error("Clé API manquante dans les propriétés du script."); }
Le script de synchronisation doit orchestrer la lecture des identifiants, l'appel à l'API et le traitement des résultats. On commence par récupérer LEBONDEAL_BASE_URL et LEBONDEAL_API_KEY depuis les variables d'environnement du projet Google Apps Script via PropertiesService. Cette approche sécurise vos clés sans les exposer dans le code source.
La requête GET s'effectue sur l'endpoint /api/v1/leboncoin/search en passant l'URL de recherche Leboncoin comme paramètre url. L'en-tête Authorization: Bearer <clé> est obligatoire pour authentifier la demande auprès du service. Une fois la réponse JSON reçue, on vérifie que le statut HTTP est 200 OK avant d'extraire les données.
Le traitement itère sur la liste ads contenue dans la réponse. Pour chaque annonce, on extrait l'id, le titre, le prix et l'url. Ces valeurs sont ensuite écrites ligne par ligne dans une feuille Google Sheets dédiée. On initialise cette feuille si elle n'existe pas déjà pour éviter les erreurs d'écriture.
price vaut null, car cela indique souvent un prix à négocier ou non renseigné.Voici le code complet du script Apps Script (JavaScript) pour exécuter cette synchronisation. Notez que la syntaxe ici utilise JavaScript standard compatible avec l'environnement Google Apps Script, bien que votre demande mentionne Python ; les principes d'authentification et de parsing restent identiques.
function syncLeboncoinPrices() {
const base = PropertiesService.getScriptProperties().getProperty('LEBONDEAL_BASE_URL');
const apiKey = PropertiesService.getScriptProperties().getProperty('LEBONDEAL_API_KEY');
// URL de recherche Leboncin à configurer ici
const searchUrl = encodeURIComponent("https://www.leboncoin.fr/recherche?category=15");
const endpoint = `${base}/api/v1/leboncoin/search?url=${searchUrl}`;
const options = {
method: 'get',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Accept': 'application/json'
}
};
try {
const response = UrlFetchApp.fetch(endpoint, options);
const json = JSON.parse(response.getContentText());
if (!json.ads || json.ads.length === 0) return;
const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Suivi_Prix');
if (sheet.getLastRow() === 0) {
sheet.appendRow(['ID', 'Titre', 'Prix', 'URL']); // En-têtes une seule fois
}
json.ads.forEach(ad => {
const price = ad.price !== null ? `=${ad.price}` : ''; // Formatage Excel pour tri numérique
sheet.appendRow([ad.id, ad.title, price, ad.url]);
});
Logger.log(`${json.ads.length} annonces synchronisées.`);
} catch (e) {
Logger.log(`Erreur sync: ${e.message}. Vérifiez votre clé ou le quota sur /tarifs/.`);
}
}
Ce script utilise UrlFetchApp.fetch pour effectuer la requête HTTP. Il parse manuellement le JSON et écrit les données brutes dans Google Sheets. L'ajout du caractère = devant le prix force Excel à interpréter la cellule comme une valeur numérique, facilitant ainsi les tris futurs par ordre croissant ou décroissant des tarifs.
Google Apps Script offre un moteur de planification intégré qui élimine la nécessité de maintenir des serveurs externes ou d'utiliser des outils tiers comme cron. Pour automatiser le rafraîchissement de votre tableau de bord, vous devez configurer un déclencheur temporel (time-driven trigger) au sein de l’éditeur de scripts. Cette méthode garantit que vos données restent synchronisées avec la source sans intervention manuelle constante.
Dans l'interface Apps Script, accédez à la section « Déclencheurs » dans le menu latéral gauche. Sélectionnez l'option pour ajouter un nouveau déclencheur et configurez les paramètres suivants :
syncLeboncoinPrices).Il est crucial de gérer les erreurs dans votre script, car les déclencheurs s'exécutent en arrière-plan sans console visible par défaut. Utilisez try...catch pour capturer d'éventuels échecs (comme une clé API invalide ou un problème réseau) et loguez le résultat via Logger.log() afin de vérifier l'historique des exécutions dans la vue « Exécutions ».
Pour optimiser les coûts, surveillez régulièrement votre solde. Si vous utilisez plusieurs sources, consultez la documentation API pour comprendre comment les crédits sont débités par requête. Une mauvaise configuration du déclencheur peut entraîner une consommation rapide de vos ressources si le script tourne en boucle sans gestion d'erreur appropriée.
Consultez les spécifications techniques et générez votre clé d'authentification sur notre page produit.
Découvrir l'API LeBonDealLire la documentationLe scraping automatisé via Google Apps Script doit gérer les instabilités réseau inhérentes aux appels HTTP externes. L'API LeBonDeal impose des limites de débit strictes pour prévenir la surcharge de ses infrastructures. Ignorer ces contraintes entraîne un blocage temporaire de votre clé d’authentification, interrompant ainsi le flux de données vers votre tableau de bord.
Il est impératif d’intégrer une logique de reprise après erreur (retry logic) dans vos scripts Apps Script. Lorsque vous recevez un code HTTP 429 (rate_limited), n’effectuez aucune nouvelle requête immédiatement. Attendez, puis réessayez avec un délai croissant pour respecter les politiques anti-spam sans connaître la durée exacte du blocage par l’en-tête Retry-After, car celui-ci n’est pas garanti dans notre réponse.
Pour garantir la stabilité à long terme de votre surveillance des prix :
credits_remaining avant d’exécuter un lot important de requêtes afin d’éviter les erreurs 402 (insufficient_credits). Consultez nos tarifs pour comprendre la consommation par requête.Comment récupérer ma clé API LeBonDeal ?
Vous générez votre clé d'authentification directement depuis le tableau de bord utilisateur sur la page dédiée à l'API. Cette clé est affichée une seule fois lors de sa création et doit être conservée précieusement.
Quel endpoint utiliser pour extraire une liste d'annonces ?
L'endpoint GET `/api/v1/leboncoin/search` permet d'extraire les données des annonces. Il nécessite en paramètre obligatoire l'url de recherche Leboncoin que vous souhaitez analyser.
Est-il possible de suivre l'historique des prix dans Google Sheets ?
Oui, il suffit d'indexer les résultats par l'id unique de chaque annonce et de comparer la valeur du champ `price` entre deux exécutions successives. Les annonces dont le prix est null doivent être ignorées pour garantir la cohérence des données.
Combien coûte chaque requête via cette méthode ?
Le coût exact en crédits n'est pas fixe dans cet article car les tarifs évoluent régulièrement. Vous devez consulter la page `/tarifs/` ou votre tableau de bord pour connaître le prix actuel par requête et vérifier votre solde restant.
LeBonDeal
Bot Discord gratuit pour vos alertes Leboncoin, et API à la demande pour extraire des données Leboncoin, Vinted, Kleinanzeigen et Marktplaats en JSON.
© 2026 LeBonDeal — Tous droits réservés.