Use this file to discover all available pages before exploring further.
Dado uma lista de CPFs — ou apenas telefones/emails — o Sherlocker permite construir um perfil completo de cada lead: nome, endereços, telefones, emails, vínculos empresariais e sinais patrimoniais.
from concurrent.futures import ThreadPoolExecutor, as_completeddef enriquecer(cpf): pessoa = get(f"/pessoas/cpf/{cpf}") if not pessoa.get("nome_completo"): return None enderecos = pessoa.get("enderecos", []) telefones = pessoa.get("telefones", []) return { "cpf": cpf, "nome": pessoa["nome_completo"], "cidade": enderecos[0].get("cidade") if enderecos else None, "uf": enderecos[0].get("uf") if enderecos else None, "telefones": [t.get("numero_completo") for t in telefones], "emails": [e.get("email") for e in pessoa.get("emails", [])], }lista_de_cpfs = ["12345678901", "98765432100", "11122233344"]resultados = []with ThreadPoolExecutor(max_workers=10) as pool: futures = {pool.submit(enriquecer, cpf): cpf for cpf in lista_de_cpfs} for fut in as_completed(futures): r = fut.result() if r: resultados.append(r)