Una extensión de navegador exporta productos de Walmart desde la página que estás mirando; una API los exporta desde un servidor, de forma programada, a cualquier escala. Si necesitas datos de productos de Walmart más de una vez, usa la API. El patrón son dos llamadas: buscar por palabra clave para obtener product_ids, y luego pedir cada product_id para los detalles completos (título, precio, vendedor, stock). Este tutorial muestra las llamadas exactas de Scavio en Python y JavaScript, incluido el truco de campos que hace tropezar a la gente: la búsqueda de Walmart usa query, pero el endpoint de producto usa product_id, no el término de búsqueda. Para situar el coste, las APIs de Walmart de terceros comparables en 2026 son la Merchant API de DataForSEO a 0,001 $ por tarea, los actors de Walmart de Apify a entre 0,75 $ y 1,30 $ por 1.000 productos, y BlueCart desde 18 $/mes por 500 peticiones. Scavio es 1 crédito plano (0,005 $) por llamada, con la misma clave que extrae Amazon, Google, YouTube, Reddit y TikTok, así que un rastreador de precios entre marketplaces funciona con un solo proveedor.
Requisitos previos
- Python 3.9+ con requests, o Node 18+
- Una clave de API de Scavio (50 créditos gratis)
- Una palabra clave o un product_id de Walmart conocido
Guia paso a paso
Paso 1: Configura tu clave
Todos los endpoints REST de Scavio usan Authorization: Bearer con esta clave.
export SCAVIO_API_KEY=sk_your_key_herePaso 2: Busca en Walmart para obtener product_ids
El endpoint de búsqueda toma la palabra clave en query y devuelve una lista de productos, cada uno con un product_id que usas en el siguiente paso.
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}", "Content-Type": "application/json"}
hits = requests.post("https://api.scavio.dev/api/v1/walmart/search",
headers=H, json={"query": "stanley tumbler 40oz"}).json()["data"]
for h in hits[:5]:
print(h["product_id"], h["title"], h.get("price"))Paso 3: Pide los detalles completos por product_id
El endpoint de producto toma product_id (no la palabra clave). Este es el campo que rompe la mayoría de los primeros intentos. Un crédito por llamada.
pid = hits[0]["product_id"]
prod = requests.post("https://api.scavio.dev/api/v1/walmart/product",
headers=H, json={"product_id": pid}).json()["data"]
print(prod["title"], prod["price"], prod.get("seller"), prod.get("in_stock"))Paso 4: Hazlo en bucle para una exportación, en un servidor
Esta es la parte que una extensión no puede hacer: ejecutarse desatendida, de forma programada, escribiendo un archivo limpio. Ponlo tras un cron y tienes una exportación diaria de precios de Walmart.
import csv
rows = []
for h in hits:
p = requests.post("https://api.scavio.dev/api/v1/walmart/product",
headers=H, json={"product_id": h["product_id"]}).json()["data"]
rows.append([p["product_id"], p["title"], p["price"], p.get("in_stock")])
with open("walmart.csv", "w", newline="") as f:
csv.writer(f).writerows([["id","title","price","in_stock"], *rows])Ejemplo en Python
import os, requests
H = {"Authorization": f"Bearer {os.environ['SCAVIO_API_KEY']}",
"Content-Type": "application/json"}
# Search first, then pull a single product by product_id
hits = requests.post("https://api.scavio.dev/api/v1/walmart/search",
headers=H, json={"query": "stanley tumbler 40oz"}).json()["data"]
pid = hits[0]["product_id"]
prod = requests.post("https://api.scavio.dev/api/v1/walmart/product",
headers=H, json={"product_id": pid}).json()["data"]
print(prod["title"], prod["price"], prod.get("seller"), prod.get("in_stock"))Ejemplo en JavaScript
const H = { Authorization: `Bearer ${process.env.SCAVIO_API_KEY}`,
"Content-Type": "application/json" };
const search = await fetch("https://api.scavio.dev/api/v1/walmart/search", {
method: "POST", headers: H, body: JSON.stringify({ query: "stanley tumbler 40oz" })
}).then(r => r.json());
const pid = search.data[0].product_id;
const prod = await fetch("https://api.scavio.dev/api/v1/walmart/product", {
method: "POST", headers: H, body: JSON.stringify({ product_id: pid })
}).then(r => r.json());
console.log(prod.data.title, prod.data.price, prod.data.in_stock);Salida esperada
{
"product_id": "5689919121",
"title": "Stanley Quencher H2.0 FlowState Tumbler 40oz",
"price": 35.00,
"seller": "Walmart.com",
"in_stock": true
}