Aller au contenu principal
Accueil/Developpeurs
API publique - v1

Donnees immobilieres francaises, gratuites

API REST publique RentaImmo : 3 endpoints JSON pour acceder aux prix, rendements, tension et indice de plus de 35 000 communes francaises. Sans cle API, sans authentification. License CC BY 4.0 - mention obligatoire de la source.

License CC BY 4.0. Toute reutilisation des donnees doit citer « Source : RentaImmo » avec un lien dofollow vers https://renta-immo.fr. Voir conditions completes.

1. Authentification

Pas d'authentification requise pour la version publique. Les endpoints sont en acces libre depuis n'importe quel domaine (CORS Access-Control-Allow-Origin: *).

Un systeme de cles API privees sera disponible pour les usages commerciaux a forte volumetrie (quotas etendus, support, SLA). Voir quotas.

Limites par defaut

  • 60 requetes / minute par adresse IP.
  • 1 000 requetes / jour par adresse IP.
  • Au-dela : reponse HTTP 429 Too Many Requests avec header Retry-After.

Chaque reponse inclut le compteur restant via le header X-RateLimit-Remaining et le champ _meta.rate_limit_remaining.

2. Endpoints

GET/api/public/v1/cities

Liste des villes

Retourne les villes qualifiees (population ≥ 1 000, ≥ 5 transactions DVF, au moins une donnee de marche).

Query params (optionnels)

  • dept - code departement INSEE (42, 2A, 75...).
  • minYield - rendement brut minimum, en pourcentage. Ex : 5 pour ≥ 5%.
  • limit - taille de la page (defaut 50, max 200).

Cache

Cache-Control: public, max-age=3600 (1 heure).

GET/api/public/v1/cities/{slug}

Detail d'une ville

Detail enrichi pour une ville : prix, loyer, rendement, tension, indice RentaImmo (score 0-100). 404 si le slug est inconnu ou la ville non qualifiee.

Path param

  • slug - identifiant URL de la ville (ex : lyon, saint-etienne, rennes-35).

Cache

Cache-Control: public, max-age=3600.

GET/api/public/v1/regions

Aggregats par region

Retourne les 13 regions metropolitaines avec moyennes ponderees par population (prix m2, loyer m2, rendement brut, tension).

Cache

Cache-Control: public, max-age=21600 (6 heures).

Headers communs

  • X-RentaImmo-Source: https://renta-immo.fr
  • X-Attribution-Required: true
  • X-RateLimit-Remaining
  • Access-Control-Allow-Origin: *

3. Exemples

cURL - toutes les villes du Rhone (69) avec rendement ≥ 5%

curl "https://renta-immo.fr/api/public/v1/cities?dept=69&minYield=5&limit=20" \
  -H "Accept: application/json"

cURL - detail Lyon

curl "https://renta-immo.fr/api/public/v1/cities/lyon"

cURL - moyennes par region

curl "https://renta-immo.fr/api/public/v1/regions"

JavaScript / fetch

const res = await fetch(
  "https://renta-immo.fr/api/public/v1/cities?dept=42&minYield=6"
);
if (!res.ok) throw new Error("HTTP " + res.status);
const { data, _meta } = await res.json();
console.log(data); // [{ slug, name, grossYield, ... }, ...]
console.log(_meta.license); // "CC BY 4.0 - Mention obligatoire 'Source: RentaImmo'"

Node.js / TypeScript

interface PublicCity {
  slug: string;
  name: string;
  department: string;
  region: string;
  population: number;
  avgPricePerSqm: number;
  avgRentPerSqm: number;
  grossYield: number;
  tension: number;
  lastUpdated: string;
}

async function getCities(dept?: string): Promise<PublicCity[]> {
  const url = new URL("https://renta-immo.fr/api/public/v1/cities");
  if (dept) url.searchParams.set("dept", dept);
  const r = await fetch(url, { headers: { Accept: "application/json" } });
  if (!r.ok) throw new Error(`API error: ${r.status}`);
  const json: { data: PublicCity[] } = await r.json();
  return json.data;
}

4. Schema des reponses

GET /cities (200)

{
  "data": [
    {
      "slug": "lyon",
      "name": "Lyon",
      "department": "69",
      "region": "Auvergne-Rhone-Alpes",
      "population": 522969,
      "avgPricePerSqm": 4800,
      "avgRentPerSqm": 15.0,
      "grossYield": 3.8,
      "tension": 85,
      "lastUpdated": "2026-04-30T08:00:00.000Z"
    }
  ],
  "count": 1,
  "_meta": {
    "source": "RentaImmo",
    "attribution_url": "https://renta-immo.fr",
    "license": "CC BY 4.0 - Mention obligatoire 'Source: RentaImmo'",
    "rate_limit_remaining": 59,
    "doc_url": "https://renta-immo.fr/developpeurs"
  }
}

GET /cities/{slug} (200)

{
  "data": {
    "slug": "lyon",
    "name": "Lyon",
    "department": "69",
    "region": "Auvergne-Rhone-Alpes",
    "population": 522969,
    "avgPricePerSqm": 4800,
    "avgRentPerSqm": 15.0,
    "grossYield": 3.8,
    "tension": 85,
    "priceEvolution": "+1.5% sur 1 an",
    "marketTrend": "hausse",
    "dvfTransactionCount": 1240,
    "indice": {
      "score": 67,
      "tier": "bon",
      "breakdown": {
        "yield": 16.6,
        "tension": 21.3,
        "priceEvolution": 13.0,
        "populationGrowth": 5.0,
        "economicStability": 10.0,
        "transports": 5.0
      }
    },
    "lastUpdated": "2026-04-30T08:00:00.000Z"
  },
  "_meta": { ... }
}

Codes d'erreur

  • 400 Bad Request - slug invalide.
  • 404 Not Found - ville inconnue ou non qualifiee.
  • 429 Too Many Requests - quota atteint, voir Retry-After.
  • 500 Internal Server Error - erreur serveur (pas de payload metier).

5. License et attribution

Les donnees exposees par cette API sont publiees sous license Creative Commons Attribution 4.0 (CC BY 4.0). Vous etes libre de :

  • Partager - copier et redistribuer les donnees sur tout support.
  • Adapter - modifier, transformer et utiliser les donnees, y compris a des fins commerciales.

Sous condition d'attribution

Toute publication, application, etude ou article qui reutilise ces donnees DOIT :

  • Citer textuellement « Source : RentaImmo ».
  • Inclure un lien dofollow vers https://renta-immo.fr.
  • Indiquer si les donnees ont ete modifiees.

Exemple d'attribution conforme

Source : RentaImmo (https://renta-immo.fr) - License CC BY 4.0

Garanties

Les donnees sont fournies « en l'etat », sans garantie d'exactitude ni de completude. Elles agregent des sources publiques (DVF, INSEE, observatoires loyer) et un calcul proprietaire. Ne constituent pas un conseil en investissement.

6. Quotas et plans Pro

Le plan public gratuit propose 60 requetes / minute et 1 000 requetes / jour par IP. C'est suffisant pour la plupart des prototypes, sites editoriaux et integrations widgets.

Pour des usages plus intensifs (production, analytics, white label), nous proposons :

  • Cles API personnelles (non-partagees, identification claire).
  • Quotas eleves (jusqu'a 100 000 req/jour).
  • SLA et support dedie.
  • Acces a des endpoints additionnels (DVF brut, alertes, comparateur).
Demander une cle API Pro

Changelog

  • v1.0 - Lancement avec 3 endpoints publics : cities, cities/[slug], regions.

Une question, un bug, une idee d'endpoint ? Ecrivez-nous sur /contact ou ouvrez une issue publique.