Sobry
Parce que chaque heure compte
API publique

Prix de l'électricité: France

v1.0 EPEX SPOT day-ahead FR · CET Sans authentification 100 req/min
⚠️

Approximation du prix client: pas le tarif exact facturé

Sans paramètre, l'API retourne le spot EPEX day-ahead brut (en €/MWh). Quand le param turpe est fourni, la réponse est enrichie avec un calcul HT/TTC en €/kWh incluant : spot, accise (ex-TICFE), TURPE acheminement variable, marge d'offre Sobry, CEE + capacité, et TVA.

Approximations dans le calcul :

  • Les plages Heures Pleines / Heures Creuses TURPE sont calculées avec un défaut HP 6h–22h / HC 22h–6h heure Paris, les plages réelles dépendent du compteur (PRM)
  • Saison haute TURPE : novembre → mars

Non intégré (dépend du contrat PRM) :

  • Abonnement mensuel (part fixe TURPE + Sobry) selon la puissance kVA
  • CTA: 15 % de l'abonnement TURPE HT, donc fixe mensuel

Pour le prix exact applicable à un PRM précis, contactez Sobry : support@sobry.co.

Sommaire

Présentation

L'API Sobry Prix expose les prix day-ahead EPEX SPOT pour la France, en granularité 15 min, horaire ou journalière, avec statistiques agrégées et historique jusqu'à 90 jours. Sur demande (param turpe), elle calcule en plus le prix HT/TTC en €/kWh avec accise, TURPE acheminement, marge d'offre Sobry, CEE + capacité, et TVA.

Cas d'usage typiques :

Base URL
https://api.sobry.co
HTTPS uniquement

Caractéristiques

Format
JSON
Authentification
Aucune (public)
Rate limit
100 req / min
Timezone défaut
CET (Europe/Paris)
Granularités
quarter_hourly · hourly · daily
Source de prix
EPEX SPOT · France
Unité spot
€/MWh
Unité pricing
€/kWh (HT et TTC)
Plage historique max
90 jours par requête

Construction du prix HT / TTC

Le calcul HT s'active dès que le paramètre turpe est fourni :

price_ht_eur_kwh = spot_price_eur_kwh
                   + turpe_eur_kwh     // TURPE[segment][turpe][HPH/HCH/HPB/HCB]
                   + accise_eur_kwh    // pro 0,02658 · particulier 0,03085
                   + offer_eur_kwh     // standard 0 · soflex 0,010 · socap 0,015
                   + cee_capa_eur_kwh  // 0,010 €/kWh (CEE 0,006 + capa 0,003 arrondi)

price_ttc_eur_kwh = price_ht_eur_kwh × (1 + TVA 20%)

Pour C4, profil est forcé à pro et display à HT (la TVA ne s'applique pas).

TURPE acheminement variable C5 (c€/kWh HT, valeurs au 01/01/2026)

OptionHPHHCHHPBHCB
CU4,844,844,844,84
CU47,493,971,661,16
MUDT4,943,504,943,50
LU1,251,251,251,25
MU47,003,731,611,11

TURPE acheminement variable C4 (c€/kWh HT)

OptionHPHHCHHPBHCB
CU6,914,212,131,52
LU5,693,472,011,49

Plages : HPH/HCH (saison haute, nov–mars) · HPB/HCB (saison basse, avr–oct). Plage horaire par défaut : HP 6h–22h / HC 22h–6h heure Paris.

GET /v1/prices/tomorrow spot · pricing optionnel

Retourne les prix day-ahead pour demain (J+1) ainsi que les statistiques agrégées. Les prix sont publiés par EPEX SPOT vers 13h CET ; avant cela, l'API renvoie un 404.

Sans param turpe → spot brut. Avec turpe → enrichi avec calcul HT/TTC en €/kWh.

Paramètres (tous optionnels)

ParamètreDéfautDescription
segment C5 Segment tarifaire, C5 (BT ≤ 36 kVA) · C4 (BT > 36 kVA).
turpe - Option TURPE acheminement. Active le calcul HT/TTC.
C5 : CU · CU4 · MUDT · LU · MU4
C4 : CU · LU
profil particulier Profil client (détermine l'accise), particulier (0,03085 €/kWh) · pro (0,02658 €/kWh). Forcé à pro pour C4.
display TTC Mode d'affichage, HT · TTC (avec TVA 20%). Forcé à HT pour C4.
offre standard Offre Sobry, standard (+0) · soflex (+0,010 €/kWh) · socap (+0,015 €/kWh).

Exemples

# Spot brut
curl https://api.sobry.co/v1/prices/tomorrow

# Pricing complet C5 / particulier / TTC / SoFlex / CU4
curl "https://api.sobry.co/v1/prices/tomorrow?segment=C5&turpe=CU4&profil=particulier&display=TTC&offre=soflex"
const params = new URLSearchParams({
  segment: 'C5',
  turpe:   'CU4',
  profil:  'particulier',
  display: 'TTC',
  offre:   'soflex'
});

const res = await fetch(`https://api.sobry.co/v1/prices/tomorrow?${params}`);
const data = await res.json();

console.log(`Moyenne spot demain : ${data.statistics.average} €/MWh`);
if (data.pricing_metadata) {
  console.log(`Premier prix TTC : ${data.prices[0].price_ttc_eur_kwh} €/kWh`);
}
import requests

r = requests.get('https://api.sobry.co/v1/prices/tomorrow', params={
    'segment': 'C5',
    'turpe':   'CU4',
    'profil':  'particulier',
    'display': 'TTC',
    'offre':   'soflex',
})
data = r.json()

print(f"Moyenne spot demain : {data['statistics']['average']} €/MWh")
if 'pricing_metadata' in data:
    print(f"Premier prix TTC : {data['prices'][0]['price_ttc_eur_kwh']} €/kWh")

Réponse avec pricing activé

200 OK application/json
{
  "success": true,
  "date": "2026-05-19",
  "timezone": "Europe/Paris (CET)",
  "count": 96,
  "statistics": {
    "min":      32.50,
    "max":     108.30,
    "average":  65.20,
    "median":   63.10
  },
  "pricing_metadata": {
    "enabled": true,
    "segment": "C5",
    "turpe_option": "CU4",
    "profil": "particulier",
    "display": "TTC",
    "offre": "soflex",
    "tva_rate": 0.20,
    "accise_eur_kwh": 0.03085,
    "offer_adder_eur_kwh": 0.010,
    "cee_capa_eur_kwh": 0.010,
    "turpe_source": "table interne Sobry C5 (c€/kWh → €/kWh)",
    "formula_ht":  "spot_price_eur_kwh + turpe_eur_kwh + accise_eur_kwh + offer_eur_kwh + cee_capa_eur_kwh",
    "formula_ttc": "price_ht_eur_kwh × (1 + TVA 20%)",
    "units": { "spot_price": "€/MWh", "all_other_prices": "€/kWh" }
  },
  "prices": [
    {
      "timestamp": "2026-05-19T00:00:00+02:00",
      "spot_price":         45.32,
      "spot_price_eur_kwh": 0.04532,
      "turpe_eur_kwh":      0.0116,
      "accise_eur_kwh":     0.03085,
      "offer_eur_kwh":      0.010,
      "cee_capa_eur_kwh":   0.010,
      "price_ht_eur_kwh":   0.10777,
      "price_ttc_eur_kwh":  0.12932
    }
    // … 96 points en quarter_hourly
  ]
}
Essayer →
GET /v1/prices/historical spot brut · pas de pricing

Retourne les prix day-ahead pour une période passée (max 90 jours) en €/MWh, avec statistiques agrégées. Pas d'enrichissement pricing sur cet endpoint, utilisez /raw si vous avez besoin du calcul HT/TTC sur une plage de dates.

Paramètres

ParamètreTypeRequisDescription
start String REQUIS Date de début, format YYYY-MM-DD.
end String REQUIS Date de fin (exclusive), max 90 jours après start.
granularity String optionnel Défaut hourly: quarter_hourly · hourly · daily.
timezone String optionnel Timezone IANA, défaut CET.
provider String optionnel Fournisseur, défaut epex.

Exemples

curl "https://api.sobry.co/v1/prices/historical?start=2026-05-01&end=2026-05-08&granularity=hourly"
const params = new URLSearchParams({
  start: '2026-05-01',
  end:   '2026-05-08',
  granularity: 'hourly'
});

const res = await fetch(`https://api.sobry.co/v1/prices/historical?${params}`);
const data = await res.json();

console.log(`Moyenne sur ${data.period.days} jours : ${data.statistics.average} €/MWh`);
import requests

r = requests.get('https://api.sobry.co/v1/prices/historical', params={
    'start': '2026-05-01',
    'end':   '2026-05-08',
    'granularity': 'hourly',
})
data = r.json()

print(f"Moyenne sur {data['period']['days']} jours : {data['statistics']['average']} €/MWh")
Essayer →
GET /v1/prices/raw spot + pricing optionnel

Récupère les prix EPEX SPOT bruts pour une période. Mêmes params de pricing que /tomorrow : fournir turpe active le calcul HT/TTC enrichi sur chaque point.

Paramètres

ParamètreTypeRequisDescription
start String REQUIS Date de début, format YYYY-MM-DD.
end String REQUIS Date de fin (exclusive), format YYYY-MM-DD.
granularity String optionnel Défaut quarter_hourly.
timezone String optionnel Timezone IANA, défaut CET.
country String optionnel Code pays ISO, défaut FR.
provider String optionnel Fournisseur, défaut epex.
⤷ Mêmes params de pricing que /tomorrow : segment, turpe, profil, display, offre.

Exemples

# Spot brut sur une journée
curl "https://api.sobry.co/v1/prices/raw?start=2026-05-17&end=2026-05-18"

# Avec pricing complet (C4 / CU / SoCap)
curl "https://api.sobry.co/v1/prices/raw?start=2026-05-17&end=2026-05-18&segment=C4&turpe=CU&offre=socap"
const params = new URLSearchParams({
  start:   '2026-05-17',
  end:     '2026-05-18',
  segment: 'C4',
  turpe:   'CU',
  offre:   'socap'
});

const res = await fetch(`https://api.sobry.co/v1/prices/raw?${params}`);
const data = await res.json();

console.log(`${data.count} points reçus, offre = ${data.pricing_metadata.offre}`);
import requests

r = requests.get('https://api.sobry.co/v1/prices/raw', params={
    'start':   '2026-05-17',
    'end':     '2026-05-18',
    'segment': 'C4',
    'turpe':   'CU',
    'offre':   'socap',
})
data = r.json()

print(f"{data['count']} points reçus, offre = {data['pricing_metadata']['offre']}")
Essayer →

Codes d'erreur