Extrae Resultados de Búsqueda de eBay como JSON con el Plugin eBay Search
eBay es uno de los mayores conjuntos de datos estructurados de precios reales de internet. Para cualquier producto que se te ocurra, hay anuncios en vivo con un precio, un estado, una puntuación de reputación del vendedor y un coste de envío asociados. Esos datos son oro para la monitorización de precios, el arbitraje de reventa, la investigación de mercado y para construir herramientas del tipo “cuánto vale esto”. La parte difícil siempre ha sido extraerlos.
Hacer scraping de eBay a mano significa pelearte con una página de búsqueda cargada de JavaScript, rotar IPs para evitar bloqueos y escribir selectores que se rompen en cuanto eBay cambia el diseño. Y eso antes de lidiar con el hecho de que eBay opera 19 marketplaces regionales, cada uno con su propio dominio, moneda y particularidades.
El nuevo plugin eBay Search elimina toda esa capa. Envías una palabra clave y recibes un array JSON limpio de anuncios. Este artículo explica qué devuelve el plugin, cómo llamarlo, cómo filtrar y ordenar resultados, y cómo construir algo útil sobre él.
Qué Hace el Plugin eBay Search
El plugin toma una palabra clave de búsqueda - lo mismo que escribirías en el cuadro de búsqueda de eBay, como teclado mecánico o reloj omega vintage - y devuelve la página de resultados como JSON estructurado. Sin parsear HTML, sin navegador headless, sin rotación de proxies por tu parte.
Funciona en los 19 marketplaces regionales, desde ebay.com en EE. UU. hasta ebay.com.au en Australia, así que puedes comparar el mismo producto entre países y monedas con la misma llamada.
Para cada anuncio de los resultados, obtienes campos como:
title- el título del anuncioprice- el precio numérico, más un códigocurrencyapartecondition- el estado legible por humanos, con unconditionCodenormalizadoseller- el nombre de usuario del vendedor y su puntuación de feedbackshipping- el coste de envío (o que el envío es gratis)sold,watchers,bids- señales de demanda del anuncioimage- la URL de la miniatura del anunciourl- una URL de artículo limpia y canónica
Como el price numérico y el conditionCode están normalizados, puedes ordenar, filtrar y agregar los resultados directamente sin parsear cadenas como “1.299,99 €” ni adivinar qué significa “Segunda mano - Excelente”.
La Petición
El endpoint es una única llamada POST a /marketplace/ebay-search. El único parámetro obligatorio es tu palabra clave. La autenticación es una cabecera, x-scrapeunblocker-key, con tu clave de API.
Esta es la llamada más simple posible con 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": "teclado mecánico", "domain": "ebay.com"}'
El parámetro domain es como eliges un marketplace regional. Déjalo en ebay.com para EE. UU., o ponlo en ebay.co.uk, ebay.de, ebay.com.au, etc. para buscar en otro país. La currency devuelta sigue al marketplace, así que una búsqueda en ebay.de vuelve en EUR.
Filtrar los Resultados
La mayoría de los casos reales necesitan algo más que una búsqueda por palabra clave. El plugin expone los mismos filtros que usarías en la barra lateral de eBay, como campos de la petición:
condition- restringe a nuevo, usado, reacondicionado, etc.listing_type- subasta frente a precio fijo (Cómpralo ya)min_price/max_price- una banda de preciosfree_shipping- solo anuncios con envío gratisseller- anuncios de un vendedor concretocategory- restringe a una categoría de eBay
Por ejemplo, para encontrar teclados mecánicos usados por menos de 80 EUR en el marketplace alemán, con envío gratis:
curl -X POST "https://api.scrapeunblocker.com/marketplace/ebay-search" \
-H "x-scrapeunblocker-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "teclado mecánico",
"domain": "ebay.de",
"condition": "used",
"max_price": 80,
"free_shipping": true
}'
Ordenar y Paginar
Por defecto eBay devuelve su orden “Mejor coincidencia”. Puedes anularlo con el parámetro sort - por ejemplo newly_listed para ver primero los anuncios más recientes, que es lo que quieres si estás vigilando inventario nuevo en lugar de navegando.
La paginación se controla con page y page_size. Las opciones de tamaño de página reflejan las de eBay: 60, 120 o 240 resultados por página. Si estás extrayendo una instantánea completa de una categoría, usa page_size: 240 y recorre page hasta quedarte sin resultados, en lugar de hacer muchas peticiones pequeñas.
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("reloj omega vintage", domain="ebay.com", sort="newly_listed")
for item in data["results"]:
print(item["price"], item["currency"], "-", item["title"])
Una Nota Sobre las Coincidencias Aproximadas
Un detalle que conviene señalar: cuando eBay no tiene una coincidencia exacta para tu consulta, no devuelve una página vacía. En su lugar sirve una página de sugerencias vagamente relacionadas. Eso está bien para una persona navegando, pero puede contaminar silenciosamente un conjunto de datos si asumes que cada resultado es una coincidencia real.
El plugin gestiona esto con honestidad. Cuando los resultados no son coincidencias exactas, la respuesta pone exactMatches: false e incluye un campo notice que explica lo ocurrido, en lugar de disfrazar las sugerencias como aciertos reales. En tu código, comprueba esa bandera antes de fiarte de los resultados:
data = search_ebay("un número de modelo muy concreto")
if not data.get("exactMatches", True):
print("Sin coincidencias exactas:", data.get("notice"))
else:
process(data["results"])
Esta única comprobación te evita construir en silencio un índice de precios a partir de relleno del tipo “también te puede interesar”.
Qué Puedes Construir con Él
Una vez que los anuncios de eBay son JSON limpio, muchas herramientas pequeñas y útiles pasan de ser un proyecto a ser una tarde de trabajo:
- Monitorización de precios - lanza la misma consulta de forma programada, guarda el precio mediano y avisa cuando se mueva. Como
pricees numérico, la agregación es trivial. - Reventa y arbitraje - compara los recuentos de
soldy los precios de venta entreebay.comyebay.co.ukpara detectar diferencias regionales. - Investigación de mercado - extrae una categoría entera con
page_size: 240y agrupa porconditiony feedback del vendedor para entender quién vende qué y a qué precio. - Bots de ofertas - filtra por
max_priceyfree_shipping, ordena pornewly_listedy sondea buscando anuncios nuevos por debajo de un umbral.
Cada uno de estos es solo el plugin más unas pocas líneas de tu propia lógica - sin infraestructura de scraping que cuidar.
Preguntas Frecuentes
¿Necesito una cuenta de desarrollador o clave de API de eBay? No. El plugin no usa la API oficial Finding ni Browse de eBay, así que no hay registro de app en eBay, ni flujo OAuth, ni aprobación por marketplace. Llamas al endpoint de ScrapeUnblocker con tu propia clave.
¿Qué marketplaces están soportados?
19 sitios regionales de eBay, desde ebay.com hasta ebay.co.uk, ebay.de, ebay.com.au y más. Ajusta el parámetro domain para elegir uno. Los precios vuelven en la moneda nativa de ese marketplace.
¿Cuántos resultados puedo obtener por llamada?
Hasta 240 anuncios por página mediante page_size, y puedes paginar con page para profundizar en una categoría.
¿Puedo filtrar por subasta o Cómpralo ya?
Sí. Usa listing_type para restringir a subastas o a precio fijo, y combínalo con min_price, max_price, condition y free_shipping para acotar el conjunto.
¿Qué pasa si no hay coincidencias exactas?
La respuesta vuelve con exactMatches: false y un campo notice, y los results contienen las sugerencias vagamente relacionadas de eBay. Comprueba la bandera antes de tratarlas como coincidencias reales.
Para Terminar
El plugin eBay Search convierte la parte más caótica de la recolección de datos de eBay - la página de resultados de búsqueda - en una única llamada JSON. Te saltas el navegador headless, la rotación de proxies y los selectores frágiles, y vas directo a campos normalizados que puedes ordenar, filtrar y agregar.
Si quieres probarlo, el endpoint está disponible a través del panel de control y documentado junto a los demás scrapers listos para usar en la documentación para desarrolladores. Es uno más de un conjunto creciente de plugins en ScrapeUnblocker que devuelven datos limpios y estructurados de sitios que, de otro modo, requerirían trabajo real de scraping.
Prueba ScrapeUnblocker gratis
Tasa de éxito del 95%+ · desde 0,55 € por cada 1000 llamadas · 500 solicitudes gratis al registrarte.