SPB Git

spb/api-ka

Public

API-KA — plateforme centrale : collecte quotidienne des 8 services KA, historisation append-only et API publique sur www.api-ka.com

Endpoint /api/v1/louka/fairvalue/{uid} : juste valeur Lou-Ka en direct (proxy)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Simon-Pierre Boucher committed (Aug 18, 2026) parent 609d6bb Browse files

1 changed file +24 −0

Unified Split
modified src/api/routes/services.py +24 −0
@@ -192,3 +192,27 @@ def list_service_data(
192 total=total, 192 total=total,
193 extra_meta={"service": service}, 193 extra_meta={"service": service},
194 ) 194 )
195+
196+
197+@router.get("/louka/fairvalue/{uid}")
198+def louka_fairvalue(uid: str = Path(..., description="uid d'annonce lou-ka")):
199+ """Juste valeur locative Lou-Ka (fair value) EN DIRECT : valeur estimée,
200+ fourchette, indice de confiance, classification sous/dans/au-dessus du
201+ marché et distribution du segment — proxifié depuis l'API lou-ka
202+ (framework louka/fairvalue.py). Utilisé par l'app iOS KA."""
203+ import os
204+
205+ import httpx
206+
207+ base = (os.environ.get("LOUKA_SOURCE_URL")
208+ or "http://127.0.0.1:8095/api/listings").rsplit("/api/", 1)[0]
209+ try:
210+ resp = httpx.get(f"{base}/api/fairvalue/{uid}", timeout=10)
211+ except httpx.HTTPError as exc:
212+ raise HTTPException(status_code=502, detail=f"lou-ka injoignable: {exc}")
213+ if resp.status_code == 404:
214+ raise HTTPException(status_code=404,
215+ detail="Pas d'estimation pour cette annonce")
216+ resp.raise_for_status()
217+ return envelope([resp.json()],
218+ extra_meta={"service": "louka", "kind": "fairvalue"})
195 219
Menu

Theme