Documentation de l’API
Intégrez les données immobilières d’Immocalcul à vos applications avec une API simple et sécurisée.
01 — Quickstart
Activer votre accès API
Complétez ces étapes dans l’ordre avant d’effectuer votre premier appel.
Valider votre identité
La validation Stripe Identity est obligatoire pour protéger votre compte et activer l’accès API.
Accepter les conditions
Lisez et acceptez les conditions d’utilisation de l’API depuis votre dashboard.
Créer vos clés et ajouter des fonds
Générez votre clé et votre secret, puis assurez-vous que votre solde Immocalcul contient suffisamment de fonds.
URL de base — Production
https://api.immocalcul.com
02 — Auth
Authentification
Toutes les routes /api/* nécessitent les deux en-têtes suivants :
HTTP headers
x-api-key: imc_live_xxxxx x-api-secret: imc_enc_xxxxx
03 — Endpoint
Vérifier l’accès
/api/ping
Vérifie la clé, le secret et l’état du compte.
cURL
curl https://api.immocalcul.com/api/ping \ -H "x-api-key: VOTRE_CLE" \ -H "x-api-secret: VOTRE_SECRET"
JSON
{
"ok": true,
"message": "api ok",
"keyName": "cle_production"
}04 — Endpoint
Rechercher une propriété
/api/property
Recherche l’adresse la plus pertinente, puis récupère sa fiche dans le rôle foncier.
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
string | string | Oui | Adresse recherchée, entre 3 et 200 caractères |
lot | boolean | Non | Retourne le numéro de cadastre lorsque true |
Tarification
| Appel | Prix |
|---|---|
| Recherche normale | 20 ¢ |
| Recherche avec lot=true | 30 ¢ |
Exemple standard
cURL
curl -G https://api.immocalcul.com/api/property \ --data-urlencode "string=999 Avenue Démo Laval" \ -H "x-api-key: VOTRE_CLE" \ -H "x-api-secret: VOTRE_SECRET"
Exemple avec cadastre
cURL
curl -G https://api.immocalcul.com/api/property \ --data-urlencode "string=999 Avenue Démo Laval" \ --data-urlencode "lot=true" \ -H "x-api-key: VOTRE_CLE" \ -H "x-api-secret: VOTRE_SECRET"
Exemples d’intégration
JavaScript · Node.js
// Node.js 18+ — exécution côté serveur uniquement
const params = new URLSearchParams({
string: "999 Avenue Démo Laval",
lot: "true",
});
const response = await fetch(
`https://api.immocalcul.com/api/property?${params}`,
{
headers: {
"x-api-key": process.env.IMMOCALCUL_API_KEY,
"x-api-secret": process.env.IMMOCALCUL_API_SECRET,
},
}
);
const data = await response.json();
if (!response.ok) throw new Error(data.error);
console.log(data.property);Ces exemples doivent être exécutés sur votre serveur. Configurez IMMOCALCUL_API_KEY et IMMOCALCUL_API_SECRET dans les variables d’environnement de votre application.
Réponse réussie
JSON
{
"query": "999 Avenue Démo Laval",
"count": 1,
"property": {
"identification": {
"idProvince": "00000000000000000000000",
"codeMunicipalite": "65005",
"municipalite": "Laval",
"anneeRole": 2025,
"matricule": "000000000000000000",
"adresseComplete": "999 Avenue Démo",
"codePostal": "H0H 0H0",
"arrondissement": "Vimont",
"numeroAdresseInferieur": 999,
"fractionAdresseInferieure": null,
"numeroAdresseSuperieur": null,
"fractionAdresseSuperieure": null,
"codeGeneriqueVoie": "avenue",
"codeLienVoie": null,
"nomVoiePublique": "DÉMO",
"pointCardinal": null,
"numeroAppartementOuLocal": null,
"complementAppartementOuLocal": null,
"numeroBatiment": null,
"numeroLocal": null
},
"proprietaire": {
"dateInitialeInscription": "1989-03-21",
"statutImpositionScolaire": 1,
"codeConditionsInscription": "Propriétaire du terrain"
},
"caracteristiques": {
"frontageTerrain": 18.53,
"superficieTerrain": 615.7,
"codeZonageAgricole": 0,
"superficieExploitationAgricole": null,
"superficieAgricoleEnZoneAgricole": null,
"nombreEtages": 2,
"anneeConstruction": 1982,
"aireEtagesBatimentPrincipal": 285.2,
"codeLienPhysique": "Jumelé",
"codeGenreConstruction": "À étages entiers",
"nombreLogements": 4,
"nombreChambresLocatives": null,
"nombreLocauxNonResidentiels": null,
"superficieAgricoleImpositionMaximale": null,
"superficieForestiereTotale": null,
"superficieForestiereEnZoneAgricole": null
},
"valeurs": {
"dateReferenceMarche": "2023-07-01",
"terrain": 258800,
"batiments": 694500,
"immeuble": 953300,
"immeubleRolePrecedent": 735400
}
}
}05 — HTTP
Erreurs
Toutes les erreurs utilisent le format suivant :
JSON
{
"error": "Description de l’erreur."
}| HTTP | Signification |
|---|---|
400 | Paramètre string ou lot invalide |
401 | Clé ou secret absent/invalide |
402 | Solde insuffisant |
403 | Clé désactivée/révoquée ou compte non autorisé |
404 | Propriété ou rôle foncier introuvable |
500 | Erreur interne du serveur |
Solde insuffisant
JSON
{
"error": "Solde insuffisant pour cette recherche.",
"requiredCents": 30,
"balanceCents": 10
}06 — Best practices
