SWITCHGRID
DOCS

Enedis

Une fois qu'un Ask est signé, commandez des données Enedis via POST/integration/enedis/order. Une commande (order) contient une liste de requêtes (requests), chacune ciblant un ou plusieurs PRM pour un type de données donné.

Passer une commande

{
  "requests": [
    {
      "type": "R63",
      "direction": "SOUTIRAGE",
      "prms": ["00046372994792", "00052989142094"]
    },
    {
      "type": "C68_ASYNC",
      "direction": "CONSUMPTION",
      "prms": ["00046372994792", "00052989142094"]
    }
  ]
}

Types de requêtes disponibles

Le champ type de chaque requête détermine la donnée Enedis récupérée. Les types _SYNC sont synchrones (réponse en quelques secondes, 1 PRM maximum par requête) ; les autres sont asynchrones (la donnée arrive après quelques minutes, jusqu'à 500 PRM par requête — 10 000 pour une C68_ASYNC). Une requête dépassant sa limite est rejetée avec une erreur 400 Bad Request : répartissez les PRM sur plusieurs requêtes.

CodeDescriptionPRM maxArguments optionnelsLatence médiane
C68Données techniques et contractuelles (puissance souscrite, heures creuses / heures pleines…)1—< 10 s
C68_ASYNCDonnées techniques et contractuelles, plus complet que C68 et supporte aussi les points en injection10 000direction1–2 min
R63Courbe de charge (par défaut les 24 derniers mois jusqu'à la veille, au pas restitué par Enedis)500direction, since / until, enedisRetryAfterLoadcurveActivation~2–3 min
R63_SYNCCourbe de charge, 7 jours ou moins (par défaut les 7 derniers jours jusqu'à la veille)1direction, since / until, enedisRetryAfterLoadcurveActivation< 10 s
R64Index quotidiens500direction, since / until~2–3 min
R64_SYNCIndex quotidiens1direction, since / until< 10 s
R65Énergies quotidiennes500direction, since / until~2–3 min
R65_SYNCÉnergies quotidiennes (en général obtenues par différence d'index)1direction, since / until< 10 s
R66Puissances maximales quotidiennes500direction, since / until~2–3 min
R66_SYNCPuissances maximales quotidiennes1direction, since / until< 10 s
R67Mesures facturantes500direction, since / until~2–3 min
LOADCURVE(déprécié) Courbe de charge — utilisez plutôt R63 ou R63_SYNC500direction, since / until, enedisRetryAfterLoadcurveActivation~2–3 min

Toutes les requêtes prennent les prms (obligatoire). Quelques précisions sur les arguments optionnels :

  • direction — pour C68_ASYNC et LOADCURVE, les valeurs sont CONSUMPTION (défaut) ou INJECTION. Pour les types R6*, les valeurs sont SOUTIRAGE (défaut) ou INJECTION.

  • since / until — par défaut en UTC si aucun fuseau horaire n'est précisé. Plusieurs formes sont acceptées :

    2024-12-10
    2024-12-10T00:00:00
    2024-12-10T12:00:00Z
    2024-12-10T00:00:00+01:00
    2024-12-10T00:00:00[Europe/Paris]
    2024-12-10T00:00:00[CET]
    

    Il est conseillé d'utiliser le format 2024-12-10T00:00:00[Europe/Paris], car Enedis délivre les données de minuit à minuit en heure locale. Les données de la veille s'arrêtent à minuit heure locale.

  • enedisRetryAfterLoadcurveActivation — voir Erreurs et stratégie de retry ci-dessous.

Réponse

L'API répond avec la commande créée. Chaque requête a son propre status, qui évolue au fur et à mesure de la récupération des données.

{
  "id": "47608cf7-1396-47fa-ada0-087de727b291",
  "status": "PENDING_REQUESTS",
  "requests": [
    {
      "type": "R63",
      "status": "PENDING",
      "orderedAt": "2024-11-13T13:46:38.385Z",
      "completedAt": null,
      "errorMessage": null
    },
    {
      "type": "C68_ASYNC",
      "status": "PENDING",
      "orderedAt": "2024-11-13T13:46:38.392Z",
      "completedAt": null,
      "errorMessage": null
    }
  ]
}

Consulter une commande

Muni d'un orderId, vous pouvez connaître l'avancement de la/des requête(s) de données via GET/integration/enedis/order/{orderId}.

Enedis met généralement 2 à 5 minutes à répondre. Lorsque les données sont prêtes, la réponse renvoie, par requête, un ou plusieurs lien(s) vers les fichiers bruts renvoyés par Enedis dans dataUrl ou dataUrls :

{
  "id": "904ae72d-fd16-446c-914f-fd5ff3eca689",
  "status": "COMPLETED",
  "requests": [
    {
      "type": "C68_ASYNC",
      "status": "SUCCESS",
      "orderedAt": "2024-01-01T10:20:30Z",
      "completedAt": "2024-01-01T10:20:32Z",
      "dataUrl": "https://...",
      "errorMessage": null
    },
    {
      "type": "R63",
      "status": "SUCCESS",
      "orderedAt": "2024-01-01T10:20:30Z",
      "completedAt": "2024-01-01T10:20:32Z",
      "dataUrl": "https://...",
      "errorMessage": null
    }
  ]
}
💡

Les données d'une requête peuvent arriver en plusieurs fichiers : Enedis répartit les grosses requêtes, et une même requête peut aussi être servie en partie depuis nos propres données et en partie par Enedis. Dans ce cas, dataUrl est absent et remplacé par dataUrls, un tableau d'URLs signées vers chacun des fichiers — téléchargez-les tous.

Lisez toujours dataUrls. Le nombre de fichiers ne dépend pas du type de requête : la même requête quotidienne peut revenir en un fichier un jour et en deux le lendemain. Nous migrons progressivement tous les projets vers une réponse où dataUrls est toujours présent (avec un seul élément quand il n'y a qu'un fichier, [] tant que les données ne sont pas disponibles) et où dataUrl n'est plus renvoyé. Une intégration qui lit dataUrls s'il est présent, et dataUrl sinon, fonctionne avec les deux formes.

États d'une commande (order.status)

StatutSignification
CREATEDCommande enregistrée, traitement non encore démarré
PENDING_REQUESTSRécupération des données en cours
COMPLETEDToutes les requêtes sont terminées (certaines ont pu échouer)

Le détail de chaque requête (requests[].status) indique lesquelles ont réussi ou échoué.

États d'une requête (requests[].status)

NOT_STARTED, QUEUED, PENDING, puis SUCCESS ou FAILED. En cas d'échec, le champ errorMessage décrit l'erreur.

Détail par point de livraison (summaryPerContract)

Une requête peut porter plusieurs PRM, et réussir pour certains et pas pour d'autres. Chaque requête de la commande détaille donc son résultat point par point dans requests[].summaryPerContract[] : une entrée par PRM, ajoutée au fur et à mesure qu'Enedis répond. Le tableau peut être incomplet tant que la requête est PENDING, et absent tant que rien n'est connu.

La forme des entrées dépend du type de requête, et se reconnaît à _tag, puis à _status.

Courbes de charge (LOADCURVE, R63, R63_SYNC) : LoadcurveRequestContractSummary

La requête porte aussi requestedTimeRange, la période effectivement demandée à Enedis (intervalle ISO 8601 début/fin), à laquelle se rapporte la couverture.

_statusChampsSignification
finalprm, timeRangeCoverageRatio, holes, errorMessageRésultat définitif pour ce point. timeRangeCoverageRatio (entre 0 et 1) est la part de requestedTimeRange couverte par les données ; holes liste les intervalles non couverts.
pendingprm, messageEnedis active la collecte de la courbe de charge de ce point (voir enedisRetryAfterLoadcurveActivation) : cela peut prendre plusieurs heures.
erasedprm, erasedAt, reasonFr, reasonEnDonnées effacées suite à une demande RGPD (voir Données effacées).

Un point pour lequel Enedis n'a rien renvoyé est final avec timeRangeCoverageRatio: 0, toute la période dans holes et le motif d'Enedis dans errorMessage. Un point couvert en partie a un errorMessage à null : ce sont holes et timeRangeCoverageRatio qui disent ce qui manque.

{
  "type": "R63",
  "status": "SUCCESS",
  "requestedTimeRange": "2026-09-01T00:00:00.000+02:00/2026-10-01T00:00:00.000+02:00",
  "summaryPerContract": [
    {
      "_tag": "LoadcurveRequestContractSummary",
      "_status": "final",
      "prm": "12345678901234",
      "timeRangeCoverageRatio": 0.966667,
      "holes": ["2026-09-12T00:00:00.000+02:00/2026-09-13T00:00:00.000+02:00"],
      "errorMessage": null
    },
    {
      "_tag": "LoadcurveRequestContractSummary",
      "_status": "final",
      "prm": "98765432109876",
      "timeRangeCoverageRatio": 0,
      "holes": ["2026-09-01T00:00:00.000+02:00/2026-10-01T00:00:00.000+02:00"],
      "errorMessage": "La demande ne peut aboutir : …"
    }
  ]
}

Autres requêtes (C68, C68_ASYNC, R64 à R67 et leurs _SYNC) : RawFileContractSummary

_statusChampsSignification
finalprm, fileUrl, errorMessageRésultat pour ce point. En cas de succès, errorMessage est null, et pour R64 à R67, fileUrl est une URL signée vers le fichier Enedis qui contient ses données (il peut contenir d'autres points). En cas d'échec, fileUrl est null et errorMessage porte le motif d'Enedis.
erasedprm, erasedAt, reasonFr, reasonEn, fileUrl: nullDonnées effacées suite à une demande RGPD.

Pour C68 et C68_ASYNC, fileUrl est toujours null : les données d'un point sont réparties dans les fichiers de la requête, à lire via dataUrl / dataUrls.

💡

Comme dataUrl et dataUrls, les fileUrl sont des URLs signées, valables 15 minutes : relisez la commande pour en obtenir de nouvelles plutôt que de les conserver. Et prévoyez qu'un _status inconnu de votre code puisse apparaître : ignorez l'entrée plutôt que de rejeter toute la réponse.

Données effacées (RGPD)

Quand le titulaire d'un point a obtenu l'effacement de ses données (voir Effacement des données), ses données ne sont plus servies, et l'API le dit explicitement. Les autres points d'une requête groupée sont servis comme avant.

GET/integration/enedis/order/{orderId} — dans summaryPerContract, l'entrée du point porte _status: "erased", la date et la raison :

{
  "_tag": "LoadcurveRequestContractSummary",
  "_status": "erased",
  "prm": "12345678901234",
  "erasedAt": "2026-10-14T09:12:00.000Z",
  "reasonFr": "Données effacées le 14/10/2026 suite à une demande d'effacement RGPD : le consentement a été révoqué.",
  "reasonEn": "Data erased on 2026-10-14 following a GDPR erasure request: the consent was revoked."
}

Les entrées RawFileContractSummary ont désormais elles aussi un _status : final, ou erased (avec fileUrl: null). Les fichiers bruts d'une requête groupée sont réécrits sans le point effacé ; pendant cette réécriture — quelques minutes — la requête n'a pas de dataUrl (null, ou dataUrls: []). Si tous les points d'une requête sont effacés, son errorMessage le dit.

GET/integration/enedis/request/{requestId}/data — si tous les points demandés sont effacés (la requête entière, ou ceux de prm), la réponse est une erreur 410 DataErased, qui liste les points dans erasedPrms (prm, erasedAt, reasonFr, reasonEn). Sinon, les points effacés sont absents des données, et listés, séparés par des virgules, dans l'en-tête Switchgrid-Gdpr-Erased-Prms — quel que soit le format (JSON, CSV, XLSX).

Erreurs et stratégie de retry

En cas d'échec d'une requête, requests[].status vaut FAILED et errorMessage détaille la cause :

{
  "id": "...",
  "status": "SOME_REQUESTS_FAILED",
  "requests": [
    {
      "type": "R63",
      "status": "FAILED",
      "orderedAt": "2024-07-29T07:52:19.903Z",
      "completedAt": "2024-07-29T07:53:08.629Z",
      "dataUrl": null,
      "errorMessage": "La demande ne peut aboutir : aucun service souscrit de courbe de charge n'est présent pour la période demandée"
    }
  ]
}

Cette section décrit ce que signifient ces erreurs, et quand il est utile — ou inutile — de réessayer.

⚠️

Chaque tentative est un appel réel au SI d'Enedis. Réessayer une erreur fonctionnelle (point résilié, point inexistant, droits insuffisants…) ne produira jamais de donnée : cela consomme du quota, ralentit vos autres requêtes et nous expose collectivement à des remontées d'Enedis. La règle générale est donc : une erreur fonctionnelle ne se réessaie pas.

Où lire l'erreur

  • Sur GET/integration/enedis/order/{orderId}, chaque requête a son status. En cas d'échec, status vaut FAILED et errorMessage porte la cause.

  • Quand l'erreur vient d'Enedis, errorMessage commence par le code Enedis entre crochets : [SGT589]: La demande ne peut pas aboutir car le compteur n'est actuellement pas téléopérable.. Le code est donc directement exploitable par votre code :

    const code = request.errorMessage?.match(/^\[([A-Z0-9]+)\]/)?.[1] ?? null;
    
  • Pour les requêtes asynchrones multi-PRM, une requête peut réussir pour certains PRM et échouer pour d'autres. Le détail par PRM se trouve dans requests[].summaryPerContract[] (voir Détail par point). Dans ce cas, le motif renvoyé par Enedis est un texte libre, sans code SGT… (voir Erreurs sans code).

  • Le webhook order.request_failed vous notifie de chaque requête en échec ; il ne contient que les identifiants, l'errorMessage se lit sur la commande.

Les cinq classes d'erreurs

ClasseSignificationConduite à tenir
A. État du point / contratLe point ne peut plus (ou pas) fournir de donnéesAucun retry. Arrêter les demandes sur ce PDL, refaire un parcours complet si besoin
B. Paramètres invalidesLa demande est mal formée (période, sens, type de mesure)Corriger la requête puis rejouer une fois. Un retry à l'identique échouera toujours
C. Droits / consentementLe consentement ou l'habilitation ne couvre pas la demandeAucun retry. Refaire signer un Ask
D. État du compteurTransitoire, mais peut durer très longtemps (compteur injoignable, pas de mesures)Au plus 1 tentative par jour, et au-delà d'une semaine espacer fortement (hebdomadaire, puis mensuel)
E. Technique / quotaIncident SI Enedis, quota journalier atteintSwitchgrid réessaie déjà automatiquement. Côté client : 1 tentative après 15 min, sinon le lendemain

Catalogue des codes Enedis

Les codes ci-dessous sont ceux que nous voyons réellement passer sur les requêtes de données. Le libellé est celui d'Enedis (il peut varier à la marge).

CodeLibellé EnedisCe que ça veut direClasseRetry ?
SGT4M1Demande non recevable : le point est résilié.Le contrat de fourniture du PDL a été résilié. Enedis refuse alors toute demande de mesures sur ce point, y compris sur des périodes passées.ANon
SGT401Demande non recevable : point inexistant.Le PRM n'existe pas (ou plus) dans le SI d'Enedis.ANon
SGT589La demande ne peut pas aboutir car le compteur n'est actuellement pas téléopérable.Le compteur n'est pas joignable à distance. Transitoire en théorie, mais cela peut durer très longtemps (voir ci-dessous).D1×/jour max, puis espacer
SGT4G3Aucune mesure trouvée sur ce point.Enedis n'a rien à restituer sur la période demandée.DSeulement avec une autre période
SGT476La demande n'est pas compatible avec le dispositif de comptage.Le compteur ne sait pas produire cette donnée (typiquement courbe de charge en injection).ANon
SGT583La demande ne peut pas aboutir, le sens de la mesure ne correspond pas.direction demandée incohérente avec le point (soutirage / injection).BAprès correction du direction
SGT4L8La durée demandée n'est pas compatible avec le type de mesure demandé.Période trop longue (ou trop courte) pour ce type de requête.BAprès correction de since / until
SGT509La date de fin doit être renseignée et la durée demandée … ne doit pas excéder 3 ans.Fenêtre demandée > 3 ans.BAprès correction de since / until
SGT4K4La date de début doit être antérieure à la date de fin.since / until inversés.BAprès correction
SGT211La demande ne peut aboutir : aucun service souscrit ACCES à la donnée pour la période demandée.Pas de service d'accès actif chez Enedis sur la période.CNon
SGT566Ce service nécessite l'accord du client.Le cadre d'accès ne couvre pas la demande.CNon
SGT4G2Le demandeur n'est pas éligible à la consultation des données de mesures sur le point.Habilitation insuffisante sur ce point.CNon
SGT720(libellé mentionnant le quota quotidien)Quota journalier Enedis, distinct par type de donnée, atteint côté Switchgrid.ELe lendemain
SGT500Une erreur technique est survenue.Incident technique côté Enedis.ESwitchgrid réessaie déjà (3 fois)
SGT483L'utilisateur ne possède pas les habilitations nécessaires pour effectuer l'opération souhaitée.Vu lors d'incidents d'habilitation côté Enedis — transitoire en pratique.ENous contacter si cela persiste
💡

SGT589 — combien de temps ? « Actuellement pas téléopérable » est un état transitoire par nature, mais il peut durer très longtemps : quand le défaut de communication nécessite l'envoi d'une équipe sur le compteur, l'interruption se compte en mois. Enedis considère par ailleurs être déjà au courant de ces défauts de communication, et nous demande de ne pas les solliciter avant 6 mois d'interruption continue sur un point : un signalement plus tôt n'accélère rien. Concrètement : réessayer plusieurs fois dans la journée ne sert à rien ; une tentative par jour est un maximum, et passé une semaine mieux vaut espacer fortement (hebdomadaire, puis mensuel) que maintenir une boucle quotidienne. Si l'interruption dépasse 6 mois, signalez-nous le PDL : c'est à partir de là qu'un signalement à Enedis devient recevable.

Erreurs sans code (requêtes asynchrones)

Pour les requêtes asynchrones (R63, R64, R65, R66, R67, C68_ASYNC), Enedis renvoie d'abord un compte-rendu par PRM. Les PRM refusés portent un motif en texte libre, restitué tel quel dans requests[].summaryPerContract[].errorMessage. Le plus fréquent :

La demande ne peut aboutir : aucun service souscrit de courbe de charge n'est présent pour la période demandée

⚠️

Depuis le 10 juin 2026, ce motif n'existe plus. Enedis l'a remplacé par deux motifs génériques, qui ne disent plus pourquoi la demande échoue :

Absence de données de mesure

L'état contractuel du point ne permet pas de traiter cette demande

Un point dont la collecte de courbe de charge n'est pas souscrite reçoit désormais l'un de ces deux motifs, au milieu des points qui n'ont réellement aucune mesure sur la période. Voir ci-dessous comment nous levons l'ambiguïté.

Courbe de charge non disponible. Ce motif signifie en général que la courbe de charge n'a jamais été collectée pour ce compteur : sur un compteur Linky, Enedis ne publie la courbe que pour les périodes où la collecte (service CCDC) était souscrite.

Quand un de ces motifs tombe sur une demande de courbe de charge, Switchgrid interroge Enedis pour savoir si la collecte est souscrite sur le point :

  • elle l'est → le motif veut bien dire ce qu'il dit, il n'y a pas de mesure sur la période. Le motif d'Enedis vous est restitué tel quel ;

  • elle ne l'est pas → nous demandons immédiatement l'activation de la collecte quotidienne à Enedis, et l'échec vous est restitué avec un message explicite plutôt qu'avec le motif générique :

    La collecte de courbe de charge n'était pas souscrite sur ce point : aucune donnée n'a donc été enregistrée pour la période demandée. L'activation de la collecte vient d'être demandée à Enedis ; relancez une demande identique dans quelques heures.

    Le reasonCode associé est ENEDIS_CCDC_AUCUN_SERVICE_SOUSCRIT — le même qu'avant juin 2026, la signification n'ayant pas changé.

Recréez une commande identique quelques heures plus tard ou le lendemain ; vous pourrez alors récolter jusqu'à 3-4 mois de données historiques stockées dans le compteur Linky.

👉

Pour automatiser cela, ajoutez enedisRetryAfterLoadcurveActivation: true à la requête de courbe de charge. Switchgrid réessaiera automatiquement la requête après l'activation, sans que vous ayez à repasser commande. La requête reste alors en statut PENDING le temps qu'Enedis active la collecte et nous remonte les données depuis le compteur — comptez une heure environ, parfois une dizaine, contre moins de deux minutes pour un échec immédiat.

{
  "requests": [
    {
      "type": "R63",
      "direction": "SOUTIRAGE",
      "prms": ["00045855908792"],
      "enedisRetryAfterLoadcurveActivation": true
    }
  ]
}

Nous pouvons aussi activer ce comportement par défaut sur votre workspace : demandez-le nous. Une requête qui envoie explicitement le champ garde toujours la main, y compris avec enedisRetryAfterLoadcurveActivation: false pour rester sur l'échec immédiat sur une commande donnée.

L'activation de la collecte, elle, est déclenchée dans tous les cas : même sans l'option, un point non souscrit est activé pour vos prochaines commandes.

Erreurs renvoyées par Switchgrid

Certaines demandes sont refusées avant tout appel à Enedis. Elles se reconnaissent à l'absence de code SGT… :

MessageCauseConduite à tenir
Duplicate request: an identical request (…) is already in progress…Une requête strictement identique de votre projet est déjà en coursAttendre son résultat — ne pas relancer
Consent … has been revoked; no new order can be created for it.Le consentement a été révoquéRefaire signer un Ask
410 DataErased (erasedPrms)Données effacées suite à une demande RGPDNe pas relancer : elles n'existent plus
Quota exceeded. Please try again tomorrow.Quota quotidien de PRM de votre projet atteintLe lendemain, ou nous contacter
Sync requests can only take exactly one PRMUne requête _SYNC porte plusieurs PRMUne requête _SYNC par PRM
400 Bad Request sur une requête de plus de 500 PRMLimite de 500 PRM par requête asynchrone (10 000 pour C68_ASYNC)Découper en plusieurs requêtes

Stratégie de retry recommandée

  1. Lire le code avant de décider. Aucun retry n'est justifié sans avoir regardé le code d'erreur : les classes A, B et C ne deviendront jamais des succès en réessayant.
  2. Plafonner le nombre de tentatives à 3, tous cas confondus, et espacer : 15 min, 1 h, puis le lendemain. Une boucle de 10 ou 20 tentatives ne récupère aucune donnée supplémentaire.
  3. Ne pas piloter les retries depuis le front. Un utilisateur qui rafraîchit sa page ne doit pas déclencher une nouvelle commande. Faites porter la décision par un job côté serveur, avec l'état de la commande en base.
  4. Écouter les webhooks plutôt que de repasser une commande. Une commande PENDING finit toujours par se terminer (succès ou échec) ; la re-commander en parallèle double la charge sans accélérer quoi que ce soit.
  5. Mémoriser les échecs définitifs par PDL. Un SGT4M1 ou un SGT401 devrait sortir le PDL de votre boucle de rafraîchissement, définitivement.

Anticiper les échecs

Deux des erreurs les plus fréquentes sont visibles avant de commander des données de consommation, dans la réponse d'une requête C68_ASYNC (données techniques et contractuelles) :

Champ (dans le fichier C68_ASYNC)ValeurConséquence
situationsContractuelles[].informationsContractuelles.etatContractuel≠ SERVCContrat non en service (résilié) → les requêtes de mesures échoueront en SGT4M1
situationComptage.dispositifComptage.teleoperablefalseCompteur non téléopérable → SGT589 sur les requêtes de mesures
situationAlimentation.etatAlimentation≠ ALIMPoint non alimenté → pas de mesure à attendre
👉

Un C68_ASYNC en tête de parcours (et, pour un suivi au long cours, de temps en temps) permet donc de sortir les points morts de votre boucle avant de dépenser des requêtes de mesures dessus. Attention toutefois : teleoperable: false signale un compteur structurellement non télérelevé ; un compteur Linky temporairement injoignable peut rester à true et échouer quand même en SGT589. Le champ est un bon filtre négatif, pas une garantie de succès.

Ce que Switchgrid fait déjà de son côté

  • Retry automatique des erreurs techniques : un SGT500 (ou une erreur réseau) est rejoué jusqu'à 3 fois avant de vous être remonté.
  • Aucun retry automatique sur les erreurs fonctionnelles : elles vous sont remontées telles quelles, immédiatement.
  • Réutilisation des données déjà récoltées : les requêtes R64_SYNC / R65_SYNC peuvent être servies depuis nos propres données quand elles couvrent la période demandée, sans appel à Enedis. Cette réutilisation ne s'applique pas aux requêtes asynchrones, qui sont toujours transmises à Enedis.
  • Garde-fou anti-doublon : sur demande, nous pouvons activer sur votre projet le rejet des requêtes strictement identiques à une requête déjà en cours (fenêtre de 2 h).
  • Activation de la courbe de charge puis rejeu de la demande, quand la collecte n'était pas encore souscrite.
  • Suivi des points en défaut : nous suivons les SGT589, SGT476 et SGT583 récurrents. Pour les défauts de communication (SGT589), Enedis considère le problème déjà connu de ses services et n'accepte un signalement qu'au-delà de 6 mois d'interruption continue.

Récupérer les données de courbe de charge à pas constant

Pour les courbes de charge (R63, R63_SYNC, LOADCURVE), GET/integration/enedis/request/{requestId}/data restitue les données mises à un pas de temps constant, au format json (défaut), csv ou xlsx. Le requestId correspond à l'id de la requête dans la commande.

Le paramètre period contrôle le pas de temps (défaut 1h). Les paramètres since / until permettent de borner la période, et prm de filtrer sur certains PRM.

Format CSV

Les données sont en heure UTC, en « pas commençant » (la valeur correspond à l'intervalle qui démarre à startDate).

startDate,powerInWatts
2024-12-15T23:00:00.000Z,321
2024-12-15T23:10:00.000Z,294

Format JSON

{
  "period": "PT600S",
  "startsAt": "2024-12-15T23:00:00.000Z",
  "endsAt": "2024-12-16T23:00:00.000Z",
  "values": [321, 294]
}

Format brut Enedis

Pour les requêtes de type R6*, les données restent disponibles aux formats retournés par Enedis : téléchargez le(s) fichier(s) référencé(s) par dataUrl / dataUrls dans la réponse de la commande.

Prms de test pour Enedis

Les PRM de test d'Enedis, la façon de provoquer un contrat NOT_VALID avec le header switchgrid-test-env: true, puis de rejouer le dépôt de justificatif, sont décrits dans le guide de consentement : Tester la création d'un Ask.

SWITCHGRID
© 2024 - 2026 Switchgrid