← Tous les articles

Extraire les Résultats de Recherche eBay en JSON avec le Plugin eBay Search

eBay est l’un des plus grands ensembles de données structurées de prix réels sur internet. Pour n’importe quel produit que vous pouvez nommer, il existe des annonces en direct avec un prix, un état, un score de réputation du vendeur et un coût de livraison. Ces données valent de l’or pour la surveillance des prix, l’arbitrage de revente, l’étude de marché et la création d’outils du type “combien ça vaut”. La partie difficile a toujours été de les extraire.

Scraper eBay à la main, c’est se battre avec une page de recherche lourde en JavaScript, faire tourner des IP pour éviter les blocages, et écrire des sélecteurs qui cassent dès qu’eBay change sa mise en page. Et cela avant même de composer avec le fait qu’eBay exploite 19 places de marché régionales, chacune avec son propre domaine, sa devise et ses particularités.

Le nouveau plugin eBay Search supprime toute cette couche. Vous envoyez un mot-clé, vous recevez un tableau JSON propre d’annonces. Cet article explique ce que renvoie le plugin, comment l’appeler, comment filtrer et trier les résultats, et comment construire quelque chose d’utile par-dessus.

Le plugin prend un mot-clé de recherche - exactement ce que vous taperiez dans la barre de recherche eBay, comme clavier mécanique ou montre omega vintage - et renvoie la page de résultats sous forme de JSON structuré. Pas d’analyse HTML, pas de navigateur headless, pas de rotation de proxys de votre côté.

Il fonctionne sur les 19 places de marché régionales, de ebay.com aux États-Unis à ebay.com.au en Australie, ce qui vous permet de comparer le même produit entre pays et devises avec le même appel.

Pour chaque annonce des résultats, vous obtenez des champs comme :

  • title - le titre de l’annonce
  • price - le prix numérique, plus un code currency distinct
  • condition - l’état lisible, avec un conditionCode normalisé
  • seller - le nom d’utilisateur du vendeur et son score d’évaluation
  • shipping - le coût de livraison (ou le fait que la livraison est gratuite)
  • sold, watchers, bids - des signaux de demande sur l’annonce
  • image - l’URL de la miniature de l’annonce
  • url - une URL d’article propre et canonique

Comme le price numérique et le conditionCode sont normalisés, vous pouvez trier, filtrer et agréger les résultats directement, sans analyser des chaînes comme “1 299,99 €” ni deviner ce que signifie “Occasion - Excellent”.

La Requête

Le point d’accès est un unique appel POST vers /marketplace/ebay-search. Le seul paramètre obligatoire est votre mot-clé. L’authentification se fait via un en-tête, x-scrapeunblocker-key, avec votre clé d’API.

Voici l’appel le plus simple possible avec curl :

curl -X POST "https://api.scrapeunblocker.com/marketplace/ebay-search" \
  -H "x-scrapeunblocker-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "clavier mécanique", "domain": "ebay.com"}'

Le paramètre domain sert à choisir une place de marché régionale. Laissez-le sur ebay.com pour les États-Unis, ou mettez-le sur ebay.co.uk, ebay.de, ebay.com.au, etc. pour chercher dans un autre pays. La currency renvoyée suit la place de marché, donc une recherche sur ebay.de revient en EUR.

Filtrer les Résultats

La plupart des cas d’usage réels demandent plus qu’une simple recherche par mot-clé. Le plugin expose les mêmes filtres que vous utiliseriez dans la barre latérale d’eBay, sous forme de champs de requête :

  • condition - restreindre à neuf, occasion, reconditionné, etc.
  • listing_type - enchère ou prix fixe (Achat immédiat)
  • min_price / max_price - une fourchette de prix
  • free_shipping - uniquement les annonces à livraison gratuite
  • seller - les annonces d’un vendeur précis
  • category - restreindre à une catégorie eBay

Par exemple, pour trouver des claviers mécaniques d’occasion à moins de 80 EUR sur la place de marché allemande, avec livraison gratuite :

curl -X POST "https://api.scrapeunblocker.com/marketplace/ebay-search" \
  -H "x-scrapeunblocker-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "clavier mécanique",
    "domain": "ebay.de",
    "condition": "used",
    "max_price": 80,
    "free_shipping": true
  }'

Trier et Paginer

Par défaut, eBay renvoie son ordre “Meilleure correspondance”. Vous pouvez le remplacer avec le paramètre sort - par exemple newly_listed pour voir d’abord les annonces les plus récentes, ce que vous voulez si vous surveillez de nouveaux stocks plutôt que de parcourir.

La pagination se contrôle avec page et page_size. Les options de taille de page reflètent celles d’eBay : 60, 120 ou 240 résultats par page. Si vous récupérez un instantané complet d’une catégorie, utilisez page_size: 240 et parcourez page jusqu’à épuisement des résultats, plutôt que de faire beaucoup de petites requêtes.

import requests

URL = "https://api.scrapeunblocker.com/marketplace/ebay-search"
HEADERS = {"x-scrapeunblocker-key": "YOUR_API_KEY"}

def search_ebay(query, domain="ebay.com", **filters):
    body = {"query": query, "domain": domain, "page_size": 240, **filters}
    resp = requests.post(URL, headers=HEADERS, json=body, timeout=60)
    resp.raise_for_status()
    return resp.json()

data = search_ebay("montre omega vintage", domain="ebay.com", sort="newly_listed")
for item in data["results"]:
    print(item["price"], item["currency"], "-", item["title"])

Une Note sur les Correspondances Approximatives

Un détail qui mérite d’être souligné : quand eBay n’a pas de correspondance exacte pour votre requête, il ne renvoie pas une page vide. À la place, il sert une page de suggestions vaguement liées. C’est très bien pour une personne qui parcourt, mais cela peut discrètement polluer un jeu de données si vous supposez que chaque résultat est une vraie correspondance.

Le plugin gère cela honnêtement. Quand les résultats ne sont pas des correspondances exactes, la réponse met exactMatches: false et inclut un champ notice qui explique ce qui s’est passé, au lieu de déguiser les suggestions en vrais résultats. Dans votre code, vérifiez ce drapeau avant de faire confiance aux résultats :

data = search_ebay("un numéro de modèle très spécifique")

if not data.get("exactMatches", True):
    print("Pas de correspondance exacte :", data.get("notice"))
else:
    process(data["results"])

Cette simple vérification vous évite de construire en silence un indice de prix à partir de remplissage du type “vous aimerez aussi”.

Ce que Vous Pouvez Construire Avec

Une fois que les annonces eBay sont du JSON propre, beaucoup de petits outils utiles deviennent l’affaire d’un après-midi plutôt que d’un projet :

  • Surveillance des prix - lancez la même requête de façon planifiée, stockez le prix médian et alertez quand il bouge. Comme price est numérique, l’agrégation est triviale.
  • Revente et arbitrage - comparez les compteurs sold et les prix demandés entre ebay.com et ebay.co.uk pour repérer les écarts régionaux.
  • Étude de marché - tirez une catégorie entière avec page_size: 240, puis groupez par condition et par évaluation du vendeur pour comprendre qui vend quoi, et à quel prix.
  • Bots de bonnes affaires - filtrez par max_price et free_shipping, triez par newly_listed, et sondez les nouvelles annonces sous un seuil.

Chacun de ces cas n’est que le plugin plus quelques lignes de votre propre logique - pas d’infrastructure de scraping à surveiller.

FAQ

Ai-je besoin d’un compte développeur ou d’une clé d’API eBay ? Non. Le plugin n’utilise pas l’API officielle Finding ou Browse d’eBay, il n’y a donc pas d’enregistrement d’application eBay, pas de flux OAuth, pas d’approbation par place de marché. Vous appelez le point d’accès ScrapeUnblocker avec votre propre clé.

Quelles places de marché sont prises en charge ? 19 sites eBay régionaux, de ebay.com à ebay.co.uk, ebay.de, ebay.com.au et plus. Réglez le paramètre domain pour en choisir un. Les prix reviennent dans la devise native de cette place de marché.

Combien de résultats puis-je obtenir par appel ? Jusqu’à 240 annonces par page via page_size, et vous pouvez paginer avec page pour aller plus loin dans une catégorie.

Puis-je filtrer par enchère ou Achat immédiat ? Oui. Utilisez listing_type pour restreindre aux enchères ou au prix fixe, et combinez-le avec min_price, max_price, condition et free_shipping pour affiner l’ensemble.

Que se passe-t-il s’il n’y a pas de correspondance exacte ? La réponse revient avec exactMatches: false et un champ notice, et les results contiennent les suggestions vaguement liées d’eBay. Vérifiez le drapeau avant de les traiter comme de vraies correspondances.

Pour Conclure

Le plugin eBay Search transforme la partie la plus chaotique de la collecte de données eBay - la page de résultats de recherche - en un seul appel JSON. Vous vous passez du navigateur headless, de la rotation de proxys et des sélecteurs fragiles, et vous allez droit à des champs normalisés que vous pouvez trier, filtrer et agréger.

Si vous voulez l’essayer, le point d’accès est disponible via le tableau de bord et documenté aux côtés des autres scrapers prêts à l’emploi dans la documentation développeur. C’est l’un d’un ensemble grandissant de plugins sur ScrapeUnblocker qui renvoient des données propres et structurées de sites qui, autrement, demanderaient un vrai travail de scraping.

Essayez ScrapeUnblocker gratuitement

Taux de réussite de plus de 95 % · à partir de 0,55 € pour 1 000 appels · 500 requêtes gratuites à l'inscription.

Essayer gratuitement → Voir les tarifs