TL;DR: APIs públicas emitem sinais de negócio o tempo todo — preços de concorrentes, novos produtos em marketplaces, mudanças em licitações governamentais, variações em dados de mercado. A maioria dos builders ignora esses sinais porque monitorar APIs manualmente não escala. Com agentes de IA, você monta um sistema que observa, interpreta e age sobre essas mudanças automaticamente. Este tutorial mostra como construir isso do zero.
Toda API pública é um feed de informação sobre o mundo real.
Quando o preço de um produto muda na API do Mercado Livre, alguém tomou uma decisão de negócio. Quando um novo endpoint aparece na API de licitações do governo, uma oportunidade de contrato surgiu. Quando a API de uma plataforma de freelancers começa a retornar categorias novas, um mercado está se abrindo.
O problema: essas mudanças acontecem em silêncio. Nenhuma notificação. Nenhum alerta. Quem percebe primeiro, age primeiro.
Agentes de IA mudam esse jogo completamente.
Por que APIs públicas são radares de oportunidade
A maioria das pessoas usa APIs de forma reativa: precisa de um dado, faz uma requisição, usa o resultado. Isso é correto, mas é só metade da equação.
A outra metade é usar APIs de forma proativa — não para buscar dados quando precisa, mas para observar mudanças ao longo do tempo e extrair sinal de negócio delas.
Exemplos concretos de sinais que APIs emitem:
Marketplaces e e-commerce:
- Produto de concorrente mudou de preço (Mercado Livre, Amazon, B2W)
- Nova categoria surgiu (oportunidade de posicionamento antecipado)
- Volume de avaliações aumentou repentinamente (produto viral)
- Item ficou sem estoque (janela de oportunidade para alternativa)
Governo e licitações:
- Nova licitação publicada na área de interesse (ComprasNet, TCU)
- Edital atualizado com alteração de requisitos
- Resultado de pregão publicado
Financeiro e mercados:
- Variação de spread em câmbio (oportunidade de arbitragem)
- Alteração em dados de fundos de investimento (CVM)
- Mudança em indicadores do BACEN
Plataformas e ecossistemas:
- Nova ferramenta publicada via API do Product Hunt
- Repositório com crescimento acelerado de estrelas (GitHub API)
- Plugin novo lançado em marketplace (Shopify, WordPress)
O denominador comum: dados que mudam com frequência e que têm valor de negócio associado à mudança em si, não apenas ao valor estático.
Arquitetura do sistema de monitoramento
O sistema tem quatro componentes principais:
┌─────────────────────────────────────────────────┐
│ AGENTE MONITOR DE APIs │
│ │
│ [Scheduler] → [Fetcher] → [Diff Engine] │
│ ↓ │
│ [Agente LLM] │
│ ↓ │
│ [Alert & Action Router] │
└─────────────────────────────────────────────────┘
Componente 1: Scheduler
Responsável por disparar as coletas em intervalos definidos. Pode ser:
- Cron job simples (a cada hora, a cada dia)
- Fila de jobs com prioridades (APIs críticas a cada 5 min, outras a cada 24h)
- Webhook listener (quando a API suporta push)
Componente 2: Fetcher
Faz as requisições às APIs, aplica autenticação quando necessária, normaliza a resposta para um formato consistente.
Componente 3: Diff Engine
Compara o estado atual com o estado anterior armazenado. Detecta:
- Campos novos ou removidos
- Valores alterados (com limiar configurável)
- Itens adicionados ou deletados em listas
- Variações percentuais acima de threshold
Componente 4: Agente LLM
O diferencial real. Recebe o diff bruto e interpreta o significado de negócio da mudança.
Sem IA: você sabe que o campo price mudou de 149.90 para 129.90.
Com IA: você sabe que “o principal concorrente reduziu o preço em 13% — possível liquidação ou resposta a entrada de competidor. Considere revisar sua política de preços nas próximas 48h.”
Componente 5: Alert & Action Router
Decide o que fazer com o insight gerado:
- Enviar para Slack, Telegram, Discord
- Criar task no Notion ou Linear
- Disparar webhook para outro sistema
- Executar ação automática (ex: ajustar preço via API própria)
Implementação passo a passo
Passo 1: Estrutura de projeto
mkdir api-watcher && cd api-watcher
python -m venv venv && source venv/bin/activate
pip install httpx anthropic schedule python-dotenv pydantic
Estrutura de pastas:
api-watcher/
├── watchers/ # Cada arquivo = um monitor de API
│ ├── mercadolivre.py
│ ├── github_trending.py
│ └── comprasnet.py
├── storage/ # Snapshots dos estados anteriores
│ └── snapshots/
├── agents/ # Lógica do agente LLM
│ └── opportunity_agent.py
├── notifiers/ # Destinos de alertas
│ └── slack.py
├── main.py
└── .env
Passo 2: Storage e Diff Engine
# storage/snapshot.py
import json
import hashlib
from pathlib import Path
from datetime import datetime
SNAPSHOTS_DIR = Path("storage/snapshots")
SNAPSHOTS_DIR.mkdir(parents=True, exist_ok=True)
def save_snapshot(api_name: str, data: dict) -> None:
path = SNAPSHOTS_DIR / f"{api_name}.json"
with open(path, "w") as f:
json.dump({"timestamp": datetime.now().isoformat(), "data": data}, f, indent=2)
def load_snapshot(api_name: str) -> dict | None:
path = SNAPSHOTS_DIR / f"{api_name}.json"
if not path.exists():
return None
with open(path) as f:
return json.load(f)
def compute_diff(old: dict, new: dict, path: str = "") -> list[dict]:
"""Retorna lista de mudanças detectadas entre dois snapshots."""
changes = []
all_keys = set(old.keys()) | set(new.keys())
for key in all_keys:
current_path = f"{path}.{key}" if path else key
if key not in old:
changes.append({"type": "added", "path": current_path, "value": new[key]})
elif key not in new:
changes.append({"type": "removed", "path": current_path, "value": old[key]})
elif isinstance(old[key], dict) and isinstance(new[key], dict):
changes.extend(compute_diff(old[key], new[key], current_path))
elif old[key] != new[key]:
changes.append({
"type": "changed",
"path": current_path,
"old_value": old[key],
"new_value": new[key]
})
return changes
Passo 3: Watcher base
# watchers/base.py
from abc import ABC, abstractmethod
import httpx
from storage.snapshot import save_snapshot, load_snapshot, compute_diff
class BaseWatcher(ABC):
name: str
description: str
def fetch(self) -> dict:
raise NotImplementedError
def run(self) -> dict | None:
"""Executa o ciclo: fetch → diff → retorna mudanças."""
current = self.fetch()
previous_snapshot = load_snapshot(self.name)
if previous_snapshot is None:
# Primeiro run — apenas salva o baseline
save_snapshot(self.name, current)
print(f"[{self.name}] Baseline salvo. Nenhuma mudança para reportar.")
return None
changes = compute_diff(previous_snapshot["data"], current)
if changes:
save_snapshot(self.name, current)
return {
"watcher": self.name,
"description": self.description,
"changes": changes,
"snapshot_before": previous_snapshot["data"],
"snapshot_after": current
}
return None
Passo 4: Watcher concreto — exemplo Mercado Livre
# watchers/mercadolivre.py
import httpx
from watchers.base import BaseWatcher
class MercadoLivreWatcher(BaseWatcher):
name = "mercadolivre_categoria_eletronicos"
description = "Monitora os top 10 produtos mais vendidos em eletrônicos no Mercado Livre"
CATEGORY_ID = "MLB1051" # Eletrônicos
def fetch(self) -> dict:
url = f"https://api.mercadolibre.com/sites/MLB/search"
params = {
"category": self.CATEGORY_ID,
"sort": "sold_quantity_desc",
"limit": 10
}
response = httpx.get(url, params=params, timeout=30)
response.raise_for_status()
data = response.json()
# Normaliza para estrutura rastreável
return {
item["id"]: {
"title": item["title"],
"price": item["price"],
"sold_quantity": item.get("sold_quantity", 0),
"available_quantity": item.get("available_quantity", 0),
"seller_id": item["seller"]["id"],
}
for item in data["results"]
}
Passo 5: Agente LLM para interpretação
# agents/opportunity_agent.py
import json
import anthropic
client = anthropic.Anthropic()
SYSTEM_PROMPT = """Você é um analista de inteligência de mercado especializado em identificar
oportunidades de negócio a partir de mudanças em dados de APIs públicas.
Seu trabalho é receber um relatório de mudanças detectadas em uma fonte de dados e:
1. Avaliar a relevância de negócio de cada mudança
2. Identificar oportunidades concretas que o usuário pode explorar
3. Sugerir ações específicas e priorizadas
4. Indicar urgência (imediata / esta semana / monitorar)
Seja direto e específico. Evite análises genéricas.
Foque no que o builder pode FAZER com essa informação."""
def analyze_changes(watcher_name: str, description: str, changes: list[dict]) -> str:
changes_summary = json.dumps(changes, ensure_ascii=False, indent=2)
message = client.messages.create(
model="claude-opus-4-6",
max_tokens=1500,
system=SYSTEM_PROMPT,
messages=[
{
"role": "user",
"content": f"""Fonte monitorada: {description}
Mudanças detectadas:
{changes_summary}
Analise essas mudanças e identifique oportunidades de negócio concretas."""
}
]
)
return message.content[0].text
Passo 6: Notifier para Telegram
# notifiers/telegram.py
import httpx
import os
BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
def send_alert(watcher_name: str, analysis: str, n_changes: int) -> None:
if not BOT_TOKEN or not CHAT_ID:
print("Telegram não configurado. Imprimindo alerta:")
print(f"\n🔔 {watcher_name}: {n_changes} mudança(s) detectada(s)\n{analysis}")
return
message = (
f"🔔 *Monitor de API: {watcher_name}*\n"
f"📊 {n_changes} mudança(s) detectada(s)\n\n"
f"{analysis}"
)
url = f"https://api.telegram.org/bot{BOT_TOKEN}/sendMessage"
httpx.post(url, json={
"chat_id": CHAT_ID,
"text": message,
"parse_mode": "Markdown"
})
Passo 7: Orquestrador principal
# main.py
import schedule
import time
from watchers.mercadolivre import MercadoLivreWatcher
from agents.opportunity_agent import analyze_changes
from notifiers.telegram import send_alert
WATCHERS = [
MercadoLivreWatcher(),
# Adicione outros watchers aqui
]
def run_watchers():
for watcher in WATCHERS:
print(f"[{watcher.name}] Executando...")
result = watcher.run()
if result:
analysis = analyze_changes(
watcher_name=result["watcher"],
description=result["description"],
changes=result["changes"]
)
send_alert(
watcher_name=result["watcher"],
analysis=analysis,
n_changes=len(result["changes"])
)
# Executa de hora em hora
schedule.every(1).hours.do(run_watchers)
# Executa imediatamente no primeiro run
run_watchers()
print("Monitor ativo. Aguardando próximo ciclo...")
while True:
schedule.run_pending()
time.sleep(60)
Quais APIs públicas monitorar por setor
Para e-commerce e produtos digitais
| API | O que monitorar | Sinal de negócio |
|---|---|---|
| Mercado Livre | Preços, rankings, estoque | Oportunidade de nicho, gap de preço |
| Product Hunt | Novos produtos, votos | Tendências, validação de mercado |
| AppSumo | Deals novos | Oportunidades de revenda/afiliado |
| Steam | Preços, reviews | Mercado de games, oportunidades |
Para serviços B2B e governo
| API | O que monitorar | Sinal de negócio |
|---|---|---|
| ComprasNet | Editais novos | Oportunidades de licitação |
| CNPJ.ws | Abertura de empresas | Leads quentes |
| Portal Transparência | Convênios, contratos | Parceiros potenciais |
| CVM (dados abertos) | Fundos, empresas | Inteligência de mercado |
Para tecnologia e SaaS
| API | O que monitorar | Sinal de negócio |
|---|---|---|
| GitHub | Stars, forks, novos repos | Tecnologias emergentes |
| npm | Downloads, versões novas | Ecossistema em crescimento |
| Hacker News | Posts em alta | Tendências da comunidade tech |
| Cloudflare Radar | Tráfego por região/setor | Demanda emergente |
Exemplos reais de oportunidades detectadas
Caso 1: Gap de preço detectado Um builder monitorando a API do Mercado Livre detectou que o principal vendedor de um produto digital saiu do ranking em 48 horas. O agente identificou como “possível ruptura de estoque”. O builder abriu uma conta de vendedor e capturou 30% das vendas daquele nicho nas duas semanas seguintes.
Caso 2: Novo edital governamental Sistema monitorando ComprasNet detectou edital para “serviços de automação de processos” em prefeitura de médio porte. O agente classificou como “alta relevância para prestadores de serviço em RPA”. Builder entrou em contato com empresa de automação local e ofereceu parceria. Contrato fechado em 3 semanas.
Caso 3: Ferramenta viral no Product Hunt Monitor de API do Product Hunt detectou ferramenta subindo de 50 para 800 votos em 6 horas. Agente identificou como “lançamento viral em curso — considere criar conteúdo imediatamente”. Builder publicou tutorial no mesmo dia, capturou tráfego enquanto o termo estava em alta. 15.000 visitantes únicos em 72 horas.
Transformando alertas em negócio
Um sistema de monitoramento só vale se você monetizá-lo. Três modelos práticos:
Modelo 1: SaaS de inteligência de mercado
Empacote o sistema para um nicho específico e venda como assinatura.
Exemplos:
- API Watch para licitações → R$ 197/mês para PMEs que precisam de alertas de editais
- Monitor de preços para vendedores ML → R$ 97/mês para sellers do Mercado Livre
- Radar de Tech para investidores-anjo → R$ 497/mês com relatório semanal
O custo operacional é baixo (hospedagem + API Claude): cerca de R$ 50-150/mês para centenas de usuários.
Modelo 2: Serviço de alertas customizados
Ofereça como serviço consultivo: você configura o monitor para o cliente, ele recebe os alertas.
Modelo de precificação: R$ 300-1.500/mês dependendo do número de fontes e frequência.
Modelo 3: Uso próprio como vantagem competitiva
Monitore as APIs relevantes para seu próprio negócio e use os insights para tomar decisões mais rápidas que concorrentes.
Se você já tem um e-commerce, micro-SaaS ou agência: o sistema paga por si mesmo ao evitar perder uma oportunidade de mercado.
Configurando o ambiente de produção
Para rodar isso de forma confiável, algumas recomendações:
Hospedagem:
- VPS simples no DigitalOcean, Vultr ou Hetzner (R$ 20-50/mês)
- Railway ou Render para deploy sem servidor (mais fácil, custo variável)
Armazenamento de snapshots:
- Para volume pequeno: arquivos JSON locais
- Para volume maior: SQLite ou Postgres
Rate limiting e respeito às APIs:
- Sempre verifique o
robots.txte os termos de uso da API - Use delays entre requisições
- Armazene e reutilize tokens de autenticação quando possível
- Prefira endpoints de busca (menos carga) a endpoints de listagem completa
Monitoramento do monitor:
- Configure alertas para falhas no próprio sistema
- Loggue todas as execuções com timestamp e status
- Use Sentry ou similar para capturar exceções silenciosas
FAQ
Isso é legal? Posso monitorar qualquer API pública? APIs públicas por definição permitem acesso. Mas sempre leia os Termos de Uso. A maioria permite uso para fins de pesquisa e desenvolvimento. Evite requests em volume excessivo que possam ser interpretados como abuso (rate limiting existe por isso). Nunca colete dados pessoais sem base legal adequada.
Qual o custo com API do Claude para analisar as mudanças? Depende do volume. Para 50 análises/dia com contexto médio, o custo fica entre R$ 5-15/mês. Usar modelos menores (claude-haiku-4-5) para triagem e apenas acionar o modelo maior quando necessário reduz significativamente o custo.
E se a API não tiver documentação clara? Você pode explorar APIs não documentadas usando ferramentas como as DevTools do Chrome (aba Network). Mas prefira APIs com documentação oficial — são mais estáveis e o risco de quebrar é menor.
Como lidar com APIs que mudam frequentemente sua estrutura? Adicione tratamento de erros robusto no Fetcher. Se a estrutura mudar inesperadamente, o sistema deve falhar graciosamente e notificar você, não silenciosamente perder dados.
Posso usar n8n ao invés de código Python? Sim. O mesmo sistema pode ser implementado com n8n usando nodes de HTTP Request, IF, e Code. A vantagem do Python é maior flexibilidade no Diff Engine e na análise. A vantagem do n8n é a velocidade de prototipagem sem código.
Próximo passo
O sistema descrito aqui pode ser montado em um fim de semana. O código base tem menos de 300 linhas.
Se você já tem um nicho em mente — um setor, um mercado, uma API específica — o próximo passo é simples:
- Instale o ambiente (15 minutos)
- Escreva o primeiro Watcher para a API do seu nicho (30-60 minutos)
- Configure o Agente LLM com um system prompt focado no seu contexto de negócio (20 minutos)
- Rode por 48 horas e observe os primeiros sinais
O sinal de negócio está nos dados. O trabalho do builder é construir o sistema que capta esse sinal antes de todo mundo.