CFNEWS IMMO  ·  Documentation technique
API REST · OpenAPI 3.0

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.

Console Swagger interactive Testez tous les endpoints en direct sur api.cfnewsimmo.net/doc
Document de référence — Juillet 2026 api.cfnewsimmo.net · v1.0.1
api.cfnewsimmo.net/v1/operation
 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.
Source de vérité. Toute évolution de l'API est immédiatement reflétée dans doc.json. C'est une spécification vivante, versionnée, sur laquelle vos intégrations peuvent s'appuyer.
Console Swagger : api.cfnewsimmo.net/doc
Le 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.

actif cible investit / conseille cible · portefeuille géré par intervient couvre OPÉRATION Transaction · LBO · M&A Financement · Bourse ACTIF IMMOBILIER Bureaux · Commerce · Hôtel Logistique · Santé · Logement ACTEUR Investisseur · Foncière Avocat · Conseil financier MOUVEMENT Nomination SOCIÉTÉ Cible · Utilisateur Promoteur · Entreprise VÉHICULE OPCI · SCPI · FPCI · SLP Fonds gérés PERSONNALITÉ Bottin immo PERSONNALITÉ Dirigeant · Associé Conseil ACTUALITÉ Article éditorial Relation directe Association

Modèle conceptuel simplifié des entités exposées par l'API CFNEWS IMMO.

Dictionnaire des entités

EntitéDescription métierSchéma Swagger
OpérationDeal immobilier ou corporate (Transaction, LBO, M&A Corporate, Financement, Capital Développement, Capital Innovation, Build-up, Bourse, Restructuration).Operation
Actif immobilierImmeuble 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
ActeurInvestisseurs (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éhiculeFonds 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
MouvementNominations, 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

GET/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 :

request_costinteger
Coût de la requête en cours, en nombre d'unités décomptées sur votre quota mensuel.
monthly_usedinteger
Nombre total d'unités utilisées depuis le début du mois civil en cours.
monthly_limitinteger
Limite mensuelle d'unités attribuée selon votre abonnement.
Astuce : compteur gratuit. La plupart des endpoints de recherche acceptent un paramètre 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

pageinteger · défaut 1
Numéro de la page à charger. Doit être supérieur ou égal à 1.
sortstring · enum
Champ de tri (sur /v1/actualite : publication_date ou modification_date).
sort_directionstring · enum
Sens du tri : asc (ascendant) ou desc (descendant).
pingboolean
Si true, retourne uniquement total sans consommer de quota.

Métadonnées de pagination dans la réponse

countinteger
Nombre de résultats présents sur la page courante.
totalinteger
Nombre total de résultats correspondant aux filtres (toutes pages confondues).
pageinteger
Numéro de la page courante.
nb_pagesinteger
Nombre total de pages disponibles.
itemsarray
Tableau de résultats. Le schéma des items varie selon l'endpoint (Operation, ArticlePreview, OperationVehicule, ActifImmo…).
quotaobject
Objet quota (cf. section 03).
Portefeuilles paginés à 25. Les endpoints /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 :

op_type[]integer · enum
Type d'opération. 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).
asset_type[]integer · enum
Type d'actif immobilier. 10 valeurs : 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.
op_strategy[]integer · enum
Stratégie d'investissement : 375039 core, 375040 core+, 375041 value-add, 375042 opportunist, 436401 sale & leaseback, 436399 vefa en blanc, 436398 vefa en gris, 436400 vente-utilisateur.
perimeter[]integer · enum · bureaux uniquement
Périmètre géographique bureaux : 436226 Paris QCA, 436227 Paris, 436228 Croissant Ouest, 1re/2e couronnes, Lyon, Lille, Marseille, Bordeaux, Toulouse, Nantes… (21 valeurs).
SUtranche[]string · enum
Tranche de surface (m²) : 0-1000, 1000-5000, 5000-10000, 10000 et plus.
op_nationality[]string · ISO 3166-1 alpha-2
Nationalité de la cible au format ISO (FR, US, GB, DE…). Valeurs spéciales : EU = Europe, WD = Monde, ND = N.d.
latitude · longitude · radiusnumber · number · integer
Deal Range GPS : transactions dans un rayon de radius mètres autour d'un point GPS. Plage 250 à 10 000 m, pas de 250.
depuis / jusquaustring · format d/m/Y
Date d'opération de début / de fin (format JJ/MM/AAAA, exemple : 01/01/2026).
op_keywords[]integer · enum · max 4
Mots-clés thématiques de l'opération (~140 valeurs : data center, coliving, coworking, Ehpad, entrepôt, brownfield…). Maximum 4 valeurs.
VALtranche[]string · enum
Fourchette de valorisation en M€ : 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.

GET/v1/operation/field-values— Valeurs possibles pour les champs des opérations.
GET/v1/acteur/field-values— Valeurs possibles pour les champs des acteurs.
GET/v1/societe/field-values— Valeurs possibles pour les champs des sociétés.
GET/v1/vehicule/field-values— Valeurs possibles pour les champs des véhicules.
GET/v1/people/field-values— Valeurs possibles pour les champs des personnalités.
GET/v1/mouvement/field-values— Valeurs possibles pour les champs des mouvements.
GET/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.

Bonne pratique. Utilisez les filtres typés (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.
Console Swagger interactive. Tous les filtres décrits ci-dessus sont testables en direct sur api.cfnewsimmo.net/doc. Sélectionnez l'endpoint, remplissez le formulaire généré à partir de la spécification, exécutez la requête et observez immédiatement la réponse JSON.

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éthodeCheminDescription
GET/v1/operationRecherche d'opérations (transactions, deals) avec filtres typés
GET/v1/operation/{id}Détail complet d'une opération
GET/v1/actif_immobilierRecherche d'actifs immobiliers
GET/v1/actif_immobilier/{id}Détail complet d'un actif immobilier
GET/v1/acteurRecherche d'acteurs (investisseurs, avocats, conseils)
GET/v1/acteur/{id}Détail complet d'un acteur
GET/v1/societeRecherche de sociétés
GET/v1/societe/{id}Détail complet d'une société
GET/v1/vehiculeRecherche de véhicules d'investissement
GET/v1/vehicule/{id}Détail complet d'un véhicule
GET/v1/mouvementRecherche de mouvements / nominations
GET/v1/mouvement/{id}Détail complet d'un mouvement
GET/v1/peopleRecherche de personnalités (Bottin)
GET/v1/people/{id}Détail complet d'une personnalité

Actualité

MéthodeCheminDescription
GET/v1/actualiteRecherche d'articles éditoriaux
GET/v1/actualite/{id}Contenu complet d'un article (option with_html_body)

Portfolios & deal lists

MéthodeCheminDescription
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éthodeCheminEntité concernée
GET/v1/operation/field-valuesOpérations
GET/v1/acteur/field-valuesActeurs
GET/v1/societe/field-valuesSociétés
GET/v1/vehicule/field-valuesVéhicules
GET/v1/people/field-valuesPersonnalités
GET/v1/mouvement/field-valuesMouvements
GET/v1/actualite/field-valuesActualités

Compte

MéthodeCheminDescription
GET/v1/account/quotaÉtat du quota mensuel
Explorez chaque endpoint sur Swagger. Chaque chemin listé ici est disponible dans la console Swagger interactive avec son schéma de paramètres, ses réponses d'exemple et un bouton « Try it out » qui exécute l'appel réel sur l'API.

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

ChampContenu
asset_type · asset_subtypeType et sous-type d'actif (ex. Bureaux > Tours, Hôtel > 4*)
strategy · perimeterStratégie (core, value-add, VEFA…) et périmètre bureaux
exact_surface · surface_range · acq_surfaceSurfaces (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_totalyearTaux de rendement, loyer (€/m²/an) et loyer annuel total (M€)
amount · valorisation · *_intervalMontant et valorisation (M€), exacts ou en fourchettes, avec déclinaisons par usage si opé mixte
tenants · owners · one_tenant · type_bailLocataires, propriétaires, mono-locataire, type et descriptif du bail
buyer_bloc · solder_bloc · concilsAcqué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_financingStructure 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.

HTTPCode applicatifSignificationAction recommandée
200SuccèsRéponse normale.
400bad_requestErreur dans votre requêteVérifier le format des paramètres et leurs valeurs autorisées (enum).
403forbiddenAccès non autoriséVérifier le token Bearer et les droits associés à l'abonnement.
403limit_exceededQuota mensuel dépasséSurveiller quota.monthly_used dans les réponses.
404Ressource introuvableVérifier l'{id} de la ressource demandée.
422too_broad_searchRecherche trop largeAjouter des filtres pour réduire le volume de résultats.
429too_many_requestsTrop de requêtes successivesImplémenter un délai entre les appels (backoff exponentiel recommandé).
500internal_errorErreur interneRé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.

Bonne pratique : ne pas confondre 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 ?

EndpointType de ficheNb filtres typésFiltres clés
/v1/operationOpérations / Transactions~40op_type[], asset_type[], op_strategy[], perimeter[], SUtranche[], op_ratemin/max, latitude/longitude/radius
/v1/actif_immobilierActifs immobiliers~9asset_type[], asset_subtype[], asset_surface_range[], asset_premises_state[], VALtranche[]
/v1/acteurActeurs (investisseurs, avocats, conseils)~14acteur_domaine[], investment_type[], aum_min/max, asset_type, tranche_invest[]
/v1/societeSociétés~15soc_activity[], sector[], soc_ca_interval[], VALtrancheCompany[], soc_keywords[]
/v1/vehiculeVéhicules d'investissement~17vehicle_segment[], asset_type[], sfdr[], vehicle_status[], ticket_tranche[]
/v1/mouvementMouvements / Nominations~12mvt_category, mvt_ssdomaine[], mvt_sector[], mvt_dureemin/max
/v1/peoplePersonnalités (Bottin)~15people_titres[], people_domaine, people_type_organisation[], uniqut_avec_email/tel/li
/v1/actualiteArticles~14title, sector[], theme[], keyword[], related-actor[], date_between
La liste exhaustive des filtres par endpoint est disponible dans la console Swagger (cliquer sur un endpoint → section Parameters). Les pages ci-dessous synthétisent les filtres les plus utiles avec exemples de valeurs.

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ètreTypeDescription & valeurs
op_nomstringActif 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_articleboolCité dans un article CFNEWS IMMO (envoyer oui)

Nature de l'opération & stratégie

ParamètreTypeDescription & 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ètreTypeDescription & 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_ratemaxnumberTaux de rendement min / max (en %)
uniqut_avec_rendementboolExclure les opérations sans taux de rendement (envoyer oui)

Recherche géographique par rayon (Deal Range GPS)

ParamètreTypeDescription & valeurs
latitudenumberLatitude du point de recherche
longitudenumberLongitude du point de recherche
radiusintegerRayon 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ètreTypeDescription & valeurs
op_investstringNom acquéreur / investisseur / cédant. Utilisé conjointement avec op_buyer, op_solder et op_invest_operator
op_buyerboolActive le filtrage côté acquéreurs / investisseurs (envoyer oui). Au moins un de op_buyer ou op_solder doit être actif
op_solderboolActive le filtrage côté cédants (envoyer oui)
op_invest_operatorenumOR · 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_conseilstringNom de conseil ou prêteur
vehicle_usedstringVéhicule(s) utilisé(s)

Valorisation, montant, CA, dates, mots-clés

ParamètreTypeDescription & valeurs
VALtranche[]string[]Fourchette de valorisation (M€) : 0-20 · 20-50 · 50-150 · 150-250 · 250-500 · 500-1000 · >1000 · n.d.
op_valorisationmin / maxnumberBornes de valorisation précises (M€)
inclure_montant_fourchetteboolInclure les fourchettes correspondantes si la valorisation exacte n'est pas connue (envoyer oui)
uniqut_avec_montantboolExclure 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 / MontantmaxnumberBornes du montant de l'opération (M€)
ca_interval[]string[]Fourchette de chiffre d'affaires de la cible (M€)
depuis / jusquaustringDate 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_operatorenumOR (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ètreTypeDescription & valeurs
asset_namestringNom 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ètreTypeDescription & valeurs
acteur_nomstringNom 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_maxnumberMontant sous gestion / AUM (M€)
asset_typeintType 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_officesboolInclure les bureaux régionaux (envoyer 1)
uniqut_citation_articleboolCité dans un article (envoyer oui)

9.4 — /v1/societe · Recherche de sociétés

ParamètreTypeDescription & valeurs
soc_nomstringNom
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 / maxintAnnée de création (AAAA), bornes incluses
soc_effectifmin / maxintEffectif (nombre d'employés), bornes incluses

9.5 — /v1/vehicule · Recherche de véhicules

ParamètreTypeDescription & valeurs
vehicle_nomstringNom du véhicule
vehicle_soc_nomstringSocié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 / maxstring[] · numberFourchette et bornes du montant levé (M€)
vehicle_sector[]int[]23 secteurs d'investissement
vehicle_invest / vehicle_advicestringInvestisseur du fonds (LP) / Conseil
region[]int[]Région de la société de gestion
depuis / jusquaustringDate de statut — format d/m/Y

9.6 — /v1/mouvement · Mouvements & nominations

ParamètreTypeDescription & valeurs
mvt_nomstringPersonnalité (nom)
mvt_new_orga / mvt_old_orgastringNouvelle / ancienne organisation
mvt_categoryintCaté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_nationalitystringNationalité de la nouvelle organisation (ISO)
region[]int[]Région de la nouvelle organisation
mvt_dureemin / mvt_dureemaxnumberAncienneté (en mois)
depuis / jusquaustringDate du mouvement — format d/m/Y

9.7 — /v1/people · Bottin des personnalités

ParamètreTypeDescription & valeurs
people_nomstringNom (Prénom)
people_societestringOrganisation
people_emailstringEmail
people_domaineintDomaine : 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 / _liboolUniquement avec email / téléphone-mobile / LinkedIn renseigné (envoyer oui)

9.8 — /v1/actualite · Articles

ParamètreTypeDescription & valeurs
titlestring[]Mots dans le titre (séparés par ;)
intro_fullstring[]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_enddateFormat Y-m-d (différent du reste : ex. 2026-07-13)
date_betweenstring[]Plage(s) Y-m-d;Y-m-d
sort / sort_directionenumTri par publication_date ou modification_date · asc / desc
with_html_bodyboolSur /v1/actualite/{id} : conserver les balises HTML dans le corps de l'article
Attention au format de date. L'endpoint /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) :

EndpointExemple
/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

Avant d'écrire une ligne de code, nous vous recommandons d'explorer l'API depuis la console Swagger interactive sur api.cfnewsimmo.net/doc. Vous y validez vos requêtes (paramètres, valeurs 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)
Sérialisation des tableaux. Les paramètres typés 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.
Astuce — copier les requêtes depuis Swagger. Sur api.cfnewsimmo.net/doc, après avoir exécuté une requête via « Try it out », Swagger affiche la commande 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.

— LE PLUS SIMPLE

Console Swagger interactive

Testez tous les endpoints en direct sans écrire une ligne de code, depuis api.cfnewsimmo.net/doc.

Ouvrir la console →
— 01

Génération de clients

SDK auto-générés en Python, TypeScript, Java, PHP, C#… via openapi-generator. Types stricts garantis.

— 02

Documentation embarquée

Rendu visuel via Redoc ou Stoplight pour intégrer la doc dans votre portail interne.

— 03

Test & exploration

Import direct dans Postman, Insomnia ou Bruno. Collections prêtes à l'emploi.

— 04

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.

— 05

Intégration IA / MCP

Consommation par des agents LLM (Claude, GPT…) via le serveur CFNEWS IMMO MCP, ou dans vos pipelines RAG.