SPB Git forge

spb/vrai-prix

Public

Vrai-Prix — l'évaluation du vrai prix des propriétés résidentielles au Québec.

60commits 1branches 0releases
12.3 MBsize
maindefault branch
17 days agolast push
TypeScript 90.2% JavaScript 3.5% Python 3.4% CSS 1.9% HTML 0.6%

API publique /api/stats — agrégats provinciaux pour les métriques live du hub

GET /api/stats expose en JSON les agrégats de src/data/stats.json (unités,
valeur totale et médiane 2026, croissance, logements, municipalités,
transactions, version du modèle, date de génération). Import statique du
JSON, aucune base de données ; Cache-Control public max-age=600 + CORS
ouvert en lecture. Consommé par groupe-ka.com pour ses métriques live.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed 1 mo ago (Aug 18, 2026) parent a34883c

1 changed file +35 −0

added src/app/api/stats/route.ts +35 −0
@@ -0,0 +1,35 @@
1 +// Auteur : Simon-Pierre Boucher — contact@spboucher.ai
2 +/**
3 + * GET /api/stats — agrégats provinciaux publics de Vrai-Prix.
4 + * Consommé en live par le site mère groupe-ka.com pour ses métriques.
5 + * Import statique de src/data/stats.json (mêmes données que la page /stats) :
6 + * aucune base de données, réponse cachable 10 minutes.
7 + */
8 +import { NextResponse } from "next/server";
9 +import stats from "@/data/stats.json";
10 +
11 +/** Ventes réelles publiées 2021-01 → 2026-07 (constante du corpus, voir /methodologie). */
12 +const TRANSACTIONS = 745119;
13 +
14 +export function GET() {
15 + return NextResponse.json(
16 + {
17 + units_total: stats.unites,
18 + value_total_2026: stats.valeur_totale_2026,
19 + value_median_2026: stats.valeur_mediane_2026,
20 + growth_2021_2026_pct: stats.croissance_2021_2026_pct,
21 + dwellings: stats.logements,
22 + municipalities: stats.municipalites,
23 + transactions: TRANSACTIONS,
24 + model_version: "hédonique LightGBM + comparables ajustés — erreur médiane 11 %",
25 + updated: stats.generated,
26 + source: "https://www.vrai-prix.com/stats",
27 + },
28 + {
29 + headers: {
30 + "Cache-Control": "public, max-age=600",
31 + "Access-Control-Allow-Origin": "*",
32 + },
33 + }
34 + );
35 +}
36