French Property Intel · Value, Yield & Owner SIREN avatar

French Property Intel · Value, Yield & Owner SIREN

Pricing

from $4.19 / 1,000 dossier with owner sirens

Go to Apify Store
French Property Intel · Value, Yield & Owner SIREN

French Property Intel · Value, Yield & Owner SIREN

Paste a French street address. Get estimated value, deal score vs asking, DPE class and rental calendar, yield, flood/clay risks and the SCI SIREN at that number — one row per address. Open data. No login. No invented emails.

Pricing

from $4.19 / 1,000 dossier with owner sirens

Rating

0.0

(0)

Developer

Corentin Robert

Corentin Robert

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

Paste a French street address. Get one dossier per line: estimated value, deal score vs asking, DPE class and rental calendar, yield, flood/clay risks, and the SCI / property-company SIREN at that number.

No login. No API key. Open data only. No invented emails.

This is the address upsell after a city listing Actor. Those Actors find a verified house number. This one scores that number (DPE, hazards, value, yield). You are billed per dossier, not per cadastral row.

Already have a city list? Copy address from France Pool-Ready Plots, Garden Plots, Building Roofs, Building Heights, Industrial Buildings or Pools & Tennis.

Who is this for?

You are…Typical goalSuggested setup
Private investorAm I overpaying this listing?Number + street + postcode + city · paste asking price
Buy-to-let / yield hunterDoes this rent cover the price?Add monthly rent of this dwelling · owner charges = 0 on a house
Agency / hunterQualify a lead before the visitAddress only · Investor view
Asset managerRefresh a small portfolioExtra addresses JSON · Max 25
Renovation / energy salesIs this a passoire, and who owns the SCI?Keep energy class + owner companies on
Data / opsFeed a CRM from listings you already haveAPI run · Full dataset

Standby lookup (HTTP)

Console Start is unchanged: paste street, postcode and city, run, download the dataset.

Need one address dossier (or a few) in n8n, Make, or your own app? Use the Standby tab hostname. Authenticate with Authorization: Bearer <APIFY_TOKEN> (or ?token=). This Actor does not crawl listing websites — pass the French address (propertyUrl is treated as an address string).

MethodPathRequestResponse
GET / POST/lookupstreet + postalCode + city, or address / propertyUrl as an address string (max 3){ items, count, failed, budgetExhausted, cap }
GET/Header x-apify-container-server-readiness-probeOK

Hard cap: 3 dossiers per request. Bulk stays on Start. Same PPE as a dataset row. First byte timeout: 5 minutes.

curl -H "Authorization: Bearer $APIFY_TOKEN" \
"https://<user>--french-property-intel-hub.apify.actor/lookup?street=21%20rue%20Victor%20Hugo&postalCode=92600&city=Asnieres-sur-Seine"

Standby memory 512 MB, idle 60 s (Console → Actor → Standby).

What you get by default: normalized address, DPE class and surface, recency-weighted estimate (P25 / median / P75), street / neighborhood / commune €/m², commune rent check, flood/clay flags, copro id when published, SCI SIREN when a company sits at that number.

When to fill the listing fields: paste asking price to score the ad (not a multi-lot DVF deed). Paste monthly rent of this dwelling so yield is this unit. Paste owner charges per year (use 0 if none) for a net yield. Leave them empty for a market-only dossier.

How to score a listing

  1. Open the Actor in Apify Console.
  2. Keep the prefilled example, or paste your number and street, 5-digit postcode and city.
  3. Optional: asking price, monthly rent of this dwelling, owner charges per year.
  4. Click Start. Open the Investor dataset view — export JSON / CSV / Excel.

First run stays small (Max addresses = 25) so you can check one listing before a batch.

What it extracts

CategoryWhat you get
AddressNormalized label, BAN id, GPS, INSEE city code
EnergyLatest DPE class, surface, consumption, F/G flag, Loi Climat rental calendar
ValueRecency-weighted estimate, P25–P75, similar-sale count, street / neighborhood / commune €/m², yearly trend
DealdealScore vs asking when provided (underpriced / in_line / overpriced) — never vs a package deed
YieldThis dwelling when you paste rent · commune ANIL as a check · net when charges are set (including 0)
CoproLots and syndic when the DPE has an id — charges are not in open data
HazardsFlood, clay shrink-swell, earthquake and other public flags
OwnerSCI / foncière SIREN, legal form, public directors — emails always empty

Typical fill on a suburban house (Asnières-sur-Seine reference): DPE and estimate almost always present; phone/email never; copro register empty on a maison; SCI SIREN only when a company is registered at that number.

How much does it cost to score a French listing?

HTTP-only open data — default 512 MB, no browser, no residential proxy. Platform usage included. You pay per dossier, not per cadastral plot.

City listing Actors are ~$1.29 / 1,000 verified numbers. This hub is the next hop: ~$3.49–$5.99 / 1,000 dossiers (about 3–5× a listing row).

All Apify plans
Actor start$0.00005 / GB
Dossier with owner SIREN$5.99 / 1,000
Dossier without owner SIREN$3.49 / 1,000
1 listing, with SIREN~$0.006
1,000 dossiers with SIREN$5.99

Addresses that do not geocode are not billed. Dataset writes are included (not charged again). Free Apify accounts export 20 dossiers per run.

Input

FieldDefaultNotes
street21 rue Victor HugoNumber and street only — no postcode here
postalCode926005 digits
cityAsnières-sur-SeineCity name
askingPriceEurOptional listing / offer. Deal score is vs this figure
actualRentEurMonthly rent of this dwelling
chargesEurYearAnnual owner charges. Use 0 if none. Needed for net yield
placesExtra { street, postalCode, city, … } rows
maxItems25Dossier cap (1–500). Free plan 20 / run
collectDpe / collectDvf / collectLoyers / collectRnic / collectRisks / collectOwnerstrueTurn a block off if you do not need it
ownerMatchModeSCI / property companiesOr + syndics, or any company at the number

API-only (accepted in JSON, not shown on the Console form):

FieldDefaultNotes
verboseLogsfalseExtra diagnostics in the run log (Debug: lines)

JSON example

{
"street": "21 rue Victor Hugo",
"postalCode": "92600",
"city": "Asnières-sur-Seine",
"askingPriceEur": 590000,
"actualRentEur": 1800,
"chargesEurYear": 0,
"maxItems": 25
}

How it works

  1. Resolve the address on the official French address database.
  2. Pull energy class, official sales, commune rent, copro register, hazards and companies at that number.
  3. Estimate the DPE dwelling from similar sales (same type, surface ±30%, recency-weighted).
  4. Score asking vs that estimate. Compute yield from your rent when provided.
  5. Export one dataset row as soon as the dossier is ready.

Output sample

Transformed values from a live Asnières-sur-Seine house (asking 590 000 €, rent 1 800 €/month, charges 0):

{
"label": "21 Rue Victor Hugo 92600 Asnières-sur-Seine",
"geocoded": true,
"citycode": "92004",
"surfaceM2": 90.5,
"latestDpeClass": "C",
"latestDpeDate": "2024-10-14",
"rentalBanStatus": "none",
"estimatedValueEur": 622188,
"estimatedValueLowEur": 568159,
"estimatedValueHighEur": 674135,
"similarCompsUsed": 34,
"similarBandPct": 30,
"marketTrendPct": -9.5,
"askingPriceEur": 590000,
"askingVsEstimatePct": -5.2,
"comparedTo": "asking",
"dealScore": "in_line",
"dealLabel": "Asking in line with estimated value",
"actualRentEur": 1800,
"chargesEurYear": 0,
"yieldKind": "actual_net",
"grossYieldVsEstimatePct": 3.5,
"grossYieldVsAskingPct": 3.7,
"netYieldVsEstimatePct": 3.5,
"communeGrossYieldVsEstimatePct": 4.3,
"latestSaleMixed": true,
"latestSalePriceEur": 564382,
"latestSaleDate": "2025-07-17"
}

One row = one address. dealScore in_line means asking is within ±8% of the dwelling estimate. yieldKind actual_net means headline yield uses this lease and charges — not the commune ANIL figure (kept as communeGrossYieldVsEstimatePct).

Dataset views: Investor (value / yield / DPE / owner) and Overview (wider reporting).

Limits

  • France only.
  • Owner match is street number + postcode, not a cadastral title. Several SCI can sit on the same building. Private individuals without a company are out of scope.
  • A deed that mixes several dwellings or a shop is a package: no headline €/m², estimate stays the DPE dwelling.
  • Neighborhood = 400 m around the point (the public sales file has no IRIS/quartier code). Recent sales weigh more (half-life 2 years).
  • ANIL rent is a commune asking-rent indicator (charges included, unfurnished ads). Fragile communes are flagged rentReliable: false.
  • Copro charges and unpaid fees are not in open data.
  • DPE rental bans (Loi Climat): G since 1 Jan 2025, F from 1 Jan 2028, E from 1 Jan 2034. This is a calendar, not legal advice.

This Actor only reads data that France already publishes: API Adresse, ADEME DPE, geo-DVF, ANIL carte des loyers, ANAH RNIC, Géorisques, INSEE SIRENE.

As with any dataset that can contain personal or company information, ensure your use complies with GDPR and your own purpose. This is not a substitute for a notaire, diagnostician or legal opinion.

Local development

cd french-property-intel-hub
npm install
# storage/key_value_stores/default/INPUT.json must include street, postalCode, city
# (same keys as Console prefill), or:
npx apify run --input-file=./.actor/INPUT.json

On apify run, CLI input overwrites a root input.json when both exist. Local dataset lands in storage/. Set "verboseLogs": true in input for diagnostics.

Also available

Find the house number first (city → verified address, ~$1.29 / 1k):

Same energy / owner family:

Support

Contact corentin@outreacher.fr if you need a custom property workflow or CRM mapping. Use the Issues tab on the Actor page for bugs.