Bulk SERP API para
Pon en cola un millón de búsquedas en Google en minutos y deja que Semscraper las recopile. Hasta 1.000 palabras clave por llamada a la API, procesamiento asíncrono, callbacks firmados y recuperación gratuita de todos los resultados.
- 1.000 palabras clave por llamada
- Asíncrona, con callbacks firmados
- Unos 30 € por 100.000 SERPs
- 1.000 SERP gratis
- Sin tarjeta de crédito
Pon en cola 1 millón de búsquedas en Google
Envía hasta 1.000 palabras clave por llamada a la API, con hasta 500 llamadas por minuto, sin esperar a que terminen los lotes anteriores. Tus peticiones entran en la cola al instante y se procesan de forma progresiva a medida que hay capacidad disponible. La capacidad de envío no es el rendimiento de procesamiento: los plazos reales dependen de la carga de la cola y de la capacidad disponible, que ampliamos a medida que crece la demanda.
1. Envías
Lotes de 1.000 palabras clave, tantas llamadas como necesites. Cada palabra clave lleva su propio país, idioma, ciudad, dispositivo y profundidad.
2. Recopilamos
Cada SERP se renderiza en un navegador real. Cada cuenta tiene su propia cola, las cuentas se atienden por turnos y una prioridad de 1 a 10 ordena tus propias peticiones.
3. Recibes
Cada resultado se envía a tu URL de callback en cuanto está listo, o bien recuperas los resultados terminados por lotes cuando quieras.
Pensada para
Lo que de verdad necesita un equipo que lanza decenas de miles de búsquedas al día.
Callbacks firmados
Cada callback incluye en la cabecera X-Signature una firma HMAC SHA-256 de su cuerpo, calculada con la clave de tu menú de claves de API.
Recuperación fiable y gratuita
Los resultados terminados que nunca se recuperaron siguen disponibles y se pueden listar en una sola llamada. Recuperar resultados es gratis y puede repetirse: solo se factura la creación de una búsqueda.
SERPs completas, hasta 10 páginas
Resultados orgánicos con posición y posición en píxeles, AI Overviews, anuncios, local pack y todos los demás bloques, en JSON o HTML. Consulta la API de Google Search para ver la lista completa.
Cuánto cuesta
Pagas por SERP, sin suscripción. Tu saldo no caduca nunca.
| SERPs | Página 1 (unos 10 resultados) | 10 páginas (unos 100 resultados) |
|---|---|---|
| 10.000 | 3,00 € | 21,00 € |
| 100.000 | 30,00 € | 210,00 € |
| 1.000.000 | 300,00 € | 2.100,00 € |
Tarifa estándar, antes del descuento del 1 al 10 % en las recargas. Si Google devuelve menos páginas de las solicitadas, solo se facturan las páginas encontradas. Precios detallados.
Un ejemplo funcional,
Python: pon en cola una lista de palabras clave, verifica los callbacks y recupera después lo que tu servidor se haya perdido. Ejecutado contra la API en producción el 9 de octubre de 2026: callbacks recibidos con firmas válidas, bucle de recuperación ejecutado dos veces sin nada pendiente en la segunda pasada y ningún cargo por recuperar los resultados. Este ejemplo apunta a Google.com en inglés; para Google España, usa location "es" y language "es".
# bulk.py - python bulk.py queue keywords.txt then later python bulk.py catch-up
import json, sys, time
import requests
API = "https://api.semscraper.com/v1/serp"
HEADERS = {"Authorization": "Bearer API_KEY"}
CALLBACK = "https://your-server.com/serp-callback" # or None: catch-up only
def save(serp, path="serps.jsonl"):
with open(path, "a", encoding="utf-8") as f:
f.write(json.dumps(serp, ensure_ascii=False) + "\n")
def queue(keywords):
for i in range(0, len(keywords), 1000): # 1,000 keywords per call
batch = [{
"search_engine": "google_search",
"keyword": kw, # a keyword must not contain a comma
"device": "desktop",
"location": "en",
"language": "en",
"depth": 1,
**({"callback_url": CALLBACK} if CALLBACK else {}),
} for kw in keywords[i:i + 1000]]
for attempt in range(6):
r = requests.post(API, json=batch, headers=HEADERS, timeout=60)
if r.status_code != 429: # 429: over 500 calls/minute, nothing was queued
break
time.sleep(10 * (attempt + 1))
r.raise_for_status()
print(r.json()["count"], "keywords queued")
# callback_server.py - flask --app callback_server run
import hashlib, hmac, json
from flask import Flask, request
SECRET = b"hmac_..." # HMAC key from your API keys menu
app = Flask(__name__)
def save(serp, path="serps.jsonl"):
with open(path, "a", encoding="utf-8") as f:
f.write(json.dumps(serp, ensure_ascii=False) + "\n")
@app.post("/serp-callback")
def serp_callback():
raw = request.get_data()
expected = hmac.new(SECRET, raw, hashlib.sha256).hexdigest()
if not hmac.compare_digest(expected, request.headers.get("X-Signature", "")):
return "Invalid signature", 401
for serp in json.loads(raw): # a list holding the finished SERP
save(serp)
return {"status": "ok"} # anything but 200 leaves it unfetched
# bulk.py, continued: finished results that were never fetched
def catch_up():
while True:
r = requests.get(API, headers=HEADERS, timeout=60) # up to 1,000 per call
r.raise_for_status()
ids = [p["id"] for p in r.json().get("data", [])]
if not ids:
break
for i in range(0, len(ids), 100):
r = requests.get(API, headers=HEADERS, timeout=60,
params={"ids": ",".join(ids[i:i + 100]), "output": "json"})
r.raise_for_status()
for serp in r.json()["data"]:
save(serp) # fetching marks it as fetched, and is never billed
if __name__ == "__main__":
if sys.argv[1] == "queue":
queue(open(sys.argv[2], encoding="utf-8").read().splitlines())
else:
catch_up()
Medido sobre
Nuestro estudio sobre los AI Overviews recopiló en total más de 2,15 millones de SERPs, en escritorio y móvil. Una de sus campañas puso en cola cerca de un millón de palabras clave francesas el 12 de septiembre de 2026. Las 958.176 SERPs se recopilaron y recuperaron en 4 h 23 min desde la primera petición, sin ningún error. La hora de mayor actividad entregó 237.043 SERPs. Se trata de una recopilación real con nuestra propia cuenta, no de un rendimiento garantizado: el plazo depende de la profundidad, del número de peticiones en espera y de la capacidad disponible.
958.176
SERPs de una página recopiladas y recuperadas, sin ningún error.
4 h 23 min
desde la primera petición hasta el último resultado.
237.043
SERPs en la hora de mayor actividad de la ejecución.
Qué
| Aspecto | Cómo funciona |
|---|---|
| Una SERP frente a un lote completo | Una sola SERP tarda unos treinta segundos de mediana, y alrededor de un minuto con 10 páginas, porque se renderiza en un navegador real. Muchos robots trabajan en paralelo, así que un lote se procesa de forma progresiva y termina mucho antes que la suma de sus SERPs. |
| Capacidad | Nuestra flota de robots crece con la demanda: añadimos capacidad a medida que aumentan los volúmenes. Si prevés volúmenes muy grandes de forma recurrente, avísanos con antelación y la dimensionaremos para ti. |
| Entrega de callbacks | Cada resultado se envía una sola vez. Si tu endpoint no responde con HTTP 200, el resultado simplemente queda sin recuperar y el bucle de recuperación lo recoge. |
| Recuperación por ID | Hasta 100 ID por llamada. Para grandes volúmenes, apóyate en los callbacks o en la lista de resultados terminados y no recuperados (hasta 1.000 por llamada). |
| Tiempo real | Pensada para recopilar a gran escala, no para responder a un chatbot en el momento. Para datasets y agentes de IA, consulta la SERP API para IA. |
Preguntas frecuentes
¿Cuántas palabras clave puedo enviar a la vez?
¿Qué pasa si mi endpoint de callback estaba caído?
¿Cómo verifico que un callback procede de Semscraper?
¿Puede un mismo lote mezclar países, dispositivos y profundidades?
¿Cuánto tardarán 100.000 SERPs?
Para ir más allá
Clustering de palabras clave por similitud de SERP
Dos palabras clave que muestran las mismas páginas en Google responden a la misma intención: una sola página debería posicionar para ambas. Aquí tienes el método, los umbrales adecuados y un script listo para usar.
Leer la guía →AI Overviews en Francia: en una SERP de cada dos, y la mitad llega tarde
Hemos recogido más de 2 millones de SERPs de Google en francés, un millón de palabras clave en escritorio y las mismas en móvil, para medir el peso real de los AI Overviews.
Leer la guía →Cómo hacer scraping de Google en 2026
Recoger resultados de Google a gran escala nunca había sido tan exigente: se acabaron los 100 resultados por página, los AI Overviews cargan tarde y las SERPs cambian de una ciudad a otra. Estas son las opciones y las trampas.
Leer la guía →Empieza con tu propia lista de palabras clave
1.000 SERPs gratis, sin tarjeta de crédito.