Bulk SERP API para
Coloque um milhão de buscas do Google na fila em poucos minutos e deixe a Semscraper fazer a coleta. Até 1.000 palavras-chave por chamada de API, processamento assíncrono, callbacks assinados e recuperação gratuita de todos os resultados.
- 1.000 palavras-chave por chamada
- Assíncrona, com callbacks assinados
- Cerca de € 30 a cada 100.000 SERPs
- 1.000 SERPs grátis
- Sem cartão de crédito
Coloque 1 milhão de buscas do Google na fila
Envie até 1.000 palavras-chave por chamada de API, com até 500 chamadas por minuto, sem esperar que os lotes anteriores terminem. Suas requisições entram na fila na hora e são processadas aos poucos, conforme a capacidade fica disponível. Capacidade de envio não é o mesmo que velocidade de processamento: o tempo real de conclusão depende da carga da fila e da capacidade disponível, que ampliamos à medida que a demanda cresce.
1. Você envia
Lotes de 1.000 palavras-chave, quantas chamadas você precisar. Cada palavra-chave tem seu próprio país, idioma, cidade, dispositivo e profundidade.
2. Nós coletamos
Cada SERP é renderizada em um navegador real. Cada conta tem sua própria fila, as contas são atendidas em rodízio e uma prioridade de 1 a 10 define a ordem das suas próprias requisições.
3. Você recebe
Cada resultado é enviado para a sua URL de callback assim que fica pronto, ou você busca os resultados concluídos em lotes, quando quiser.
Feita para
O que uma equipe que faz dezenas de milhares de buscas por dia realmente precisa.
Callbacks assinados
Todo callback traz no cabeçalho X-Signature uma assinatura HMAC SHA-256 do corpo, calculada com a chave do seu menu de chaves de API.
Recuperação confiável e gratuita
Os resultados concluídos que nunca foram buscados continuam disponíveis e podem ser listados em uma única chamada. Buscar resultados é gratuito e pode ser repetido: só a criação de uma busca é cobrada.
SERPs completas, até 10 páginas
Resultados orgânicos com posição no ranking e em pixels, AI Overviews, anúncios, local pack e todos os outros blocos, em JSON ou HTML. Veja a lista completa na Google Search API.
Quanto custa
Pague por SERP, sem assinatura. Seu saldo nunca expira.
| SERPs | Página 1 (cerca de 10 resultados) | 10 páginas (cerca de 100 resultados) |
|---|---|---|
| 10.000 | € 3,00 | € 21,00 |
| 100.000 | € 30,00 | € 210,00 |
| 1.000.000 | € 300,00 | € 2.100,00 |
Tarifa padrão, antes do desconto de 1 a 10% nas recargas. Se o Google retornar menos páginas do que o solicitado, só as páginas encontradas são cobradas. Preços detalhados.
Um exemplo funcional,
Python: coloque uma lista de palavras-chave na fila, verifique os callbacks e depois recupere tudo o que o seu servidor deixou passar. Executado na API em produção em 9 de outubro de 2026: callbacks recebidos com assinaturas válidas, loop de recuperação rodado duas vezes sem nada pendente na segunda passada e nenhuma cobrança pela busca dos resultados. Este exemplo usa o Google.com em inglês; para o Google Brasil, use location "br" e language "pt".
# 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 em
Nosso estudo sobre AI Overviews coletou mais de 2,15 milhões de SERPs no total, em desktop e celular. Uma de suas campanhas colocou na fila cerca de um milhão de palavras-chave francesas em 12 de setembro de 2026. As 958.176 SERPs foram todas coletadas e recuperadas em 4 h 23 min a partir da primeira requisição, sem nenhum erro. A hora de maior movimento entregou 237.043 SERPs. Trata-se de uma coleta real feita na nossa própria conta, não de uma velocidade garantida: o tempo de conclusão depende da profundidade, do número de requisições em espera e da capacidade disponível.
958.176
SERPs de uma página coletadas e recuperadas, sem nenhum erro.
4 h 23 min
da primeira requisição ao último resultado.
237.043
SERPs na hora de maior movimento da coleta.
O que
| Assunto | Como funciona |
|---|---|
| Uma SERP x um lote inteiro | Uma única SERP leva cerca de trinta segundos na mediana, e cerca de um minuto para 10 páginas, porque é renderizada em um navegador real. Muitos robôs trabalham em paralelo, então um lote é processado aos poucos e termina bem antes da soma de suas SERPs. |
| Capacidade | Nossa frota de robôs cresce com a demanda: aumentamos a capacidade conforme os volumes sobem. Se você planeja volumes muito grandes e recorrentes, avise com antecedência e dimensionaremos tudo para você. |
| Entrega dos callbacks | Cada resultado é enviado uma única vez. Se o seu endpoint não responder HTTP 200, o resultado simplesmente fica pendente e o loop de recuperação o busca depois. |
| Busca por ID | Até 100 IDs por chamada. Para grandes volumes, use os callbacks ou a lista de resultados concluídos e ainda não buscados (até 1.000 por chamada). |
| Tempo real | Feita para coleta em grande escala, não para responder a um chatbot no momento. Para datasets e agentes de IA, veja a SERP API para IA. |
Perguntas frequentes
Quantas palavras-chave posso enviar de uma vez?
O que acontece se o meu endpoint de callback estava fora do ar?
Como verifico se um callback vem mesmo da Semscraper?
Um mesmo lote pode misturar países, dispositivos e profundidades?
Quanto tempo levam 100.000 SERPs?
Saiba mais
Clusterização de palavras-chave por similaridade de SERP
Duas palavras-chave que mostram as mesmas páginas no Google atendem à mesma intenção: uma única página deve trabalhar as duas. Veja o método, os limites certos e um script pronto para usar.
Ler o guia →AI Overviews na França: uma SERP em cada duas, e um em cada dois chega com atraso
Coletamos mais de 2 milhões de SERPs do Google França, um milhão de palavras-chave em desktop e as mesmas em mobile, para medir o peso real dos AI Overviews.
Ler o guia →Como fazer scraping do Google em 2026
Coletar resultados do Google em grande escala nunca foi tão exigente: os 100 resultados por página acabaram, os AI Overviews carregam com atraso e as SERPs mudam de uma cidade para outra. Veja as opções e as armadilhas.
Ler o guia →Comece com a sua própria lista de palavras-chave
1.000 SERPs grátis, sem cartão de crédito.