Monitore menções à marca e à concorrência com a API do Google News
Consulte um conjunto de termos de busca em um cronograma, elimine duplicados pelo link do artigo, e veja só o que mudou desde a última execução. Testado com uma resposta real em agosto de 2026.

Você quer saber quando sua empresa, seu produto ou um concorrente é mencionado nas notícias. O Google Alerts já faz algo parecido, mas chega como e-mail no cronograma do próprio Google, misturado na sua caixa de entrada com todos os outros alertas que você já tem rodando, e não tem nada ali para conectar a um script. O que você realmente quer é uma busca que você controla, no seu próprio cronograma, que te avisa só o que mudou desde a última vez que você checou.
O que o /v1/news te dá
Mande uma query para o /v1/news e você recebe de volta news_results, uma lista de artigos com title, snippet, source (o nome da publicação, não um domínio), url, e um campo chamado lastUpdated. Rodamos isso com a frase “web scraping api” enquanto escrevíamos este post, em agosto de 2026, e recebemos 10 artigos por 5 créditos, de fontes incluindo 24-7 Press Release Newswire, HackerNoon e KDnuggets. No seu caso, a busca é o nome da sua marca, do seu produto, ou o nome de um concorrente.
A pegadinha do “desde a última execução”
A forma óbvia de achar artigos novos é comparar o lastUpdated com a última vez que você consultou. Não construa assim. Na nossa amostra, o lastUpdated voltou como “2 days ago” para um artigo e “May 12, 2026” para outro, na mesma resposta. O Google News mistura formatos relativos e absolutos dependendo de quão recente é o artigo, e fazer o parsing correto de “2 days ago” significa saber exatamente quando a requisição rodou, em qual fuso horário, e refazer essa conta toda vez.
O campo url funciona melhor como chave de deduplicação, mesmo não sendo o link puro do site de origem. É um caminho relativo de redirecionamento do Google, começando com /goto?url=, não é algo que você mostraria ao leitor como está, mas cada artigo na resposta recebe um valor diferente, que é exatamente o que uma chave de deduplicação precisa. Mantenha em disco um conjunto de valores de url que você já viu, e trate qualquer coisa fora desse conjunto como novidade.
Consulte como um job agendado
import json
import requests
API_KEY = "faf_live_..." # sua chave FastAF
SEEN_FILE = "seen_articles.json"
def fetch_news(query):
resp = requests.get(
"https://api.fastaf.co/v1/news",
params={"query": query, "results": 10},
headers={"Authorization": f"Bearer {API_KEY}"},
timeout=60,
)
resp.raise_for_status()
return resp.json()["news_results"]
def load_seen():
try:
with open(SEEN_FILE) as f:
return set(json.load(f))
except FileNotFoundError:
return set()
def save_seen(seen):
with open(SEEN_FILE, "w") as f:
json.dump(sorted(seen), f)
seen = load_seen()
new_articles = []
for term in ["Acme Robotics", "Acme Robotics recall"]:
for article in fetch_news(term):
link = article["url"]
if link in seen:
continue
seen.add(link)
new_articles.append((term, article))
save_seen(seen)
for term, a in new_articles:
print(f'[{term}] {a["source"]} ({a["lastUpdated"]}): {a["title"]}')
Rode isso pelo cron, ou qualquer agendador que você já use, uma vez por hora ou uma vez por dia. A primeira execução imprime tudo, porque o seen_articles.json ainda não existe. Toda execução seguinte imprime só os artigos cujo url ainda não estava no arquivo: sem reler as menções de ontem, sem e-mail resumo para escanear, só o que é novo.
O que isso não faz
Isso consulta o índice de notícias do Google, não uma torrente de tudo que é publicado em qualquer lugar. Se um veículo não está indexado pelo Google News, uma menção lá não vai aparecer não importa com que frequência você consulte, porque o endpoint vê o mesmo índice que uma pessoa veria na página de resultados. Consultar com mais frequência reduz o intervalo entre a publicação e o Google indexá-la; isso não adiciona fontes que o Google News ainda não tem.
Quanto custa
Uma chamada custa 5 créditos. Monitorar três termos de hora em hora dá 72 chamadas por dia, 360 créditos por dia, cerca de 10.800 créditos por mês: os 20.000 créditos do pacote Starter de $10 cobrem quase dois meses disso, e os 75.000 do pacote Growth de $29 quase sete. Requisições com falha não são cobradas, então errar os termos de busca algumas vezes não custa nada.
Comece com o plano gratuito, 500 créditos e sem cartão, o que dá 100 chamadas: suficiente para rodar alguns termos por um dia e ver como o seu mercado realmente aparece no Google News antes de se comprometer com um cronograma.