Contractant BTP : trouver les chantiers a venir dans 15 km autour de ma base
Persona : peintre / plaquiste / electricien / plombier freelance. Temps : 10 minutes d'installation. Budget : 0 EUR (PermisAPI Free + Google Sheets free).
Resultat
Un Google Sheet qui se met a jour tous les matins avec les nouveaux permis logement dans un rayon de 15 km autour de ta base, tries par date d'autorisation.
Architecture
PermisAPI (/v1/permits/near) ---> Apps Script (5 min/jour) ---> Google Sheet
Step 1. Cle API gratuite
Signup https://permisapi.fr (Free 500 req/mois). Tu auras besoin d'environ 30 req/jour = 900/mois. Explorer 49 EUR necessaire si tu scan > 1 zone ou > 2x/jour.
Step 2. Google Sheet + Apps Script (gratuit)
- Nouveau Google Sheet nomme "Chantiers potentiels".
- Colonnes :
Date | Num PA | Ville | Adresse | Superficie | Demandeur | Lien Extensions > Apps Script.- Copie le script ci-dessous.
const API = "https://api.permisapi.fr";
const KEY = "pk_live_TA_CLE_ICI"; // ou via PropertiesService pour securite
// Ma base : Meaux, Seine-et-Marne
const BASE_LAT = 48.9606;
const BASE_LNG = 2.8780;
const RADIUS_M = 15000;
function updateChantiers() {
const sheet = SpreadsheetApp.getActiveSheet();
// Recup permis dans un rayon de 15 km
const url = `${API}/v1/permits/near?lat=${BASE_LAT}&lng=${BASE_LNG}` +
`&radius_m=${RADIUS_M}&limit=100`;
const options = {
method: "get",
headers: {"X-API-Key": KEY},
muteHttpExceptions: true,
};
const resp = UrlFetchApp.fetch(url, options);
const data = JSON.parse(resp.getContentText()).data;
// Filtre permis logement les 30 derniers jours
const cutoff = new Date();
cutoff.setDate(cutoff.getDate() - 30);
const rows = data
.filter(p => p.date_reelle_autorisation &&
new Date(p.date_reelle_autorisation) >= cutoff)
.filter(p => p.permit_type && p.permit_type.includes("PC"))
.map(p => [
p.date_reelle_autorisation,
p.num_pa,
p.adr_localite_ter || "",
`${p.adr_num_ter || ""} ${p.adr_libvoie_ter || ""}`.trim(),
p.superficie_terrain || "",
p.denom_dem || "",
`=HYPERLINK("${API}/v1/permits/${p.num_pa}", "Voir")`
]);
// Clear + re-fill
sheet.getRange(2, 1, sheet.getLastRow() - 1, 7).clearContent();
if (rows.length) {
sheet.getRange(2, 1, rows.length, 7).setValues(rows);
}
Logger.log(`Updated ${rows.length} rows`);
}
Step 3. Trigger auto quotidien
- Dans Apps Script, icone horloge (Triggers).
- Add Trigger :
- Function :
updateChantiers - Event source :
Time-driven - Type :
Day timer - Time :
6am to 7am
- Function :
Gratuit, limite Google : 90 min de script/jour (notre script = 5 sec, aucun souci).
Step 4. Lancer prospection
Tu as maintenant chaque matin une liste fraiche de chantiers potentiellement a demarcher. Workflow :
- Filtre les demandeurs professionnels (SCI, SARL, SAS) vs particuliers.
- Prospecte : courrier postal genere via mail-merge Google Docs + mailing manuel. Cout : ~0,50 EUR par courrier.
- Note les retours dans le sheet (colonne supplementaire
Contacte leResultat).
Bonus : analyse segmentaire
// Compte chantiers par type / demandeur
function analyze() {
// Ajoute une requete stats par commune pour comprendre le volume
const url = `${API}/v1/stats/commune/77284`; // code Meaux
// ... dashboard par commune
}
Budget total
- PermisAPI Free : 0 EUR
- Google Sheets + Apps Script : 0 EUR
- Total : 0 EUR
Upgrade vers Explorer quand ?
- Tu veux scanner plusieurs zones (77 + 93 + 94) -> > 500 req/mois
- Tu veux les alertes webhook temps reel (< 24h apres depot)
- Tu veux historique > 6 mois (regarder les patterns annee N-1)
49 EUR/mois rentable a partir de 1 chantier gagne grace a la detection avancee (margin ~2 000 EUR par chantier BTP).