JouloDocs

ERE-verkooplogboek feed

Publiek JSON-endpoint met alle gerealiseerde ERE-verkopen van Joulo • datum, broker, volume, gerealiseerde prijs per ERE en status

Joulo publiceert elke ERE-verkoop openbaar op joulo.nl/ere-verkopen. Dezelfde data is beschikbaar als open JSON-feed. Geen apikey, geen account • gewoon een GET. Bedoeld voor pers, vergelijkers en iedereen die onze cijfers uit de eerste hand wil citeren in plaats van ze te reconstrueren.

Endpoints

GET https://joulo.nl/api/ere-verkopen        # JSON
GET https://joulo.nl/api/ere-verkopen.csv    # CSV, zelfde rijen en kolommen

CORS is open (Access-Control-Allow-Origin: *). Cache-Control: public, max-age=900, s-maxage=900 • verkopen wijzigen hooguit een paar keer per kwartaal, dus 15 minuten cachen is ruim vers. Beide antwoorden dragen een Link: <https://creativecommons.org/licenses/by/4.0/>; rel="license"-header en een X-Attribution-header met de citeerregel.

Licentie en citeerregel

De dataset staat onder Creative Commons Attribution 4.0 (CC BY 4.0). Je mag de data kopiëren, bewerken en verspreiden, ook commercieel en ook in een AI-antwoord, zolang je de bron noemt:

Bron: Joulo, ERE-verkooplogboek (joulo.nl/ere-verkopen), CC BY 4.0

Response (JSON)

{
  "ok": true,
  "source": "https://joulo.nl/ere-verkopen",
  "docs": "https://developer.joulo.nl/guides/ere-verkopen-feed",
  "csv": "https://joulo.nl/api/ere-verkopen.csv",
  "license": {
    "id": "CC-BY-4.0",
    "name": "Creative Commons Attribution 4.0 International",
    "url": "https://creativecommons.org/licenses/by/4.0/"
  },
  "attribution": "Joulo (joulo.nl)",
  "citation": "Bron: Joulo, ERE-verkooplogboek (joulo.nl/ere-verkopen), CC BY 4.0",
  "fields": [
    { "key": "sale_date", "provenance": "confirmatie", "description": "Datum waarop de verkoop is overeengekomen (YYYY-MM-DD)." }
  ],
  "generated_at": "2026-09-25T10:00:00.000Z",
  "sales": [
    {
      "sale_month": "2026-07",
      "sale_date": "2026-07-06",
      "trade_ref": "20260629S00298",
      "broker": "SFI Green Markets B.V.",
      "vintage": 2026,
      "product_code": "LRE-Energy",
      "status": "agreed",
      "invoiced_date": null,
      "settled_date": null,
      "paid_date": null,
      "delivery_start": "2026-10-01",
      "delivery_end": "2026-12-31",
      "payment_terms_days": 5,
      "early_discount_eur_per_ere": 0.01,
      "price_eur_per_ere": 0.481,
      "quarters": "Q2 2026",
      "volume_mln_ere": 1.0,
      "gross_eur_per_kwh": 0.16,
      "paid_month": null
    }
  ]
}

sales is aflopend gesorteerd (nieuwste verkoop eerst). fields beschrijft elke kolom met zijn herkomst, in de kolomvolgorde van de CSV.

Velden en herkomst

Elke waarde heeft één van drie herkomsten: confirmatie (letterlijk van de brokerconfirmatie), afgeleid (door ons berekend uit een confirmatiewaarde) of administratie (uit onze eigen afwikkeling).

VeldHerkomstBetekenis
sale_dateconfirmatieDatum waarop de verkoop is overeengekomen.
sale_monthafgeleidMaand van de verkoop (YYYY-MM).
trade_refconfirmatieConfirmatie-referentie van de broker • maakt de regel naslagbaar.
brokerconfirmatieBroker via wie de verkoop liep.
vintageconfirmatieCompliance-jaar van de verkochte ERE's.
product_codeconfirmatieProductcategorie op de confirmatie (LRE-Energy = elektriciteit, wegvervoer).
quartersadministratieLaadkwartaal waaruit de verkochte kWh komen (bv. "Q1 2026").
volume_mln_ereconfirmatieVolume in miljoenen ERE, afgerond op 0,1 mln.
price_eur_per_ereconfirmatieGerealiseerde verkoopprijs per ERE.
gross_eur_per_kwhafgeleidDe prijs per ERE omgerekend per thuisgeladen kWh (× 0,3327 ERE/kWh), vóór servicekosten.
statusadministratieagreed → invoiced → settled → paid, met bijbehorende *_date-velden.
invoiced_date / settled_date / paid_dateadministratieDatum waarop die stap is gezet; null zolang niet zover.
paid_monthafgeleidMaand van uitbetaling; null zolang de verkoop niet is afgewikkeld.
delivery_start / delivery_endconfirmatieLevervenster uit de confirmatie.
payment_terms_daysconfirmatieBetaaltermijn van de koper in werkdagen.
early_discount_eur_per_ereconfirmatieKorting voor vervroegde levering (€ 0,005 per ERE per kwartaal eerder), al verrekend in price_eur_per_ere.

CSV

Dezelfde rijen, één regel per verkoop, kolommen in de volgorde van de tabel hierboven. Komma als scheidingsteken, punt als decimaalteken, UTF-8, regeleinde \r\n. Lege cel = null.

curl -s https://joulo.nl/api/ere-verkopen.csv | head -3

Tegenpartij, marge en klantaantallen per verkoop zijn bewust niet openbaar. De feed bevat ook bewust géén netto-bedragen voor klanten: de servicefee verschilt per klant en contract (particulier, zakelijk, energiepartner, kortingen), dus een netto-bedrag bij één aangenomen fee zou misleiden.

Voorbeelden

curl

curl https://joulo.nl/api/ere-verkopen | jq '.sales[0].price_eur_per_ere'

JavaScript (fetch)

const res = await fetch("https://joulo.nl/api/ere-verkopen");
const { sales } = await res.json();
console.log(`Laatste verkoop: €${sales[0].price_eur_per_ere}/ERE (${sales[0].sale_date})`);

Foutgevallen

De endpoint geeft altijd HTTP 200 terug. Bij een upstream-fout staat ok: false in het lichaam; check dus op ok, niet op de statuscode.

Bronvermelding

De feed is vrij te gebruiken onder CC BY 4.0 met de citeerregel hierboven. Vragen over de data of een specifieke verkoop? Mail harm@joulo.nl (Head of Trade) of support@joulo.nl.