Les tarifs
Lus dans la configuration du service à chaque affichage : ce que cette page montre est ce que le service facture.
| Service | Route | Crédits par appel |
|---|---|---|
| Analyse d'une annonce par son lien | analyses.listing_url | 1 |
| Analyse d'une annonce par son texte | analyses.listing_text | 0,6 |
| Analyse d'une adresse postale | analyses.address | 0,6 |
| Lecture d'un diagnostic énergétique | dpe | 0,1 |
| Complétude d'une annonce | listings.completeness | 0,05 |
Un crédit vaut une analyse par lien d'annonce. Recharge à partir de 5 € ; le barème des paliers est sur les conditions.
Recharger
La recharge se fait par carte, sur Mon API → Acheter des crédits, par paliers ; les paliers les plus hauts portent un bonus. Le reçu Stripe tient lieu de facture. Le solde est crédité par le webhook de paiement, jamais par la page de retour : une redirection est une adresse, et n'importe qui peut l'appeler.
Les crédits n'expirent pas, ne sont pas remboursables — ni sur demande, ni à la suppression du compte — et sont perdus si le compte est supprimé : la page de suppression l'écrit avant que vous confirmiez. C'est une décision de produit, écrite dans les conditions, et il n'existe aucune fonction de remboursement, ni pour vous, ni pour nous.
Quand un appel est facturé, et quand il ne l'est pas
Le crédit est réservé avant tout travail (402 insufficient_credit sans rien écrire si le solde ne couvre pas), réglé quand la réponse est là, rendu si une source est en panne. La réponse porte billed: true ou false pour que vous n'ayez pas à le deviner.
| Situation | Facturé ? | Pourquoi |
|---|---|---|
| Analyse terminée, avec ou sans candidat | oui | Le travail a été fait : une liste vide est une réponse. |
Deal Score sous huit ventes (donnees_insuffisantes) | oui | Les ventes ont été lues ; il n'y en a pas assez pour noter, et c'est dit. |
| Adresse inconnue de la Base Adresse Nationale | oui | Le référentiel a répondu qu'il ne la connaît pas. |
| Diagnostic inconnu du référentiel (404) | oui | Le miroir puis l'API ont été consultés. |
| Même lien déjà résolu dans l'heure (cache) | oui | Servi de notre mémoire au tarif plein : le cache protège nos coûts, ce n'est pas une remise. |
Rejeu avec la même Idempotency-Key | non | C'est le même appel, pas un second. |
Source en panne (source_unavailable), file saturée, faute interne | non | Le crédit réservé est rendu ; réessayez. |
| Clé invalide, corps invalide, plafond atteint | non | Rien n'a été réservé. |
Bac à sable (lsk_test_) | non | Coût zéro, toujours. |
Lire son usage
GET /v1/account rend usage, quatre fenêtres emboîtées — 24h, 7d, 30d, 90d — avec le nombre d'appels et les crédits réglés (un appel rendu compte un appel et zéro crédit). La fenêtre de quatre-vingt-dix jours est aussi la durée pendant laquelle l'usage est gardé : « 90 jours » ne ment jamais. La même chose se lit sur Mon API, avec le détail par service.
/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, 90 j — la dernière est 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
}
}