API REST · JSON · FastAPI

API Publique
Laghem Agri Platform

Integrez les donnees agricoles en temps reel de votre exploitation — stock, cultures, meteo, previsions ML et IoT — dans vos applications.

Swagger UI interactif ReDoc Obtenir une cle API
Demarrage

Obtenir une cle API

L'acces a l'API Laghem Agri Platform est securise par token. Pour obtenir votre cle :

  1. Envoyez un email a dev@lesgrandsdomainesdelaghem.com avec votre nom d'exploitation et votre cas d'usage.
  2. Votre token sera cree dans les 48h ouvrables.
  3. Le token est de la forme : 57685899dbb8f967...c16e1 (64 caracteres hexadecimaux).
  4. Passez-le dans chaque requete via le header X-Token.
Essai rapide — Health check (sans auth)
curl https://api.lesgrandsdomainesdelaghem.com/health

Reponse : {"db": "ok", "ts": "2026-04-01T08:00:00"}

Authentification

Authentification par token

Tous les endpoints (sauf /health et /auth/*) requierent le header X-Token.

# curl
curl -H "X-Token: VOTRE_TOKEN" \
     https://api.lesgrandsdomainesdelaghem.com/stock
// JavaScript fetch
const resp = await fetch('https://api.lesgrandsdomainesdelaghem.com/stock', {
  headers: { 'X-Token': 'VOTRE_TOKEN' }
});
const data = await resp.json();
# Python (httpx)
import httpx
headers = {"X-Token": "VOTRE_TOKEN"}
data = httpx.get("https://api.lesgrandsdomainesdelaghem.com/cultures/actives", headers=headers).json()
Configuration

URL de base

Production
https://api.lesgrandsdomainesdelaghem.com
Documentation interactive (generee automatiquement par FastAPI)

Toutes les reponses sont en JSON UTF-8. Les dates sont en ISO 8601 (YYYY-MM-DD).

Limites

Rate limits

1 000
requetes / heure — Standard
10 000
requetes / heure — Pro
sans limite — Enterprise

En cas de depassement : HTTP 429 Too Many Requests avec header Retry-After (secondes a attendre).

Erreurs

Codes HTTP

200 OK
201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
404 Not Found
500 Server Error
{ "detail": "Token invalide" }
Endpoints

Stock

GET /stock Stock complet ou filtre
Auth requisestock

Liste complete du stock avec niveaux, statuts d'alerte et valorisation.

ParamTypeDescription
categoriestringoptionnel — ex: legumes, fruits, piments
statutstringoptionnel — OK | BAS | CRITIQUE | RUPTURE
qstringoptionnel — recherche textuelle sur le nom
curl -H "X-Token: TOKEN" "https://api.lesgrandsdomainesdelaghem.com/stock?statut=CRITIQUE"
[{
  "produit_id": 1,
  "nom": "Piment SOFIA",
  "categorie": "Piments",
  "stock_actuel": 12.5,
  "unite": "kg",
  "seuil_alerte": 50,
  "statut_stock": "CRITIQUE",
  "prix_vente": 1800
}]
GET /stock/alertes Produits en alerte (CRITIQUE ou RUPTURE)
Auth requisestock
curl -H "X-Token: TOKEN" https://api.lesgrandsdomainesdelaghem.com/stock/alertes

Cultures

GET /cultures/actives Cultures en cours sur les parcelles
Auth requisecultures
curl -H "X-Token: TOKEN" https://api.lesgrandsdomainesdelaghem.com/cultures/actives
[{
  "id": 2,
  "produit_nom": "Tomate de table",
  "parcelle_nom": "Parcelle Sud — Legumes",
  "statut": "croissance",
  "date_semis": "2026-01-20",
  "surface_m2": 5000,
  "rendement_prevu_kg": 12000.0
}]
GET /calendrier-cultural Vue temporelle de tous les cycles
Auth requisecultures

Toutes les cultures avec dates de semis, floraison et recolte. Ideel pour generer un diagramme de Gantt.

Previsions ML Rendement

GET /previsions/rendement-ml Prevision ML pour une ou toutes les cultures
Auth requiseagronomie

Modele rule-based base sur les itineraires techniques, la meteo du cycle et le type de sol :

rendement_prevu = rendement_base × facteur_meteo × facteur_sol

  • facteur_meteo : 0.7 a 1.3 selon temperature et pluviometrie vs optimum de la culture
  • facteur_sol : 1.0 si sol recommande, 0.9 si compatible, 0.8 sinon
ParamTypeDescription
culture_idintoptionnel — si absent : toutes les cultures actives
stockerbooloptionnel — sauvegarder en DB (defaut: true)
curl -H "X-Token: TOKEN" \
     "https://api.lesgrandsdomainesdelaghem.com/previsions/rendement-ml?culture_id=2"
{
  "culture_id": 2,
  "produit": "Tomate de table",
  "surface_ha": 0.5,
  "rendement_base_kg_ha": 20000.0,
  "facteur_meteo": 1.05,
  "facteur_sol": 1.0,
  "rendement_prevu_kg_ha": 21000.0,
  "quantite_prevue_kg": 10500.0,
  "intervalle_confiance": {
    "min_kg_ha": 18900.0,
    "max_kg_ha": 23100.0,
    "incertitude_pct": 10.0
  },
  "confiance_pct": 75,
  "methode": "ML_rule_based_v1"
}
GET /previsions/recolte Historique des previsions stockees
Auth requiseagronomie
ParamTypeDescription
culture_idintoptionnel
methodestringoptionnel — ML_rule_based_v1 | manuel

Meteo

GET /meteo/quotidien Historique meteo (temperature, pluie, ET0)
Auth requisemeteo
ParamTypeDescription
sitestringtene_toubab (defaut) | thienaba_gare
joursintNombre de jours d'historique (defaut: 7)
curl -H "X-Token: TOKEN" "https://api.lesgrandsdomainesdelaghem.com/meteo/quotidien?jours=14"
GET /meteo/previsions Previsions 7 jours (Open-Meteo)
Auth requisemeteo

Temperature max/min, precipitations et code meteo sur 7 jours, source Open-Meteo.

Mouvements de stock

POST /mouvements Enregistrer recolte, vente, perte...
Auth requisemouvements

Types disponibles : RECOLTE VENTE_BOUTIQUE VENTE_WEB VENTE_GROS VENTE_BtoB PERTE TRANSFERT AJUSTEMENT RETOUR

curl -X POST \
     -H "X-Token: TOKEN" -H "Content-Type: application/json" \
     -d '{"produit_id": 1, "type_mvt": "RECOLTE", "quantite": 150.5, "parcelle_id": 1}' \
     https://api.lesgrandsdomainesdelaghem.com/mouvements
{ "id": 42, "created_at": "2026-04-01T10:30:00+00:00", "sens": 1 }
GET /mouvements Historique filtre des mouvements
Auth requisemouvements
ParamTypeDescription
produit_idintoptionnel
type_mvtstringoptionnel
date_debutdateoptionnel — YYYY-MM-DD
date_findateoptionnel
limitintoptionnel — defaut 50

Rendement et Agronomie

GET /rendement/parcelle Rendement reel cumule par parcelle
Auth requiseagronomie
curl -H "X-Token: TOKEN" https://api.lesgrandsdomainesdelaghem.com/rendement/parcelle
GET /irrigation/recommandation Bilan hydrique et recommandation d'irrigation
Auth requiseagronomie
ParamTypeDescription
parcelle_idintrequis
curl -H "X-Token: TOKEN" \
     "https://api.lesgrandsdomainesdelaghem.com/irrigation/recommandation?parcelle_id=1"
{
  "parcelle": "Parcelle Nord",
  "besoin_irrigation_mm": 5.2,
  "volume_total_litres": 41600,
  "recommandation": "Irriguer",
  "duree_estimee_heures": 8.3
}

Branding White-Label

GET /branding Couleurs et logo de l'exploitation
Auth requisebranding

Charge par le dashboard au demarrage pour appliquer les couleurs CSS de votre exploitation via document.documentElement.style.setProperty().

curl -H "X-Token: TOKEN" https://api.lesgrandsdomainesdelaghem.com/branding
{
  "nom_affiche": "Les Grands Domaines de Laghem",
  "couleur_primaire": "#1C3828",
  "couleur_secondaire": "#B8831F",
  "couleur_fond": "#F0ECE4",
  "logo_url": null,
  "favicon_url": null
}
PUT /branding Modifier couleurs, logo et nom affiche
Auth requisebranding
curl -X PUT \
     -H "X-Token: TOKEN" -H "Content-Type: application/json" \
     -d '{"couleur_primaire": "#2C4A3E", "nom_affiche": "Ferme Bio Diallo"}' \
     https://api.lesgrandsdomainesdelaghem.com/branding

Health

GET /health Disponibilite de l'API et de la base de donnees
Sans auth
curl https://api.lesgrandsdomainesdelaghem.com/health
{ "db": "ok", "ts": "2026-04-01T08:00:00" }

Pret a integrer ?

Testez directement avec Swagger UI — aucune installation requise. Ou demandez votre cle API.