Alternativa à Google Custom Search JSON API:
O Google fechou a Custom Search JSON API para novos clientes e vai desativá-la para todos em 1º de janeiro de 2027. O Semscraper coleta a página de resultados real do Google, renderizada em um navegador, até 10 páginas por palavra-chave, cerca de 100 resultados conforme a consulta, com pagamento por uso em créditos pré-pagos e sem assinatura.
- A SERP real do Google, não um índice reduzido
- Até 10 páginas por palavra-chave
- 1.000 buscas de uma página por € 0,30
- 1.000 SERPs grátis
- Sem cartão de crédito
O que o Google anunciou,
Segundo a documentação do Google (developers.google.com/custom-search/v1/overview e a central de ajuda do Programmable Search Engine), consultada em 10 de outubro de 2026.
Desde 20 de janeiro de 2026
Os novos Programmable Search Engines ficam limitados a 50 domínios escolhidos: a opção "Pesquisar em toda a Web" não é mais oferecida. Os mecanismos existentes que a usam podem mantê-la até 1º de janeiro de 2027.
Fechada para novos clientes
Um novo projeto não pode mais ativar a Custom Search JSON API. Para buscar em até 50 domínios, o Google indica o Vertex AI Search; a busca em toda a Web precisa ser solicitada ao Google.
1º de janeiro de 2027
Fim da Custom Search JSON API para os clientes existentes. Toda aplicação que ainda a chama precisa ter migrado.
Para quais usos
O Semscraper não é uma cópia idêntica do Custom Search: é uma API que coleta a página do Google como um usuário a vê. Ela substitui bem alguns usos, não todos.
Sim: acompanhar o Google
Monitoramento de posições, acompanhamento da concorrência, estudos de SERP, AI Overviews: você obtém os resultados reais do google.com.br, do google.com ou de qualquer outro país, incluindo cidade e dispositivo.
Sim: alimentar ferramentas e agentes
Datasets, enriquecimento de dados, agentes e pipelines de RAG que precisam do que o Google realmente mostra. O processamento é assíncrono: conte com cerca de vinte segundos de coleta por busca, não com uma resposta instantânea.
Não: a busca interna do seu site
Uma caixa de busca que precisa responder em uma fração de segundo sobre as suas próprias páginas pede um mecanismo de busca de site, ou o Vertex AI Search, que o Google oferece para até 50 domínios.
Custom Search JSON API ou Semscraper:
| Critério | Custom Search JSON API | Semscraper |
|---|---|---|
| Origem dos resultados | O seu Programmable Search Engine. Mesmo configurado para toda a Web, o Google informa que ele cobre apenas parte do seu índice e destaca os seus próprios sites. | A página de resultados real do Google, renderizada em um navegador de verdade. |
| Conteúdo | Uma lista de resultados da Web, sem os recursos da Pesquisa Google (Oneboxes, pesquisa universal). | Cada bloco da página: resultados orgânicos, anúncios, pacote local, People Also Ask, AI Overviews com suas fontes, e mais. |
| Número de resultados | 10 por requisição, no máximo 100 paginando (start + num não pode passar de 100). | Até 10 páginas do Google em uma única chamada, cerca de 100 resultados conforme a consulta. |
| País, idioma, cidade, dispositivo | gl favorece os resultados de um país, hl define o idioma da interface, lr e cr filtram os documentos. | Versão do Google (país e idioma), cidade ou coordenadas GPS, desktop ou mobile. |
| Funcionamento | Síncrono: a resposta vem na própria chamada. | Assíncrono: você cria as buscas (até 1.000 por chamada) e depois obtém os resultados pelo ID ou os recebe em uma URL de callback. Cerca de vinte segundos de coleta em mediana para uma página, cerca de cinquenta para 10, mais a espera na fila da sua conta (medido em 12 milhões de SERPs, 5,3 milhões de uma página e 260 mil de 10 páginas, de 12 de setembro a 10 de outubro de 2026). |
| Preço | 100 consultas grátis por dia, depois US$ 5 a cada 1.000, até 10.000 por dia. | € 0,30 a cada 1.000 buscas de uma página, € 2,10 a cada 1.000 buscas de 10 páginas. Sem assinatura, sem limite diário, e o seu saldo nunca expira. |
| Busca em domínios definidos | Sim, agora é o único modo dos novos mecanismos (50 domínios). | Sem lista de domínios salva: o operador site: na palavra-chave restringe uma busca a um domínio. |
| Busca de imagens | Sim (searchType=image). | Não. Só o bloco de Imagens, quando o Google o exibe na página de resultados, é retornado. |
Adaptar
Os parâmetros não são intercambiáveis: veja como adaptar as suas chamadas. Os operadores do Google passam sem alteração na palavra-chave.
| Custom Search | Semscraper |
|---|---|
q | keyword |
gl | location, a versão do Google, que não é um código de país: gl=br vira location=br (google.com.br), gl=us vira location=en (google.com) |
hl | language, que forma um par válido com location: br/pt, en/en, fr/fr... |
num, start | depth, de 1 a 10 páginas do Google, todas retornadas pela mesma chamada |
siteSearch | site:exemplo.com.br na palavra-chave |
exactTerms | Aspas na palavra-chave |
excludeTerms | -palavra na palavra-chave |
fileType | filetype:pdf na palavra-chave |
lr, cr | Sem equivalente direto: escolha a versão do Google e o idioma |
searchType=image | Sem equivalente |
key, cx | Uma única chave de API, enviada no cabeçalho Authorization: Bearer |
Migrar uma chamada,
A mesma necessidade em Python: os 10 primeiros resultados orgânicos de uma consulta no google.com.br. A principal diferença é o fluxo em duas etapas: criar e depois obter.
import requests
r = requests.get("https://www.googleapis.com/customsearch/v1", params={
"key": "GOOGLE_API_KEY",
"cx": "SEARCH_ENGINE_ID",
"q": "tênis de corrida",
"gl": "br",
"hl": "pt-BR",
"num": 10,
})
for item in r.json().get("items", []):
print(item["link"], item["title"], item["snippet"])
import time
import requests
API = "https://api.semscraper.com/v1/serp"
HEADERS = {"Authorization": "Bearer API_KEY"}
# 1. create the search (up to 1,000 keywords per call)
r = requests.post(API, headers=HEADERS, timeout=60, json=[{
"search_engine": "google_search",
"keyword": "tênis de corrida",
"location": "br",
"language": "pt",
"device": "desktop",
"depth": 1,
}])
r.raise_for_status()
ids = [row["id"] for row in r.json()["data"]]
# 2. fetch the results once ready (about 20 s of collection for a depth-1 search,
# plus queue time), 10 minutes at most
deadline = time.time() + 600
while ids and time.time() < deadline:
time.sleep(10)
r = requests.get(API, headers=HEADERS, timeout=60,
params={"ids": ",".join(ids[:100]), "output": "json"}) # 100 IDs per call
r.raise_for_status()
for row in r.json()["data"]:
if row["status"] != "done":
continue
ids.remove(row["id"])
for block in row["results"]:
if block["type"] == "organic":
for item in block["items"]:
print(item["url"], item["title"], item["description"])
if ids:
print("Still pending, fetch them later by ID:", ids)
O campo link vira url, snippet vira description. Cada resultado traz também a sua posição dentro do bloco (rank_type), a sua posição na página (rank_serp), a sua página do Google e a sua posição em pixels. Para milhares de palavras-chave: crie-as em lotes de 1.000, obtenha os resultados em lotes de 100 IDs ou receba-os em uma URL de callback. Veja a Bulk SERP API.
Migrar
Uma migração exige preparação: reserve alguns dias de testes antes de desligar a API antiga.
1. Testar
Execute as suas consultas representativas com as 1.000 SERPs grátis que você recebe no cadastro.
2. Adaptar
Parâmetros (gl vira location), a passagem para chamadas assíncronas e os campos da resposta (link vira url, snippet vira description).
3. Comparar
Relevância, cobertura dos resultados, prazos e consumo, em uma amostra das suas consultas reais.
4. Migrar
Passe a sua aplicação para o Semscraper depois de validar os resultados, bem antes de 1º de janeiro de 2027.
Quanto custa,
Preços públicos: Google consultado em 10 de outubro de 2026, Semscraper pela tarifa padrão, antes dos descontos de recarga.
| Necessidade | Custom Search JSON API | Semscraper |
|---|---|---|
| 1.000 palavras-chave, 1 página (cerca de 10 resultados) | US$ 5 (1.000 consultas pagas, fora da cota grátis diária) | € 0,30 |
| 1.000 palavras-chave, 10 páginas (cerca de 100 resultados) | US$ 50 (10 consultas pagas por palavra-chave, fora da cota grátis diária) | € 2,10 |
| Mais de 10.000 consultas por dia | Impossível: limite de 10.000 por dia | Sem limite diário |
Se as 100 consultas grátis do dia ainda não tiverem sido usadas, conte US$ 4,50 e US$ 49,50. A Custom Search JSON API não está mais disponível para novos clientes: estes preços valem apenas para as contas existentes, até 1º de janeiro de 2027. Preços detalhados do Semscraper.
Perguntas frequentes
Quando a Custom Search JSON API será desativada?
O Semscraper retorna os mesmos resultados que o Custom Search?
Posso limitar as buscas aos meus domínios?
A resposta é instantânea?
Quanto custa o Semscraper depois da migração?
Saiba mais
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 →SERPs geolocalizadas: os resultados do Google vistos de uma cidade
Duas pessoas que fazem a mesma pesquisa em duas cidades diferentes não veem a mesma página. Para medir o SEO local, é preciso coletar a SERP a partir da localização certa.
Ler o guia →Alternativa à SerpApi: o comparativo honesto
A SerpApi é uma das APIs de SERP mais conhecidas. Se você procura uma alternativa para o Google Search e o Google Maps, veja o que diferencia os dois serviços, inclusive onde a SerpApi se sai melhor.
Ler o guia →Teste as suas consultas antes do prazo
1.000 SERPs grátis, sem cartão de crédito.