Documentation / Concepts / Crédits
Crédits & facturation
Les crédits sont la monnaie d'utilisation de l'API. Chaque appel coûte un nombre fixe de crédits, débité avant l'exécution de la requête.
Cycle de vie des crédits
- Création du premier token : 500 crédits gratuits sont attribués une seule fois, au moment de la première création de token.
- Recharge mensuelle (plan gratuit) : le 1er de chaque mois à minuit UTC, 500 crédits sont automatiquement ajoutés à tous les tokens gratuits actifs.
- Achat de crédits : les packs unitaires sont crédités immédiatement après le paiement Stripe.
- Plans par abonnement : les crédits mensuels sont ajoutés à la réception de l'événement
invoice.payment_succeededStripe — pas à la validation du checkout. - Rotation de token : créer un nouveau token révoque l'ancien et transfère le solde existant. Vous ne recevez pas un nouveau lot de 500 crédits.
Déduction avant exécution
Les crédits sont déduits avant l'exécution de chaque requête. Si votre solde est insuffisant, la requête est bloquée avec HTTP 402 (REST) ou un message d'erreur dans content[0].text (MCP).
Vérifiez votre solde en amont
Sur les appels coûteux (20 crédits pour
get_property_history), assurez-vous d'avoir un solde suffisant avant d'enchaîner plusieurs requêtes. Le champ _credits.remaining est inclus dans chaque réponse réussie.Remboursement automatique
Si une requête échoue après déduction (erreur DB, timeout, 404), les crédits sont remboursés automatiquement. Cas de remboursement :
- Timeout ou erreur SQL inattendue
GET /v1/transactions/:id— 404 transaction introuvableGET /v1/businesses/:siren— 404 SIRET introuvable
Indicateur de solde bas
Lorsque votre solde descend sous les 20 crédits, un champ note apparaît dans _credits :
"_credits": {
"used": 5,
"remaining": 12,
"note": "Low credits! Recharge at normi.fr/dashboard/credits"
}Coûts par outil
| Outil MCP / Endpoint REST | Crédits |
|---|---|
search_properties / GET /v1/transactions | 5 cr. |
get_market_stats / GET /v1/stats/market | 5 cr. |
GET /v1/transactions/:id | 2 cr. |
GET /v1/businesses/:siren | 2 cr. |
search_businesses / GET /v1/businesses/search | 5 cr. |
get_building_context / GET /v1/transactions/:id/bdnb | 2 cr. |
GET /v1/transactions/:id/dpe | 2 cr. |
GET /v1/bdnb/stats | 5 cr. |
find_comparables / GET /v1/comparables | 10 cr. |
estimate_property / GET /v1/estimate | 10 cr. |
get_price_trends / GET /v1/stats/trends | 10 cr. |
compare_neighborhoods / GET /v1/stats/compare | 10 cr. |
get_market_activity / GET /v1/market-activity | 10 cr. |
get_market_score / GET /v1/market-score | 10 cr. |
get_dpe_stats / GET /v1/dpe/stats | 10 cr. |
get_dpe_premium / GET /v1/stats/dpe-premium | 10 cr. |
dpe_market_analysis / GET /v1/dpe/prix-par-classe | 10 cr. |
GET /v1/dpe/passoires-thermiques | 10 cr. |
GET /v1/dpe/evolution-prime-verte | 10 cr. |
get_age_adjusted_stats / GET /v1/bdnb/age-stats | 10 cr. |
get_renovation_score / GET /v1/bdnb/renovation-score | 10 cr. |
get_market_heatmap / GET /v1/heatmap | 15 cr. |
get_property_history / GET /v1/property-history | 20 cr. |
portfolio_add (Maison/Appartement) | 10 cr. |
portfolio_add (autre type) | 2 cr. |
portfolio_list / portfolio_get / portfolio_update / portfolio_delete | gratuit |
alert_create / alert_list / alert_update / alert_delete | gratuit |
Optimiser la consommation
Utilisez
summary_only=true sur search_properties pour économiser la largeur de bande contexte sans réduire le coût en crédits. Chaînez les appels MCP intelligemment : un appel get_market_stats (5 cr.) avant un find_comparables (10 cr.) évite souvent d'appeler get_property_history (20 cr.).