si tu veux le faire légalement, de manière raisonnable (pas trop d’annonces par heure) la méthode est de faire toi-même la rétro ingénierie : tu postes une annonce et de regarder les informations que ton navigateur envoie au site leboncoin
( sous chrome, F12, onglet réseaux, filtrer sur URL de requête:https://api.leboncoin.fr/api/adsubmit/v2/classifieds?with_variation=true
Méthode de requête: POST )
par exemple voici le format à respecter pour poste une annonce, ca n’inclue pas les photos qui sont déjà chargées sur le site par une autre requête :
tu verras les informations publiques qui sont publiées dans un fichier json :
exemple générique d’un objet JSON envoyé lors de la création d’une annonce sur Leboncoin, :
json
{
« category_id »: « 29 »,
« ad_type »: « sell »,
« email »: « [email protected] »,
« phone »: « +33123456789 »,
« tracking_dd »: « dd:lbc.adlife.abtest.genaidescription:A|lbc.adlife.abtest.photo.first:A »,
« subject »: « VTT tout-terrain haut de gamme »,
« body »: « Un superbe vélo tout-terrain adapté à la montagne et aux sorties longues. Freins à disque, cadre léger en aluminium, etc. »,
« images »: [
{
« name »: « image1.jpg »,
« url »: « https://img.leboncoin.fr/api/v1/lbcpb1/images/xx/xx/xx/image1.jpg?rule=ad-private »
},
{
« name »: « image2.jpg »,
« url »: « https://img.leboncoin.fr/api/v1/lbcpb1/images/yy/yy/yy/image2.jpg?rule=ad-private »
}
],
« location »: {
« address »: « »,
« city »: « Paris »,
« country »: « FR »,
« district »: « »,
« geo_provider »: « here »,
« geo_source »: « city »,
« label »: « Paris (75000) »,
« lat »: 48.856614,
« lng »: 2.3522219,
« zipcode »: « 75000 »
},
« price_cents »: « 30000 »,
« phone_hidden »: true,
« no_salesmen »: false,
« extended_attributes »: {
« shipping »: {
« estimated_parcel_weight »: 3000,
« shipping_types »: [« distance »],
« version »: 2
}
},
« attributes »: {
« custom_ref »: « REF-XX1234 »,
« general_sales_condition »: « 1. Identification : Société Demo — 123 rue Exemple, 75000 Paris… »,
« sports_hobbies_activity »: « cycling »,
« condition »: « etatneuf »,
« quantity »: « 1 »,
« new_item_price »: « 50000 »,
« price_reco »: « 12|40|8|90|abcd1234-e567 »,
« new_item_type »: « destockage »,
« shipping_cost »: « 0 »
}
}
sont les suivantes :
* **category_id** : l’ID de la catégorie ( exemple 29 pour “Sport et plein air” ou équivalent).
* **ad_type** : type de l’annonce (exemple : `sell` pour vente).
* **email** : l’adresse de contact du déposant.
* **phone** : le numéro de téléphone associé (affiché ou non selon `phone_hidden`).
* **tracking_dd** : champ utilisé par Leboncoin pour des tests A/B internes.
* **subject** : le titre de l’annonce.
* **body** : la description (texte libre).
* **images** : liste d’objets, chacun contenant `name` (nom de fichier) et `url` (URL déjà stockée côté Leboncoin).
* **location** : informations géographiques (ville, code postal, coordonnées GPS, etc.).
* **price_cents** : le prix de l’article en centimes (30000 → 300 €).
* **phone_hidden** : `true` ou `false` pour masquer/afficher le numéro dans l’annonce.
* **no_salesmen** : indique si l’auteur de l’annonce accepte ou non les appels à but commercial.
* **extended_attributes** : ici, un objet “shipping” indiquant le poids estimé, le type de livraison, etc.
* **attributes** : regroupe des attributs spécialisés (par exemple `custom_ref` pour votre référence interne, `condition` pour l’état de l’objet, etc.).
tu as fait 10% du boulot :) ensuite si tu es courageux tu essaie de voir comment ca marche avec les cookies datadome, etc...
ou sinon le mieux est de prendre un des 2 outils français recommandés ici ils marchent bien