Cómo extraer datos de productos de Amazon sin que te bloqueen

Resultados, precios, valoraciones y ASINs de Amazon en JSON: por qué el DIY falla rápido, el coste real y un ejemplo en Python probado. Agosto 2026.

Seguimiento de precios, monitorización de competidores, enriquecimiento de catálogo: todos parten de la misma necesidad, los datos de producto de Amazon como campos estructurados en lugar de HTML. Así es como conseguirlos de forma fiable, con un ejemplo probado y el coste real por solicitud.

¿Por qué falla el scraping directo de Amazon?

Amazon opera una de las infraestructuras anti-bot más agresivas de la web pública, y falla por etapas en lugar de todo de golpe:

  1. Los bloqueos llegan rápido. Las IPs de datacenter reciben el control anti-robot tras un puñado de solicitudes. Los proxies residenciales duran más pero cuestan dinero de verdad por gigabyte, y Amazon perfila activamente el comportamiento de la sesión, no solo las IPs.
  2. El markup cambia constantemente. Amazon hace pruebas A/B de los diseños por marketplace, por categoría y por sesión. Un parser que hoy funciona en electrónica de amazon.com mañana se rompe en menaje de amazon.de.
  3. El fallo silencioso es peor que el ruidoso. En vez de una página de error, a menudo recibes una página degradada: sin precio, sin valoración, solo resultados patrocinados. Tu pipeline sigue funcionando y llena tu base de datos de agujeros, en silencio.

El resultado: la vía DIY no es un script, es un presupuesto de proxies más un equipo de mantenimiento de parsers. Si los datos de producto no son tu producto, ese es el sitio equivocado para invertir tiempo de ingeniería.

La versión que funciona

import requests

API_KEY = "faf_live_..."  # tu clave de FastAF

resp = requests.get(
    "https://api.fastaf.co/v1/amazon",
    params={
        "query": "mechanical keyboard",
        "domain": "com",
    },
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=60,
)
resp.raise_for_status()

for item in resp.json()["results"]:
    if item["type"] == "search_product":
        print(f'{item["price"]:>8}  {item["stars"]}★ ({item["total_reviews"]})  {item["asin"]}  {item["title"][:60]}')

Ejecutamos exactamente esta solicitud mientras escribíamos este post (agosto de 2026). Una búsqueda devolvió 16 productos orgánicos más los bloques de marca patrocinada, por 1 crédito, y cada producto trae: asin, price y extracted_price (numérico), old_price para descuentos tachados, stars, total_reviews, number_of_people_bought (“3K+ bought in past month”), is_best_seller, is_amazon_choice, has_prime, limited_time_deal, estimaciones de entrega y la URL del producto. El parámetro domain cambia de marketplace (com, co.uk, de, it, …), page pagina los resultados, postal_code localiza disponibilidad y entrega.

¿Endpoint de búsqueda o de producto?

El endpoint de búsqueda de arriba responde a “qué se posiciona para esta consulta y a qué precio”. Para datos completos de una sola ficha, pasa un ASIN en su lugar:

resp = requests.get(
    "https://api.fastaf.co/v1/amazon",
    params={"resource": "product", "asin": "B0CF3VGQFL", "domain": "com"},
    headers={"Authorization": f"Bearer {API_KEY}"},
    timeout=60,
)

Eso devuelve la página de producto completa como campos: puntos destacados, descripción, imágenes, variantes, información de vendedor y buybox, posiciones por categoría. El patrón práctico para el seguimiento de precios es buscar una vez para descubrir ASINs y posiciones, y luego llamar al endpoint de producto solo para las fichas que realmente rastreas.

¿Cuánto cuestan los datos de Amazon?

Una solicitud a Amazon en FastAF cuesta 1 crédito, el endpoint más barato que ofrecemos, porque no necesita renderizado de JavaScript. En concreto, a precios de agosto de 2026:

Volumen Créditos Pack que lo cubre Coste
1.000 productos, actualización diaria 30.000 (30 días) Growth, $29 ~$11,60 del pack
10.000 productos, actualización diaria 300.000 (30 días) Scale, $99 el pack entero
Barrido de catálogo puntual, 50.000 artículos 50.000 Growth, $29 ~$19,30 del pack

Una solicitud fallida o bloqueada nunca se cobra: los créditos se reservan al iniciar la solicitud y se devuelven si no llega ningún resultado. El plan gratuito es de 500 créditos sin tarjeta, es decir, 500 solicitudes a Amazon, suficiente para validar la cobertura de campos en tu propia categoría antes de pagar nada.

Los errores que de verdad cuestan dinero

Rastrear con la búsqueda en vez de con el endpoint de producto. Los resultados de búsqueda omiten datos por vendedor y pueden reordenarse; los ASINs son estables. Descubre con la búsqueda, rastrea con resource=product.

Ignorar extracted_price. El campo price es una cadena para mostrar (“$69.99”); extracted_price es el número. Analizar con regex las cadenas de visualización es como nacen los bugs de moneda.

Actualizar todo al mismo ritmo. Los precios de fichas volátiles (ofertas, batallas de buybox) cambian cada hora; los artículos de cola larga del catálogo cambian cada semana. Sin separar los niveles de actualización, la mayor parte de tu presupuesto de créditos desaparece.

Asumir un solo marketplace. El mismo ASIN puede diferir en precio, disponibilidad e incluso título entre com, de y co.jp. Si vendes en tres mercados, rastrea tres valores de domain; son tres créditos, no uno.