Le modèle de données
de l'API CFNEWS IMMO
Référence pour l'intégration de l'intelligence de l'immobilier institutionnel
CFNEWS IMMO — transactions, actifs, fonds et acteurs —
au sein de vos systèmes.
Cette page synthétise la spécification https://api.cfnewsimmo.net/doc.json.
api.cfnewsimmo.net/doc
1// CFNEWS IMMO API — réponse 2{ 3 "count": 15, 4 "total": 1240, 5 "page": 1, 6 "nb_pages": 83, 7 "items": [ 8 { 9 "metadata": { 10 "name": "ACQUISITION 42 MONTAIGNE", 11 "id": 512345, 12 "published": "2026-05-12" 13 }, 14 "operation_type": ["Transaction"], 15 "asset_type": ["Bureaux"], 16 "strategy": ["core"], 17 "amount": "150" 18 } 19 ] 20}
01 À propos de doc.json
Le fichier https://api.cfnewsimmo.net/doc.json est la spécification
OpenAPI 3.0 de l'API REST CFNEWS IMMO.
C'est à la fois un modèle de données et un contrat d'interface machine-readable.
Elle décrit, dans un format standard exploitable par vos outils :
- les entités métier exposées — opérations, actifs immobiliers, acteurs, sociétés, véhicules, actualités, personnalités, mouvements ;
- chaque endpoint avec sa méthode HTTP, son chemin, ses paramètres typés (avec
enum, formats, contraintes) ; - les schémas de réponse (succès et erreurs) ;
- les règles d'authentification et la structure du quota.
doc.json.
C'est une spécification vivante, versionnée, sur laquelle vos intégrations peuvent s'appuyer.
api.cfnewsimmo.net/docLe
doc.json est aussi disponible sous forme de console interactive Swagger UI.
Vous y testez l'intégralité de l'API depuis votre navigateur, sans installer le moindre outil :
authentification Bearer, formulaires de paramètres typés, exécution réelle des requêtes,
inspection des réponses JSON. Nous recommandons d'y faire un tour avant toute intégration.
02 Cartographie des entités
L'API CFNEWS IMMO organise son périmètre autour de huit entités principales. L'opération (transaction immobilière ou deal corporate) constitue l'objet pivot du modèle, avec une entité propre à l'univers immobilier : l'actif immobilier.
Modèle conceptuel simplifié des entités exposées par l'API CFNEWS IMMO.
Dictionnaire des entités
| Entité | Description métier | Schéma Swagger |
|---|---|---|
| Opération | Deal immobilier ou corporate (Transaction, LBO, M&A Corporate, Financement, Capital Développement, Capital Innovation, Build-up, Bourse, Restructuration). | Operation |
| Actif immobilier | Immeuble ou portefeuille d'actifs (Bureaux, Commerce, Hôtellerie, Logistique / Industriel, Logement, Santé, Foncier, Dette immobilière) : surface, loyer, taux, bail, état des locaux, architectes, propriétaires, utilisateurs. | ActifImmo |
| Acteur | Investisseurs (fonds, foncières, asset managers, family offices…), avocats / notaires et conseils financiers intervenant sur les deals. | Acteur (union : Avocat · Banquier · Conseil · ConseilFinancier · ConseilJuridique · Investisseur) |
| Société | Cibles, utilisateurs, promoteurs, entreprises (SIRET, TVA, NAF, effectifs, CA). | Societe |
| Véhicule | Fonds d'investissement immobiliers et corporate (OPCI, SCPI, FPCI, SLP…) : segment, SFDR, statut de levée, tickets. | Vehicule |
| Personnalité | Dirigeants, associés, professionnels de l'immobilier et du Corporate Finance (Bottin). | People |
| Actualité | Articles éditoriaux CFNEWS IMMO liés aux entités. | Article ArticlePreview |
| Mouvement | Nominations, recrutements et changements de poste dans l'industrie immobilière. | Mouvement |
03 Authentification & quota
L'API utilise une authentification Bearer Token.
Chaque appel doit présenter un token valide via l'en-tête Authorization.
Format de l'en-tête
Authorization: Bearer VOTRE_TOKEN Accept: application/json
Endpoint quota
/v1/account/quota— Retourne l'état de votre quota mensuel d'utilisation.Structure de l'objet quota
Chaque réponse de l'API inclut un objet quota permettant de suivre votre consommation en temps réel :
ping=true. Lorsqu'il est positionné, l'API retourne uniquement le
nombre total de résultats correspondant aux filtres, sans consommer de quota.
Idéal pour des compteurs de tableau de bord ou des estimations avant une recherche complète.
04 Pagination & tri
Les endpoints de liste retournent leurs résultats sous forme paginée, avec métadonnées de navigation et le total de résultats correspondant aux filtres.
Paramètres communs
/v1/actualite : publication_date ou modification_date).asc (ascendant) ou desc (descendant).true, retourne uniquement total sans consommer de quota.Métadonnées de pagination dans la réponse
Operation, ArticlePreview, OperationVehicule, ActifImmo…)./v1/acteur/portfolio_now/{id} et
/v1/acteur/portfolio_sortie/{id} retournent 25 items par page.
Pour récupérer la totalité d'un portefeuille, bouclez sur page=1, 2, 3…
jusqu'à atteindre nb_pages.
05 Filtrage & référentiels
L'API CFNEWS IMMO propose un système de filtrage typé et contractuel :
chaque filtre est documenté dans le doc.json avec son type, ses valeurs autorisées
(enum) et ses contraintes.
Filtres typés (recommandé)
Les endpoints de recherche exposent des paramètres explicites, fortement typés, qui
permettent une intégration robuste. Exemples pour /v1/operation :
375872 (Transaction), 375874 (LBO), 375873 (M&A Corporate), 375877 (Financement), 375876 (Capital Développement), 375875 (Capital Innovation), 467630 (Build-up), 375868 (Bourse), 453329 (Restructuration).375173 Bureaux, 375166 Commerce, 375169 Hôtellerie, 375150 Logement, 375061 Logistique / Industriel, 375136 Santé, 456377 Foncier, 375023 Dette immobilière, 375062 Corporate, 375394 N.D.375039 core, 375040 core+, 375041 value-add, 375042 opportunist, 436401 sale & leaseback, 436399 vefa en blanc, 436398 vefa en gris, 436400 vente-utilisateur.436226 Paris QCA, 436227 Paris, 436228 Croissant Ouest, 1re/2e couronnes, Lyon, Lille, Marseille, Bordeaux, Toulouse, Nantes… (21 valeurs).0-1000, 1000-5000, 5000-10000, 10000 et plus.FR, US, GB, DE…). Valeurs spéciales : EU = Europe, WD = Monde, ND = N.d.radius mètres autour d'un point GPS. Plage 250 à 10 000 m, pas de 250.01/01/2026).0-20, 20-50, 50-150, 150-250, 250-500, 500-1000, >1000, n.d.La liste ci-dessus est un extrait. /v1/operation expose à elle seule plus de 40 paramètres typés. La spécification doc.json reste la source exhaustive.
Endpoint field-values — référentiels dynamiques
Pour chaque entité, un endpoint dédié permet de récupérer dynamiquement les valeurs autorisées d'un champ filtrable. Utile pour alimenter des dropdowns ou valider une saisie côté client.
/v1/operation/field-values— Valeurs possibles pour les champs des opérations./v1/acteur/field-values— Valeurs possibles pour les champs des acteurs./v1/societe/field-values— Valeurs possibles pour les champs des sociétés./v1/vehicule/field-values— Valeurs possibles pour les champs des véhicules./v1/people/field-values— Valeurs possibles pour les champs des personnalités./v1/mouvement/field-values— Valeurs possibles pour les champs des mouvements./v1/actualite/field-values— Valeurs possibles pour les champs des actualités.Chaque endpoint field-values accepte un paramètre field[] indiquant les champs dont vous souhaitez la liste des valeurs.
op_type[], asset_type[],
op_strategy[]…) plutôt que la recherche textuelle. Vous bénéficiez d'une validation
contractuelle, d'une meilleure performance, et vos intégrations restent compatibles à long terme.
06 Catalogue des endpoints
L'API expose une trentaine d'endpoints organisés par tag fonctionnel.
Tableau synthétique ci-dessous, spécification complète dans doc.json.
Référentiels (recherche & détail)
| Méthode | Chemin | Description |
|---|---|---|
| GET | /v1/operation | Recherche d'opérations (transactions, deals) avec filtres typés |
| GET | /v1/operation/{id} | Détail complet d'une opération |
| GET | /v1/actif_immobilier | Recherche d'actifs immobiliers |
| GET | /v1/actif_immobilier/{id} | Détail complet d'un actif immobilier |
| GET | /v1/acteur | Recherche d'acteurs (investisseurs, avocats, conseils) |
| GET | /v1/acteur/{id} | Détail complet d'un acteur |
| GET | /v1/societe | Recherche de sociétés |
| GET | /v1/societe/{id} | Détail complet d'une société |
| GET | /v1/vehicule | Recherche de véhicules d'investissement |
| GET | /v1/vehicule/{id} | Détail complet d'un véhicule |
| GET | /v1/mouvement | Recherche de mouvements / nominations |
| GET | /v1/mouvement/{id} | Détail complet d'un mouvement |
| GET | /v1/people | Recherche de personnalités (Bottin) |
| GET | /v1/people/{id} | Détail complet d'une personnalité |
Actualité
| Méthode | Chemin | Description |
|---|---|---|
| GET | /v1/actualite | Recherche d'articles éditoriaux |
| GET | /v1/actualite/{id} | Contenu complet d'un article (option with_html_body) |
Portfolios & deal lists
| Méthode | Chemin | Description |
|---|---|---|
| GET | /v1/acteur/portfolio_now/{id} | Portefeuille actuel d'un acteur |
| GET | /v1/acteur/portfolio_sortie/{id} | Sorties (exits) d'un acteur |
| GET | /v1/acteur/op_conseillees/{id} | Opérations conseillées par un acteur |
| GET | /v1/acteur/op_capitalistiques/{id} | Opérations capitalistiques d'un acteur |
| GET | /v1/societe/op_conseillees/{id} | Opérations conseillées par une société |
| GET | /v1/societe/op_capitalistiques/{id} | Opérations capitalistiques d'une société |
| GET | /v1/vehicule/fundraising/{id} | Opérations de levée d'un véhicule |
Field-values (référentiels dynamiques)
| Méthode | Chemin | Entité concernée |
|---|---|---|
| GET | /v1/operation/field-values | Opérations |
| GET | /v1/acteur/field-values | Acteurs |
| GET | /v1/societe/field-values | Sociétés |
| GET | /v1/vehicule/field-values | Véhicules |
| GET | /v1/people/field-values | Personnalités |
| GET | /v1/mouvement/field-values | Mouvements |
| GET | /v1/actualite/field-values | Actualités |
Compte
| Méthode | Chemin | Description |
|---|---|---|
| GET | /v1/account/quota | État du quota mensuel |
07 Schémas de réponse
Les endpoints de liste partagent une enveloppe de réponse standard, qui combine données paginées, métadonnées et information de quota.
Enveloppe paginée
{
"count": 5, // résultats sur la page courante
"total": 30, // total correspondant aux filtres
"page": 2, // page courante
"nb_pages": 2, // nombre total de pages
"quota": {
"request_cost": 2,
"monthly_used": 52,
"monthly_limit": 2000
},
"items": [ /* tableau d'objets (Operation, ActifImmo, ArticlePreview, …) */ ]
}
Endpoint détail
Les endpoints /v1/{entité}/{id} retournent directement l'objet complet
(sans enveloppe paginée). Le schéma de chaque entité est défini dans la section
definitions du doc.json : Operation, ActifImmo,
Vehicule, Societe, People, Mouvement,
Article, Erreur…
Chaque objet embarque un bloc metadata commun : identifiant de contenu
(id, main_node_id), published / modified
(format Y-m-d), url de la fiche sur cfnewsimmo.net,
endpoint d'API pour recharger l'objet, et son contenttype.
Champs remarquables du schéma Operation
| Champ | Contenu |
|---|---|
| asset_type · asset_subtype | Type et sous-type d'actif (ex. Bureaux > Tours, Hôtel > 4*) |
| strategy · perimeter | Stratégie (core, value-add, VEFA…) et périmètre bureaux |
| exact_surface · surface_range · acq_surface | Surfaces (m²), y compris part française et surfaces par usage si opération mixte (surface_office, surface_retail, surface_housing) |
| rate · rental_income · rental_income_totalyear | Taux de rendement, loyer (€/m²/an) et loyer annuel total (M€) |
| amount · valorisation · *_interval | Montant et valorisation (M€), exacts ou en fourchettes, avec déclinaisons par usage si opé mixte |
| tenants · owners · one_tenant · type_bail | Locataires, propriétaires, mono-locataire, type et descriptif du bail |
| buyer_bloc · solder_bloc · concils | Acquéreurs, cédants et intervenants complets (structures + people) |
| banker_* · lawyer_* · *_dd_* · vdd_* | ~60 rôles de conseils : banquiers d'affaires, avocats corporate / fiscal / financement, notaires, conseils immobiliers, due diligences (financière, juridique, technique, ESG, IT…) |
| dette_senior · dette_mezz · single_branch_dette · bond_financing | Structure de financement : dette senior, mezzanine, unitranche, obligataire, equity |
Schéma d'erreur
Toutes les erreurs (4xx, 5xx) utilisent un schéma unifié Erreur
(error : message, code : slug applicatif) permettant un traitement
programmatique cohérent.
08 Codes d'erreur
L'API retourne des codes HTTP standards accompagnés d'un code applicatif identifiant la cause précise de l'erreur.
| HTTP | Code applicatif | Signification | Action recommandée |
|---|---|---|---|
| 200 | — | Succès | Réponse normale. |
| 400 | bad_request | Erreur dans votre requête | Vérifier le format des paramètres et leurs valeurs autorisées (enum). |
| 403 | forbidden | Accès non autorisé | Vérifier le token Bearer et les droits associés à l'abonnement. |
| 403 | limit_exceeded | Quota mensuel dépassé | Surveiller quota.monthly_used dans les réponses. |
| 404 | — | Ressource introuvable | Vérifier l'{id} de la ressource demandée. |
| 422 | too_broad_search | Recherche trop large | Ajouter des filtres pour réduire le volume de résultats. |
| 429 | too_many_requests | Trop de requêtes successives | Implémenter un délai entre les appels (backoff exponentiel recommandé). |
| 500 | internal_error | Erreur interne | Réessayer après quelques secondes. Si le problème persiste, contacter le support. |
09 Paramètres de recherche par type de fiche
C'est le cœur de l'API. Chaque endpoint de recherche accepte un ensemble riche de paramètres typés — appelés queries dans la suite — qui correspondent exactement aux filtres disponibles dans l'interface cfnewsimmo.net. Construire des queries précises est le levier principal pour obtenir des résultats pertinents en limitant la consommation de quota.
q et les filtres typés.
Le paramètre q reste accepté pour des cas hérités (URLs copiées du site), mais
tous les nouveaux développements doivent utiliser les paramètres typés
(op_type[], asset_type[], op_strategy[], etc.).
Ils sont contractuels, validés par schéma enum, et garantis stables dans le temps.
Tableau de synthèse — combien de filtres par endpoint ?
| Endpoint | Type de fiche | Nb filtres typés | Filtres clés |
|---|---|---|---|
| /v1/operation | Opérations / Transactions | ~40 | op_type[], asset_type[], op_strategy[], perimeter[], SUtranche[], op_ratemin/max, latitude/longitude/radius… |
| /v1/actif_immobilier | Actifs immobiliers | ~9 | asset_type[], asset_subtype[], asset_surface_range[], asset_premises_state[], VALtranche[]… |
| /v1/acteur | Acteurs (investisseurs, avocats, conseils) | ~14 | acteur_domaine[], investment_type[], aum_min/max, asset_type, tranche_invest[]… |
| /v1/societe | Sociétés | ~15 | soc_activity[], sector[], soc_ca_interval[], VALtrancheCompany[], soc_keywords[]… |
| /v1/vehicule | Véhicules d'investissement | ~17 | vehicle_segment[], asset_type[], sfdr[], vehicle_status[], ticket_tranche[]… |
| /v1/mouvement | Mouvements / Nominations | ~12 | mvt_category, mvt_ssdomaine[], mvt_sector[], mvt_dureemin/max… |
| /v1/people | Personnalités (Bottin) | ~15 | people_titres[], people_domaine, people_type_organisation[], uniqut_avec_email/tel/li… |
| /v1/actualite | Articles | ~14 | title, sector[], theme[], keyword[], related-actor[], date_between… |
9.1 — /v1/operation · Recherche d'opérations
L'endpoint le plus riche. Permet d'interroger la base de transactions CFNEWS IMMO sur tous les axes : nature du deal, actif, stratégie, géographie (jusqu'au rayon GPS), acquéreur / cédant, conseils, valorisation, rendement, dates, mots-clés.
Identification & descriptif de la cible
| Paramètre | Type | Description & valeurs |
|---|---|---|
| op_nom | string | Actif ou société cible — recherche textuelle (ex. 42 MONTAIGNE) |
| asset_type[] | int[] | 10 types d'actif : 375173 Bureaux · 375166 Commerce · 375169 Hôtellerie · 375150 Logement · 375061 Logistique / Industriel · 375136 Santé · 456377 Foncier · 375023 Dette immobilière · 375062 Corporate · 375394 N.D. |
| asset_subtype[] | int[] | Sous-type d'actif (ex. Bureaux > Tours, Hôtel > 4*). Dépend de asset_type — liste via /v1/operation/field-values?field=asset_subtype |
| sector[] | int[] | 23 secteurs d'activité (si cible corporate) : Immobilier & construction, Santé, Tourisme / hôtellerie, Services financiers… |
| op_nationality[] | string[] | Nationalité / secteur géographique de la cible (~250 codes ISO) : FR, DE, GB… + EU, WD, ND |
| region[] | int[] | 21 régions FR : 375252 Île-de-France, 375242 AURA, 375260 Région Sud-PACA, 375258 Nouvelle-Aquitaine… |
| department[] | string[] | 101 départements : 75, 92, 69, 2A, 2B, 971… |
| uniqut_citation_article | bool | Cité dans un article CFNEWS IMMO (envoyer oui) |
Nature de l'opération & stratégie
| Paramètre | Type | Description & valeurs |
|---|---|---|
| op_type[] | int[] | 9 valeurs : 375872 Transaction · 375874 LBO · 375873 M&A Corporate · 375877 Financement · 375876 Capital Développement · 375875 Capital Innovation · 467630 Build-up · 375868 Bourse · 453329 Restructuration |
| op_sstype[] | int[] | 55 sous-types : Immobilier (375180), Location (468057), MBO, OBO, LBO bis/ter/IV/V, Amorçage, 1er–8e tours, Carve-out, Émission obligataire, Fusion, IPO, Joint Venture, Levée de Fonds (véhicule), Recap, Refinancement… |
| op_strategy[] | int[] | 8 stratégies : 375039 core · 375040 core+ · 375041 value-add · 375042 opportunist · 436401 sale & leaseback · 436399 vefa en blanc · 436398 vefa en gris · 436400 vente-utilisateur |
Caractéristiques de l'actif (surface, périmètre, loyer, rendement)
| Paramètre | Type | Description & valeurs |
|---|---|---|
| SUtranche[] | string[] | Tranche de surface (m²) : 0-1000 · 1000-5000 · 5000-10000 · 10000 et plus |
| perimeter[] | int[] | Bureaux uniquement. 21 périmètres : 436226 Paris QCA · 436227 Paris · 436228 Croissant Ouest · 436229/436230/436231 1re couronne N/E/S · 436232 2e couronne · 436233 Lyon · 436234 Lille · 436235 Marseille · 436236 Bordeaux · 436237 Toulouse · Nantes, Rennes, Strasbourg, Grenoble, Montpellier, Dijon, Nice, Sophia-Antipolis, Saint-Étienne |
| rental_range[] | string[] | Revenu locatif : 0-150 · 150-300 · 300-500 · 500-800 · >800 |
| op_ratemin / op_ratemax | number | Taux de rendement min / max (en %) |
| uniqut_avec_rendement | bool | Exclure les opérations sans taux de rendement (envoyer oui) |
Recherche géographique par rayon (Deal Range GPS)
| Paramètre | Type | Description & valeurs |
|---|---|---|
| latitude | number | Latitude du point de recherche |
| longitude | number | Longitude du point de recherche |
| radius | integer | Rayon de recherche en mètres — transactions dans un rayon de N mètres autour du point GPS. Plage : 250 à 10 000, pas de 250. |
Acteurs (acquéreur / cédant / conseils)
| Paramètre | Type | Description & valeurs |
|---|---|---|
| op_invest | string | Nom acquéreur / investisseur / cédant. Utilisé conjointement avec op_buyer, op_solder et op_invest_operator |
| op_buyer | bool | Active le filtrage côté acquéreurs / investisseurs (envoyer oui). Au moins un de op_buyer ou op_solder doit être actif |
| op_solder | bool | Active le filtrage côté cédants (envoyer oui) |
| op_invest_operator | enum | OR · AND entre acquéreurs / cédants |
| buyer_solder_content_type[] | string[] | 4 types d'acteur : fiche_fond Investisseurs · fiche_societe Sociétés · fiche_financial_advice Conseil financier · fiche_legal_advice Conseil juridique |
| op_nationality_solder_buyer[] | string[] | Nationalité acquéreurs / cédants (250 ISO + valeur spéciale etranger = tout sauf France) |
| region_buyer[] | int[] | 21 régions FR de l'acquéreur |
| op_conseil | string | Nom de conseil ou prêteur |
| vehicle_used | string | Véhicule(s) utilisé(s) |
Valorisation, montant, CA, dates, mots-clés
| Paramètre | Type | Description & valeurs |
|---|---|---|
| VALtranche[] | string[] | Fourchette de valorisation (M€) : 0-20 · 20-50 · 50-150 · 150-250 · 250-500 · 500-1000 · >1000 · n.d. |
| op_valorisationmin / max | number | Bornes de valorisation précises (M€) |
| inclure_montant_fourchette | bool | Inclure les fourchettes correspondantes si la valorisation exacte n'est pas connue (envoyer oui) |
| uniqut_avec_montant | bool | Exclure les opérations sans montant ni valorisation (envoyer oui) |
| CAtranche[] | string[] | Fourchette de montant de l'opération (M€), mêmes bornes que VALtranche |
| Montantmin / Montantmax | number | Bornes du montant de l'opération (M€) |
| ca_interval[] | string[] | Fourchette de chiffre d'affaires de la cible (M€) |
| depuis / jusquau | string | Date d'opération — format d/m/Y (ex. 01/01/2026) |
| op_keywords[] | int[] | ~140 mots-clés thématiques (max 4) : data center, coliving, coworking, Ehpad, entrepôt, brownfield, bornes de recharge, campus, centre commercial… IDs via /v1/operation/field-values |
| keyword_operator | enum | OR (défaut) · AND entre les mots-clés |
9.2 — /v1/actif_immobilier · Recherche d'actifs
Entité propre à CFNEWS IMMO : l'annuaire des immeubles et portefeuilles d'actifs, avec leur historique de transactions.
| Paramètre | Type | Description & valeurs |
|---|---|---|
| asset_name | string | Nom de l'actif |
| asset_type[] | int[] | 10 types d'actif (mêmes valeurs que /v1/operation) |
| asset_subtype[] | int[] | Sous-type — dépend de asset_type (ex. Commerce > pied d'immeuble, retail park, centre commercial, grand magasin…) |
| asset_region[] | int[] | 21 régions FR |
| asset_nationality[] | string[] | Nationalité (ISO + codes CFNEWS spécifiques : EU, WD, ND) |
| asset_surface_range[] | string[] | Tranche de surface : 0-1000 · 1000-5000 · 5000-10000 · 10000 et plus |
| VALtranche[] | string[] | Fourchette de valorisation (M€) — dernière valorisation connue selon la base de transactions CFNEWS IMMO |
| asset_premises_state[] | int[] | État des locaux : 428044 Neuf · 428046 Récent · 428045 Ancien · 428047 Restructuré · 458479 En cours de construction · 449605 En cours de restructuration |
9.3 — /v1/acteur · Recherche d'acteurs
Annuaire des investisseurs, avocats / notaires et conseils financiers.
Plusieurs filtres sont conditionnés au type d'acteur (paramètre acteur_domaine).
| Paramètre | Type | Description & valeurs |
|---|---|---|
| acteur_nom | string | Nom investisseur / conseil |
| acteur_domaine[] | int[] | 3 catégories : 428039 Investisseurs · 428041 Conseil financier · 428040 Avocats / Notaires |
| acteur_sous_domaine[] | int[] | Sous-domaine d'activité ou expertise — chargé dynamiquement selon acteur_domaine : Asset Management, AMO, Commercialisation, Conseil transactions immobilières, Due Diligences, Financement / Dette, Immobilier, Infrastructure, Cabinet d'avocats, Étude notariale… |
| investment_type[] | int[] | Fonds uniquement. 25 types : 375125 Foncière · 454882 Foncière cotée · 375092 Promoteur · 375101 Family Office · 375094 Fonds souverain · 454878 Fonds de pension · 375126 Gestionnaire d'actifs · 454881 Fonds de private equity · Caisse de retraite, Hedge fund, Holding… |
| tranche_invest[] | int[] | Fonds uniquement. Fourchette de montant d'investissement (M€) : 375976 0-20 · 375975 20-50 · 375974 50-150 · 375973 150-250 · 375972 250-500 · 375971 500-1000 · 375970 1000+ · 375969 TBD |
| aum_min / aum_max | number | Montant sous gestion / AUM (M€) |
| asset_type | int | Type d'actif visé (valeur unique, mêmes IDs que /v1/operation) |
| acteur_zone[] | string[] | Nationalité de l'organisation (250 ISO) |
| acteur_region[] / acteur_dpt[] | int / string[] | Région et département FR du siège |
| include_regional_offices | bool | Inclure les bureaux régionaux (envoyer 1) |
| uniqut_citation_article | bool | Cité dans un article (envoyer oui) |
9.4 — /v1/societe · Recherche de sociétés
| Paramètre | Type | Description & valeurs |
|---|---|---|
| soc_nom | string | Nom |
| soc_activity[] | int[] | Type de société : 375967 Cotée · 376014 Familiale · 376035 Filiale Groupe · 376034 Indépendante · 376033 Sté en LBO · 465826 Sté en redressement · 376032 Sté liquidée |
| sector[] | int[] | 23 secteurs d'activité : 375299 Immobilier & construction · 375331 Tourisme / hôtellerie · 375342 Services financiers… |
| soc_keywords[] | int[] | ~140 mots-clés thématiques + keyword_operator (OR / AND) |
| soc_ca_interval[] | string[] | Fourchette CA (M€) : 0-20 … >1000 |
| VALtrancheCompany[] | string[] | Fourchette de valorisation (M€) — dernière valorisation connue selon la base de deals |
| soc_zone[] / soc_region[] / soc_dpt[] | string / int[] | Nationalité, région et département FR |
| creation_year_min / max | int | Année de création (AAAA), bornes incluses |
| soc_effectifmin / max | int | Effectif (nombre d'employés), bornes incluses |
9.5 — /v1/vehicule · Recherche de véhicules
| Paramètre | Type | Description & valeurs |
|---|---|---|
| vehicle_nom | string | Nom du véhicule |
| vehicle_soc_nom | string | Société de gestion |
| vehicle_segment[] | int[] | 11 segments : 375553 Immobilier · 375556 Dette · 375567 Infrastructure · 375081 Impact · 375076 LBO · 375106 Capital-développement · 375091 Capital-risque · 375555 Fonds de fonds · 375554 PPP · 375056 Secondaire · 375077 Amorçage |
| asset_type[] | int[] | Type(s) d'actif(s) visé(s) — mêmes IDs que /v1/operation |
| sfdr[] | int[] | Classification SFDR : 443609 Article 6 · 443608 Article 8 · 443610 Article 9 |
| vehicle_status[] | int[] | 8 statuts : 375560 En cours de levée · 375568 1er closing · 375578 2nd closing · 375206 3e closing · 375584 Closé · 375046 Entièrement investi · 375583 En cours de désinvestissement · 480418 Entièrement désinvesti |
| vehicle_type_invest[] | int[] | 375564 Co-investissement · 375565 Majoritaire · 375566 Minoritaire |
| ticket_tranche[] | int[] | Fourchette de tickets d'investissement (M€) : 0-20 … 1000+, TBD |
| CAtranche[] · Montantmin / max | string[] · number | Fourchette et bornes du montant levé (M€) |
| vehicle_sector[] | int[] | 23 secteurs d'investissement |
| vehicle_invest / vehicle_advice | string | Investisseur du fonds (LP) / Conseil |
| region[] | int[] | Région de la société de gestion |
| depuis / jusquau | string | Date de statut — format d/m/Y |
9.6 — /v1/mouvement · Mouvements & nominations
| Paramètre | Type | Description & valeurs |
|---|---|---|
| mvt_nom | string | Personnalité (nom) |
| mvt_new_orga / mvt_old_orga | string | Nouvelle / ancienne organisation |
| mvt_category | int | Catégorie : 375348 Investisseurs · 375347 Conseil financier · 375349 Conseil juridique · 375346 Société |
| mvt_ssdomaine[] | int[] | ~60 domaines d'activité ou expertises : Asset Management, AMO, Capital Markets, Commercialisation, Développement / Promotion immobilière, Droit immobilier, Financement, Gestion d'actifs, Gestion locative, Immobilier coté / non coté, Infrastructure… |
| mvt_sector[] | int[] | 23 secteurs d'activité (nouvelle organisation) |
| mvt_nationality | string | Nationalité de la nouvelle organisation (ISO) |
| region[] | int[] | Région de la nouvelle organisation |
| mvt_dureemin / mvt_dureemax | number | Ancienneté (en mois) |
| depuis / jusquau | string | Date du mouvement — format d/m/Y |
9.7 — /v1/people · Bottin des personnalités
| Paramètre | Type | Description & valeurs |
|---|---|---|
| people_nom | string | Nom (Prénom) |
| people_societe | string | Organisation |
| people_email | string | |
| people_domaine | int | Domaine : 348490 Fonds d'investissement · 348509 Avocats · 348675 Banquiers · 348696 Conseils · 348730 Sociétés |
| people_titres[] | int[] | ~300 titres / fonctions : CEO, Directeur général, Associé(e), Partner, Asset manager, Analyste, Avocat, Notaire, Chairman, Chargé(e) d'investissements… |
| people_type_organisation[] | int[] | 4 types : 375348 Investisseurs · 375347 Conseil financier · 375349 Conseil juridique · 375346 Société |
| people_sous_domaine[] | int[] | Sous-domaine de l'organisation — filtré dynamiquement selon people_type_organisation |
| people_sous_type_investisseur[] | int[] | Sous-type d'investisseur — requiert people_type_organisation = Investisseurs |
| people_region[] / _dpt[] / _zone[] | int / string[] | Région, département, nationalité de l'organisation |
| uniqut_avec_email / _tel / _li | bool | Uniquement avec email / téléphone-mobile / LinkedIn renseigné (envoyer oui) |
9.8 — /v1/actualite · Articles
| Paramètre | Type | Description & valeurs |
|---|---|---|
| title | string[] | Mots dans le titre (séparés par ;) |
| intro_full | string[] | Mots dans le chapeau (séparés par ;) |
| sector[] / theme[] / region[] / place[] | string[] | Secteurs, thèmes / opérations (cf. menu du site), régions, zones géographiques |
| keyword[] / tag[] | string[] | Mots-clés / tags (utilisés pour les alertes email) |
| related-actor[] / related-society[] | string[] | Articles liés à un acteur / une société |
| date_start / date_end | date | Format Y-m-d (différent du reste : ex. 2026-07-13) |
| date_between | string[] | Plage(s) Y-m-d;Y-m-d |
| sort / sort_direction | enum | Tri par publication_date ou modification_date · asc / desc |
| with_html_body | bool | Sur /v1/actualite/{id} : conserver les balises HTML dans le corps de l'article |
/v1/actualite utilise Y-m-d
(ex. 2026-12-31), alors que tous les autres endpoints (/v1/operation,
/v1/vehicule, /v1/mouvement…) utilisent d/m/Y
(ex. 31/12/2026).
Récupérer les listes de valeurs dynamiquement
Pour chaque type de fiche, un endpoint field-values permet de récupérer dynamiquement
la liste des valeurs autorisées pour un champ donné. Idéal pour alimenter un formulaire ou un
dropdown sans coder en dur les IDs — indispensable pour les champs dépendants
(asset_subtype, acteur_sous_domaine, people_sous_domaine) :
| Endpoint | Exemple |
|---|---|
| /v1/operation/field-values | ?field[]=op_type&field[]=asset_type&field[]=op_strategy |
| /v1/operation/field-values | ?field[]=asset_subtype&asset_type[]=375173 (sous-types de Bureaux) |
| /v1/vehicule/field-values | ?field[]=vehicle_segment&field[]=sfdr&field[]=vehicle_status |
| /v1/acteur/field-values | ?field[]=acteur_domaine&field[]=investment_type |
| /v1/societe/field-values | ?field[]=soc_activity&field[]=sector |
| /v1/mouvement/field-values | ?field[]=mvt_ssdomaine&field[]=mvt_category |
| /v1/people/field-values | ?field[]=people_titres&people_type_organisation[]=375348 |
10 Exemples par endpoint
enum, combinaisons de filtres)
avant de les transposer dans votre langage de prédilection.
10.1 — Cas d'usage par endpoint
Les exemples ci-dessous illustrent des questions métier réelles avec leur
traduction en requête HTTP. Pour chaque cas, le pattern Python requests
équivalent suit directement.
A. /v1/operation — Recherche de transactions
(1) « Acquisitions de bureaux Paris QCA > 100 M€ en 2026 »
# curl curl "https://api.cfnewsimmo.net/v1/operation?op_type[]=375872&asset_type[]=375173&perimeter[]=436226&Montantmin=100&depuis=01/01/2026&jusquau=31/12/2026" \ -H "Authorization: Bearer $TOKEN" # Python params = { "op_type[]": [375872], # Transaction "asset_type[]": [375173], # Bureaux "perimeter[]": [436226], # Paris QCA "Montantmin": 100, "depuis": "01/01/2026", "jusquau": "31/12/2026", } r = requests.get(f"{API_BASE}/operation", headers=headers, params=params).json()
(2) « Toutes les transactions dans un rayon de 500 m autour d'un point GPS (Deal Range) »
params = {
"latitude": 48.8721, # ex. quartier Monceau, Paris 8e
"longitude": 2.3095,
"radius": 500, # mètres — plage 250 à 10 000, pas de 250
}
(3) « VEFA en blanc sur la logistique, 2025–2026 »
params = {
"op_strategy[]": [436399], # vefa en blanc
"asset_type[]": [375061], # Logistique / Industriel
"depuis": "01/01/2025",
"jusquau": "31/12/2026",
}
(4) « Transactions hôtelières avec un taux de rendement entre 4 et 6 % »
params = {
"asset_type[]": [375169], # Hôtellerie
"op_ratemin": 4,
"op_ratemax": 6,
"uniqut_avec_rendement": "oui", # exclut les opés sans taux
}
(5) « Sale & leaseback commerce, acquéreurs étrangers »
params = {
"op_strategy[]": [436401], # sale & leaseback
"asset_type[]": [375166], # Commerce
"op_buyer": "oui", # filtrage côté acquéreurs
"op_nationality_solder_buyer[]": ["etranger"], # tout sauf France
}
(6) « Opérations data center & énergie 2026 (mots-clés AND, max 4) »
params = {
"op_keywords[]": [375290, 375364], # data center, énergie
"keyword_operator": "AND",
"depuis": "01/01/2026",
}
B. /v1/actif_immobilier — Annuaire des actifs
(1) « Bureaux > 10 000 m², neufs ou restructurés, valorisés > 150 M€ »
params = {
"asset_type[]": [375173], # Bureaux
"asset_surface_range[]": ["10000 et plus"],
"asset_premises_state[]": [428044, 428047], # Neuf, Restructuré
"VALtranche[]": ["150-250", "250-500", "500-1000", ">1000"],
}
(2) « Actifs de santé en Île-de-France »
params = {
"asset_type[]": [375136], # Santé
"asset_region[]": [375252], # Île-de-France
}
C. /v1/acteur — Annuaire des acteurs
(1) « Foncières cotées françaises, AUM > 1 000 M€ »
params = {
"acteur_domaine[]": [428039], # Investisseurs
"investment_type[]": [454882], # Foncière cotée
"acteur_zone[]": ["FR"],
"aum_min": 1000,
}
(2) « Investisseurs ciblant la logistique, tickets 50–150 M€ »
params = {
"acteur_domaine[]": [428039], # Investisseurs
"asset_type": 375061, # Logistique / Industriel (valeur unique)
"tranche_invest[]": [375974], # 50-150
}
(3) « Études notariales et cabinets d'avocats à Paris, bureaux régionaux inclus »
params = {
"acteur_domaine[]": [428040], # Avocats / Notaires
"acteur_dpt[]": ["75"],
"include_regional_offices": 1,
}
D. /v1/vehicule — Véhicules d'investissement
(1) « Fonds immobiliers Article 8 en cours de levée > 250 M€ »
params = {
"vehicle_segment[]": [375553], # Immobilier
"sfdr[]": [443608], # Article 8
"vehicle_status[]": [375560], # En cours de levée
"Montantmin": 250,
}
(2) « Fonds de dette immobilière, co-investissement possible »
params = {
"vehicle_segment[]": [375556], # Dette
"asset_type[]": [375023], # Dette immobilière
"vehicle_type_invest[]": [375564], # Co-investissement
}
E. /v1/acteur/portfolio_now/{id} — Portefeuille actuel
(1) « Portefeuille actuel complet d'un acteur, toutes pages »
all_ops = []
page = 1
while True:
r = requests.get(f"{API_BASE}/acteur/portfolio_now/{ACTEUR_ID}",
headers=headers, params={"page": page}).json()
all_ops.extend(r["items"])
if page >= r["nb_pages"]: break
page += 1
# 25 items/page — boucler jusqu'à nb_pages
(2) « Compter les sorties sans consommer de quota »
r = requests.get(f"{API_BASE}/acteur/portfolio_sortie/{ACTEUR_ID}",
headers=headers, params={"ping": "true"}).json()
print("Sorties :", r["total"])
10.2 — Exemples génériques
Exemples — curl
Rechercher les transactions de bureaux core en 2026
# Utiliser les filtres typés issus de la spécification
curl -X GET \
"https://api.cfnewsimmo.net/v1/operation?asset_type[]=375173&op_strategy[]=375039&depuis=01/01/2026&jusquau=31/12/2026" \
-H "Authorization: Bearer VOTRE_TOKEN" \
-H "Accept: application/json"
Estimer le volume sans consommer de quota
# Ajouter ping=true curl -X GET \ "https://api.cfnewsimmo.net/v1/operation?asset_type[]=375169&ping=true" \ -H "Authorization: Bearer VOTRE_TOKEN" # Réponse : { "total": 842, "quota": { "request_cost": 0, ... } }
Exemples — Python (requests)
Recherche de transactions avec filtres typés
import requests
API_BASE = "https://api.cfnewsimmo.net/v1"
TOKEN = "VOTRE_TOKEN"
headers = {
"Authorization": f"Bearer {TOKEN}",
"Accept": "application/json",
}
# IMPORTANT : pour les filtres typés [], passer une liste à `params`.
# requests sérialise automatiquement en asset_type[]=375173&asset_type[]=375166
params = {
"asset_type[]": [375173, 375166], # Bureaux + Commerce
"op_strategy[]": [375041], # value-add
"region[]": [375252], # Île-de-France
"depuis": "01/01/2026", # format d/m/Y
"jusquau": "31/12/2026",
"page": 1,
}
resp = requests.get(f"{API_BASE}/operation", headers=headers, params=params)
resp.raise_for_status()
data = resp.json()
print(f"Total transactions : {data['total']}")
print(f"Quota utilisé ce mois : {data['quota']['monthly_used']} / {data['quota']['monthly_limit']}")
for deal in data["items"]:
meta = deal.get("metadata", {})
print(meta.get("id"), "-", meta.get("name"))
Compter sans consommer (ping=true)
def count_deals(asset_type_ids, year):
"""Retourne le nombre total de transactions correspondantes — coût quota : 0"""
params = {
"asset_type[]": asset_type_ids,
"depuis": f"01/01/{year}",
"jusquau": f"31/12/{year}",
"ping": "true",
}
r = requests.get(f"{API_BASE}/operation", headers=headers, params=params)
r.raise_for_status()
return r.json()["total"]
# Estimation rapide pour dimensionner une recherche
nb_bureaux = count_deals([375173], 2026)
nb_logist = count_deals([375061], 2026)
print(f"Bureaux 2026 : {nb_bureaux} | Logistique 2026 : {nb_logist}")
Récupérer les valeurs autorisées d'un champ (field-values)
# Récupérer dynamiquement les sous-types d'actif Bureaux # (idéal pour alimenter un dropdown côté front) r = requests.get( f"{API_BASE}/operation/field-values", headers=headers, params={"field[]": ["asset_subtype"], "asset_type[]": [375173]}, ) r.raise_for_status() print(r.json())
Gestion des erreurs (429, 422, 403)
import time
def safe_get(url, params=None, max_retries=3):
"""GET avec backoff exponentiel sur 429 et gestion des erreurs métier."""
for attempt in range(max_retries):
r = requests.get(url, headers=headers, params=params)
if r.status_code == 200:
return r.json()
if r.status_code == 429: # too_many_requests
wait = 2 ** attempt
print(f"Rate limit, attente {wait}s...")
time.sleep(wait)
continue
if r.status_code == 422: # too_broad_search
raise ValueError("Recherche trop large, ajoutez des filtres")
if r.status_code == 403: # forbidden / limit_exceeded
err = r.json()
raise PermissionError(err.get("error", "Accès refusé"))
r.raise_for_status()
raise RuntimeError("Échec après plusieurs tentatives")
Exemples — JavaScript / TypeScript
Récupération paginée avec fetch
async function getFullPortfolio(acteurId, token) {
const all = [];
let page = 1;
while (true) {
const res = await fetch(
`https://api.cfnewsimmo.net/v1/acteur/portfolio_now/${acteurId}?page=${page}`,
{ headers: { Authorization: `Bearer ${token}` } }
);
const data = await res.json();
all.push(...data.items);
if (page >= data.nb_pages) break;
page++;
}
return all;
}
Génération d'un SDK typé depuis la spécification
# 1. Récupération de la spec curl -o cfnewsimmo-swagger.json https://api.cfnewsimmo.net/doc.json # 2. Génération d'un client TypeScript npx @openapitools/openapi-generator-cli generate \ -i cfnewsimmo-swagger.json \ -g typescript-axios \ -o ./cfnewsimmo-sdk # Le SDK généré gère automatiquement : # - les types stricts (op_type, asset_type, op_strategy…) # - l'authentification Bearer # - la sérialisation des tableaux (asset_type[]=375173&asset_type[]=375166)
enum en tableau (suffixe
[]) doivent être envoyés sous forme de paramètres répétés :
?asset_type[]=375173&asset_type[]=375166 (et non asset_type=375173,375166).
Les SDK générés et la plupart des clients HTTP (requests en Python,
axios, …) s'en chargent automatiquement quand on passe une liste.
curl équivalente.
Vous pouvez la copier puis la convertir en Python requests via
curlconverter.com ou directement dans votre IDE.
11 Que faire de doc.json ?
La spécification CFNEWS IMMO est conçue pour être opérationnelle : elle alimente directement vos outils de développement, de documentation et d'intégration.
Console Swagger interactive
Testez tous les endpoints en direct sans écrire une ligne de code, depuis api.cfnewsimmo.net/doc.
Ouvrir la console →Génération de clients
SDK auto-générés en Python, TypeScript, Java, PHP, C#… via openapi-generator. Types stricts garantis.
Documentation embarquée
Rendu visuel via Redoc ou Stoplight pour intégrer la doc dans votre portail interne.
Test & exploration
Import direct dans Postman, Insomnia ou Bruno. Collections prêtes à l'emploi.
Validation contractuelle
Validation des requêtes et réponses côté serveur ou client via les schémas de la spécification. Détection précoce des dérives.
Intégration IA / MCP
Consommation par des agents LLM (Claude, GPT…) via le serveur CFNEWS IMMO MCP, ou dans vos pipelines RAG.