Ligando o backend real
Assistente para você sair do zero até ver leads reais do Google Maps no preview. Siga os passos, marque cada um ao concluir, e use os botões de diagnóstico nos últimos passos pra confirmar que está tudo de pé.
💰 Calculadora de custo
Estime o gasto mensal com a Places API (New) — SKU Enterprise, que é o que usamos (inclui telefone + website pra filtrar leads).
Base: Text Search Enterprise = $35 / 1000 calls.
Cada busca com varredura de bairros usa ~6 calls (uma por zona).
Google dá $200/mês de crédito (≈ 5.700 calls grátis).
🩺 Solução de problemas
500 — GOOGLE_PLACES_API_KEY não definida
O backend não encontrou a variável. Passos: verifica que o arquivo backend/.env existe
(não só .env.example), que a linha GOOGLE_PLACES_API_KEY=AIza... está
preenchida e sem aspas, e reinicia o uvicorn.
403 REQUEST_DENIED
Duas causas comuns: (1) você restringiu a key por IP e o IP do servidor não bate — temporariamente tire a restrição pra testar; (2) a Places API (New) não foi ativada no projeto (verifique em APIs & Services → Library). Atenção: "Places API" (legada) é diferente de "Places API (New)".
CORS error no console
Você abriu o frontend via file://. Sempre abra por
http://localhost:8000/preview.html (o FastAPI serve os estáticos) — aí é
same-origin e o CORS nem entra na jogada.
0 leads encontrados mesmo com API ok
Provavelmente o filtro only_without_website comeu todo mundo (muitos negócios grandes têm site). Testa categorias mais locais: barbearia, açaí, pet shop, salão de beleza em cidades médias. Ou desliga o toggle "Varrer todos os bairros" e pesquisa em um bairro específico.
Busca muito lenta (>10s)
Normal quando o modo "varrer todos os bairros" está ativo — são 14+ chamadas serializadas. A primeira call do servidor também pode ser lenta (cold-start do httpx). Da segunda em diante deve voar.