API Fonciris

Documentation de l'API REST v1

v1

Quickstart

1. Obtenez votre clé API

Souscrivez au plan Business (129€/mois) et générez une clé depuis votre dashboard.

2. Analysez une adresse

Envoyez une requête GET avec l'adresse en paramètre. L'API géocode automatiquement et lance l'analyse complète.

3. Exploitez les données

Score global, risques détaillés, prix DVF, score de négociation, insights actionnables — tout est structuré en JSON.

Testez en une commande :

curl -H "Authorization: Bearer fon_YOUR_API_KEY" \
  "https://fonciris.com/api/v1/score?address=18+Avenue+Pauliani,+Nice"

Authentification

Toutes les requêtes doivent inclure votre clé API dans le header Authorization :

Authorization: Bearer fon_xxxxxxxxxxxxx

Sécurité

  • Ne partagez jamais votre clé API en frontend ou dans du code source public
  • Utilisez des variables d'environnement pour stocker vos clés
  • Révoquez immédiatement une clé compromise depuis votre dashboard

Rate Limiting

PlanPar minutePar jourCrédits / mois
Business601 000100
Partenaire API30010 000Sur mesure

Chaque réponse inclut des headers de rate limiting :

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 57
X-RateLimit-Reset: 1708789260

En cas de dépassement, l'API retourne 429 Too Many Requests avec un header Retry-After.

Endpoints

GET/api/v1/analyze1 crédit

Analyse complète d'une adresse. Retourne le rapport Fonciris en JSON : score, risques, prix DVF, négociation, cadre de vie et insights.

Paramètres

address*stringAdresse complète (ex: 18 Avenue Pauliani, 06000 Nice)
latnumberLatitude (optionnel, sinon géocodée via BAN)
lngnumberLongitude (optionnel)
includestringSections à inclure, séparées par virgule : score, risks, prices, lifestyle, financial, negotiation. Défaut : all

Exemple

curl -X GET "https://fonciris.com/api/v1/analyze?address=18+Avenue+Pauliani,+06000+Nice" \
  -H "Authorization: Bearer fon_YOUR_API_KEY"
Voir un exemple de réponse complète
{
  "status": "success",
  "data": {
    "address": {
      "formatted": "18 Avenue Pauliani, 06000 Nice",
      "latitude": 43.7102,
      "longitude": 7.262,
      "commune": {
        "code": "06088",
        "name": "Nice",
        "department": "06"
      }
    },
    "score": {
      "global": 64,
      "level": "bon",
      "breakdown": {
        "risques_naturels": 45,
        "dynamique_quartier": 72
      }
    },
    "risks": {
      "summary": {
        "critical": 1,
        "warning": 2,
        "info": 3
      },
      "flood_zone": {
        "present": true,
        "level": "Moyen"
      },
      "clay_risk": {
        "present": true,
        "exposure": "Moyen"
      },
      "seismic_zone": {
        "level": 2
      },
      "radon": {
        "zone": 1
      },
      "seveso": {
        "nearby": false,
        "count": 0
      },
      "pollution": {
        "count": 2
      },
      "catnat_count": 83,
      "insurance_surcharge_estimate": {
        "min": 480,
        "max": 960,
        "currency": "EUR",
        "per": "year"
      }
    },
    "prices": {
      "median_per_sqm": 4700,
      "median_price": 265000,
      "trend_1y": -13.2,
      "transactions_count": 47,
      "transactions_nearby": [
        {
          "date": "2025-09-15",
          "price": 265000,
          "surface": 58,
          "price_per_sqm": 4569,
          "type": "Appartement"
        }
      ]
    },
    "negotiation": {
      "score": 67,
      "level": "forte",
      "reference_price": 282000,
      "adjusted_range": {
        "low": 220000,
        "high": 245000
      },
      "factors": [
        {
          "name": "Zone inondable",
          "decote_min": 10,
          "decote_max": 15
        },
        {
          "name": "DPE F",
          "decote_min": 5,
          "decote_max": 12
        }
      ]
    },
    "insights": [
      {
        "type": "critical",
        "title": "Zone inondable : surcoût assurance estimé",
        "message": "Impact financier estimé : +480 à 960€/an d'assurance"
      }
    ],
    "generated_at": "2026-02-25T15:30:00Z",
    "report_url": "https://fonciris.com/dashboard/scans/abc123"
  },
  "credits_used": 1,
  "credits_remaining": 87
}
GET/api/v1/score0.5 crédit

Version allégée : retourne uniquement le score global, le niveau et les risques principaux. Idéal pour un affichage compact ou un tri.

Paramètres

address*stringAdresse complète
latnumberLatitude (optionnel)
lngnumberLongitude (optionnel)

Exemple

curl "https://fonciris.com/api/v1/score?address=18+Avenue+Pauliani,+Nice" \
  -H "Authorization: Bearer fon_YOUR_API_KEY"

Réponse

{
  "status": "success",
  "data": {
    "address": "18 Avenue Pauliani, 06000 Nice",
    "score": 64,
    "level": "bon",
    "risks_count": {
      "critical": 1,
      "warning": 2
    },
    "top_risk": "Zone inondable — aléa moyen",
    "price_trend_1y": -13.2
  }
}
GET/api/v1/risks0.5 crédit

Détail complet des risques naturels et technologiques : inondation, argile, sismique, Seveso, radon, pollution, CatNat, et estimation du surcoût d'assurance.

address*stringAdresse complète
latnumberLatitude (optionnel)
lngnumberLongitude (optionnel)
GET/api/v1/prices0.5 crédit

Prix DVF et transactions immobilières récentes autour de l'adresse. Inclut le prix médian au m², l'évolution sur 1 an, et jusqu'à 20 transactions détaillées.

address*stringAdresse complète
latnumberLatitude (optionnel)
lngnumberLongitude (optionnel)
GET/api/v1/usagegratuit

Statistiques d'utilisation de votre clé API : crédits restants, appels aujourd'hui et ce mois, historique par jour sur 30 jours, détail par endpoint.

Codes d'erreur

CodeSignificationAction
400Bad RequestVérifiez le paramètre 'address'
401UnauthorizedVérifiez votre clé API dans le header Authorization
402Payment RequiredCrédits insuffisants. Achetez des crédits supplémentaires
403ForbiddenPlan Business requis pour l'accès API
429Too Many RequestsAttendez le délai indiqué dans le header Retry-After
500Internal ErrorRéessayez. Si persistant, contactez le support
503Service UnavailableService temporairement indisponible. Réessayez dans quelques minutes

Format d'erreur

{
  "status": "error",
  "error": {
    "message": "Invalid API key",
    "code": 401
  }
}

Champs de la réponse /analyze

address

formattedstringAdresse formatée
latitudenumberLatitude WGS84
longitudenumberLongitude WGS84
commune.codestringCode INSEE de la commune
commune.namestringNom de la commune
commune.departmentstringCode département

score

globalnumberScore Fonciris sur 100
levelstringNiveau qualitatif (excellent, bon, correct, etc.)
breakdownobjectScores par catégorie (risques, marché, cadre de vie, etc.)

risks

flood_zone.presentbooleanBien situé en zone inondable (PPRI)
flood_zone.levelstringNiveau d'aléa : Faible, Moyen, Fort, Très fort
clay_risk.exposurestringExposition argile : Nul, Faible, Moyen, Fort
seismic_zone.levelnumberZone sismique 1-5 (décret 2010-1255)
catnat_countnumberNombre d'arrêtés CatNat communaux
insurance_surcharge_estimateobjectSurcoût assurance estimé (min/max en EUR/an)

prices

median_per_sqmnumberPrix médian au m2 (source DVF/DGFiP)
trend_1ynumberÉvolution des prix sur 1 an en %
transactions_countnumberNombre de transactions dans la zone
transactions_nearbyarrayJusqu'a 20 transactions DVF detaillees

negotiation

scorenumberScore de negociabilite 0-100
levelstringNiveau : faible, moderee, forte, tres_forte
reference_pricenumberPrix de reference calcule (DVF)
adjusted_rangeobjectFourchette de prix ajustee (low/high)
factorsarrayFacteurs de decote avec % min/max

Prêt à intégrer Fonciris ?

Plan Business : 129€/mois · 100 analyses/mois · Support prioritaire

Base URL : https://fonciris.com · API version 1 · Données sources : Géorisques, DVF/DGFiP, INSEE, BAN, ADEME