Obtenir une clé
Les clés se créent et se gèrent sur Mon compte → Mon API. Il faut un compte LogiScan ordinaire (adresse et mot de passe) et, pour appeler en réel, des crédits.
Une clé a la forme lsk_live_ ou lsk_test_, suivie de huit caractères d'identifiant puis de trente-deux caractères secrets. Seuls les seize premiers caractères (le préfixe) sont conservés en clair et affichés dans vos pages. Le secret est haché (HMAC-SHA256) et ne peut pas être relu.
Le secret s'affiche une seule fois, à la création. Si vous le perdez, faites tourner la clé : vous en obtenez une nouvelle, l'ancienne répond encore le temps du sursis.
Deux modes : bac à sable et réel
Une clé lsk_test_ appelle les mêmes routes, avec les mêmes formes de réponse, et ne coûte rien : les réponses sont fictives, tirées d'un jeu figé (une commune fictive, des ventes inventées). Aucune source réelle n'est lue et votre solde n'est pas touché.
Une clé lsk_live_ rend de vraies données et consomme des crédits. Un compte a au plus une clé active par mode. Pour en créer une seconde, révoquez ou faites tourner la première.
Le bac à sable montre la forme des réponses, pas des données réelles : adresses, ventes et diagnostic y sont fictifs. Pour juger la qualité des données, passez en réel (un crédit par analyse).
Présenter la clé
Chaque appel porte l'en-tête Authorization: Bearer <clé>. La clé n'est acceptée ni en paramètre d'adresse ni en cookie. Une clé absente, mal formée, inconnue ou révoquée reçoit la même réponse : 401 invalid_key.
/v1/account
Le compte derrière la clé
0 crédit
Gratuit. Le solde en crédits, l'usage sur quatre fenêtres (24 h, 7 j, 30 j et 90 j, cette dernière étant aussi la durée pendant laquelle l'usage est gardé), et les tarifs en vigueur.
curl -s 'https://logiscan.fr/v1/account' \
-H 'Authorization: Bearer lsk_test_VOTRE_CLE'
import httpx
CLE = "lsk_test_VOTRE_CLE"
reponse = httpx.get(
"https://logiscan.fr/v1/account",
headers={"Authorization": f"Bearer {CLE}"},
timeout=30,
)
print(reponse.status_code, reponse.json())
const CLE = "lsk_test_VOTRE_CLE";
const reponse = await fetch("https://logiscan.fr/v1/account", {
method: "GET",
headers: { Authorization: `Bearer ${CLE}` },
});
console.log(reponse.status, await reponse.json());
Réponse du bac à sable — ce qu'une clé lsk_test_ reçoit, données fictives
{
"email": "vous@exemple.fr",
"key": {
"prefixe": "lsk_test_BACASABL",
"libelle": "bac à sable",
"mode": "test",
"created_at": "2026-09-01T09:00:00Z",
"expires_at": null
},
"balance_credits": 0.0,
"usage": {
"24h": {
"calls": 3,
"credits": 0.0
},
"7d": {
"calls": 3,
"credits": 0.0
},
"30d": {
"calls": 3,
"credits": 0.0
},
"90d": {
"calls": 3,
"credits": 0.0
}
},
"tarifs": {
"account": 0.0,
"analyses.listing_url": 1.0,
"analyses.listing_text": 0.6,
"analyses.address": 0.6,
"dpe": 0.1,
"listings.completeness": 0.05
}
}
Faire tourner une clé sans interruption
Sur Mon API, « Faire tourner » crée une nouvelle clé et laisse l'ancienne répondre pendant un sursis (une heure par défaut). Pendant ce temps, les deux répondent, et GET /v1/account avec l'ancienne porte key.expires_at, la date à laquelle elle cessera. Déployez la nouvelle, puis laissez l'ancienne s'éteindre, ou révoquez-la sur-le-champ.
Révoquer
« Révoquer » coupe une clé immédiatement, qu'elle soit active ou en sursis. Elle répond ensuite 401. Les crédits restent sur le compte : ils appartiennent au compte, pas à la clé.
Une clé employée pour une collecte de masse est révoquée par LogiScan (voir les conditions d'utilisation).
Bonnes pratiques
- Gardez la clé côté serveur, dans une variable d'environnement ou un coffre, pas dans un navigateur, une application mobile ou un dépôt.
- Une clé par environnement : le bac à sable en développement et en intégration continue, le réel en production.
- Faites tourner la clé après un départ d'équipe ou une fuite supposée.