Aller au contenu principal

API Consumption (Consommation France)

Vue d'ensemble​

L'API Consumption de RTE fournit les données de consommation électrique à l'échelle nationale française.

Endpoint : /open_api/consumption/v1/short_term


Caractéristiques​

AspectValeur
Versionv1
AuthentificationOAuth2 Client Credentials (optionnel)
FormatJSON
Granularité30 minutes
HorizonJ-2 à J+2
Rate limitingVariable

Types de données​

L'API propose plusieurs types de consommation :

TypeDescriptionDisponibilité
REALISEDConsommation réalisée (temps réel)J-2 à J (actuel)
IDConsommation infraday (estimation jour même)J (actuel)
D-1Prévision J+1J+1
D-2Prévision J+2J+2

Format de requête​

Endpoint​

GET https://digital.iservices.rte-france.com/open_api/consumption/v1/short_term

Paramètres​

ParamètreTypeRequisDescription
start_datedatetime ISO 8601✅Date de début (timezone Paris)
end_datedatetime ISO 8601✅Date de fin (timezone Paris)
typestring❌Type de consommation (REALISED, ID, D-1, D-2)

Exemple​

curl -X GET \
'https://digital.iservices.rte-france.com/open_api/consumption/v1/short_term?start_date=2024-01-25T00:00:00+01:00&end_date=2024-01-26T23:59:59+01:00&type=REALISED' \
-H 'Authorization: Bearer YOUR_TOKEN'

Format de réponse​

Structure JSON​

{
"short_term": [
{
"start_date": "2024-01-25T00:00:00+01:00",
"end_date": "2024-01-25T00:30:00+01:00",
"updated_date": "2024-01-25T00:15:00+01:00",
"type": "REALISED",
"values": [
{
"start_date": "2024-01-25T00:00:00+01:00",
"end_date": "2024-01-25T00:30:00+01:00",
"updated_date": "2024-01-25T00:15:00+01:00",
"value": 68500
}
]
}
]
}

Champs​

ChampTypeDescription
start_datedatetimeDébut de la période
end_datedatetimeFin de la période
updated_datedatetimeDate de mise à jour de la donnée
typestringType de consommation (REALISED, ID, D-1, D-2)
valuenumberConsommation en MW (mégawatts)

Utilisation dans MyElectricalData​

Page France​

La page France (/france) affiche la consommation nationale en temps réel et les prévisions.

┌─────────────────────────────────────────────────────────────┐
│ Consommation France │
├─────────────────────────────────────────────────────────────┤
│ │
│ Temps réel (REALISED) │
│ ━━━━━━━━━━━━━━━━━━━━ │
│ 68 500 MW │
│ │
│ Prévisions J+1 (D-1) │
│ ━━━━━━━━━━━━━━━━━━━━ │
│ [Graphique courbe de charge] │
│ │
└─────────────────────────────────────────────────────────────┘

Backend​

# apps/api/src/services/rte.py

async def fetch_consumption_france(
self,
consumption_type: str | None = None,
start_date: datetime | None = None,
end_date: datetime | None = None,
) -> dict[str, Any]:
"""
Fetch French national consumption from RTE API

Args:
consumption_type: Optional type (REALISED, ID, D-1, D-2)
start_date: Start datetime (Paris timezone)
end_date: End datetime (Paris timezone)

Returns:
API response with consumption data
"""

Cache en base de données​

Les données sont stockées dans la table consumption_france :

class ConsumptionFrance(Base):
"""French national consumption data from RTE"""

id = Column(UUID, primary_key=True)
start_date = Column(DateTime, nullable=False)
end_date = Column(DateTime, nullable=False)
type = Column(String, nullable=False) # REALISED, ID, D-1, D-2
value = Column(Float, nullable=False) # MW
updated_date = Column(DateTime)

Mise à jour automatique​

Un job planifié met à jour les données toutes les 30 minutes :

# Mise à jour consommation France
scheduler.add_job(
rte_service.update_consumption_france_cache,
trigger=IntervalTrigger(minutes=30),
)

Cas d'usage​

1. Afficher la consommation actuelle​

# Récupérer la consommation temps réel
consumption = await rte_service.fetch_consumption_france(
consumption_type="REALISED",
start_date=now - timedelta(hours=1),
end_date=now
)

2. Prévisions J+1​

# Récupérer les prévisions pour demain
forecasts = await rte_service.fetch_consumption_france(
consumption_type="D-1",
start_date=tomorrow_start,
end_date=tomorrow_end
)

3. Historique​

# Récupérer l'historique sur 2 jours
history = await rte_service.fetch_consumption_france(
consumption_type="REALISED",
start_date=now - timedelta(days=2),
end_date=now
)

Codes d'erreur​

CodeDescriptionSolution
401Token invalide ou expiréRégénérer le token OAuth2
400Paramètres invalidesVérifier format dates et type
404Données non disponiblesPériode hors limites (J-2 à J+2)
429Rate limit atteintAttendre avant nouvelle requête
500Erreur serveur RTERéessayer plus tard

Limites​

Période disponible​

  • Historique : J-2 maximum
  • Prévisions : J+2 maximum
  • Granularité : 30 minutes fixe

Données manquantes​

Certaines périodes peuvent avoir des valeurs manquantes (null) :

  • Maintenance système
  • Problème de collecte
  • Période non encore atteinte

Exemple d'intégration​

Frontend (React)​

// apps/web/src/api/consumption-france.ts

export const getConsumptionFrance = async (
type?: 'REALISED' | 'ID' | 'D-1' | 'D-2'
): Promise<ConsumptionData[]> => {
const { data } = await apiClient.get('/consumption-france', {
params: { type }
});
return data;
};

Affichage​

// apps/web/src/pages/France.tsx

const France = () => {
const { data: consumption } = useQuery({
queryKey: ['consumption-france', 'REALISED'],
queryFn: () => getConsumptionFrance('REALISED')
});

return (
<div>
<h1>Consommation France</h1>
<ConsumptionChart data={consumption} />
</div>
);
};

Ressources officielles​

RessourceLien
Documentation RTERTE Data Portal
API SandboxSwagger Consumption
Supportsupport@rte-france.com