{
  "openapi": "3.1.0",
  "info": {
    "title": "EREVergelijken open data",
    "version": "2026-10-21",
    "summary": "Read-only JSON published by EREVergelijken.eu (het ERE Team).",
    "description": "Each file is rebuilt when the site is published. version is the newest check date among the datasets (YYYY-MM-DD), not a software version. The human catalogue is https://erevergelijken.eu/data/ and https://erevergelijken.eu/en/data/. Licence CC BY 4.0. Cite with the file URL and the date field named on the catalogue page.",
    "license": {
      "name": "CC BY 4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    },
    "contact": {
      "name": "het ERE Team",
      "email": "hello@erevergelijken.eu",
      "url": "https://erevergelijken.eu/contact/"
    }
  },
  "servers": [
    {
      "url": "https://erevergelijken.eu"
    }
  ],
  "paths": {
    "/data/ere-aanbieders.json": {
      "get": {
        "summary": "Every compared provider with pricing, payout, contract, net indication and trust score. Dutch labels.",
        "responses": {
          "200": {
            "description": "Every compared provider with pricing, payout, contract, net indication and trust score. Dutch labels.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/ere-providers.json": {
      "get": {
        "summary": "The same rows as ere-aanbieders.json, with English text.",
        "responses": {
          "200": {
            "description": "The same rows as ere-aanbieders.json, with English text.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/ere-prijs.json": {
      "get": {
        "summary": "The current median, the current indication and every dated observation from a named source.",
        "responses": {
          "200": {
            "description": "The current median, the current indication and every dated observation from a named source.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErePriceFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/ere-marktmonitor/{edition}.json": {
      "get": {
        "summary": "One JSON file per quarter: price, providers, trust, commission, payouts and public charging, with sources.",
        "parameters": [
          {
            "name": "edition",
            "in": "path",
            "required": true,
            "description": "Quarter id.",
            "schema": {
              "type": "string",
              "enum": [
                "2026-q3"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One JSON file per quarter: price, providers, trust, commission, payouts and public charging, with sources.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MarketMonitorFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/stroomprijs-per-maand.json": {
      "get": {
        "summary": "Dutch day-ahead price per month since 2019, excluding VAT and energy tax.",
        "responses": {
          "200": {
            "description": "Dutch day-ahead price per month since 2019, excluding VAT and energy tax.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ElectricityMonthFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/stroomprijs-per-dag.json": {
      "get": {
        "summary": "Day-ahead price per day since 2019, plus hours with a negative price and the cheapest consecutive hours.",
        "responses": {
          "200": {
            "description": "Day-ahead price per day since 2019, plus hours with a negative price and the cheapest consecutive hours.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ElectricityDayFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/grid-mix.json": {
      "get": {
        "summary": "Renewable share of Dutch electricity load per quarter hour, plus the CO2 intensity from Energy-Charts. The source does not name a unit for CO2.",
        "responses": {
          "200": {
            "description": "Renewable share of Dutch electricity load per quarter hour, plus the CO2 intensity from Energy-Charts. The source does not name a unit for CO2.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GridMixFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/leveringsvergunningen.json": {
      "get": {
        "summary": "Count of active ACM electricity supply licences, per month.",
        "responses": {
          "200": {
            "description": "Count of active ACM electricity supply licences, per month.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LicenseFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/historie.json": {
      "get": {
        "summary": "Every recorded check of prices, terms and scores, and the corrections of our own mistakes.",
        "responses": {
          "200": {
            "description": "Every recorded check of prices, terms and scores, and the corrections of our own mistakes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HistoryFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/switching-deadlines.json": {
      "get": {
        "summary": "Cancellation date per ERE provider for a switch on 1 January 2027, with the quote and the source.",
        "responses": {
          "200": {
            "description": "Cancellation date per ERE provider for a switch on 1 January 2027, with the quote and the source.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwitchingFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/public-charging.json": {
      "get": {
        "summary": "Rules, supervision, prices per charging network, municipal tariffs and statistics.",
        "responses": {
          "200": {
            "description": "Rules, supervision, prices per charging network, municipal tariffs and statistics.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicChargingFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/stroometiket.json": {
      "get": {
        "summary": "Electricity label per household supplier: share per source, renewable share, Dutch guarantees of origin, CO2 and radioactive waste.",
        "responses": {
          "200": {
            "description": "Electricity label per household supplier: share per source, renewable share, Dutch guarantees of origin, CO2 and radioactive waste.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StroometiketFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/groene-mobiliteit.json": {
      "get": {
        "summary": "Fully electric share of new sales, electric passenger cars on the road, charge points, renewable electricity, grid CO2, the ERE price and the provider count.",
        "responses": {
          "200": {
            "description": "Fully electric share of new sales, electric passenger cars on the road, charge points, renewable electricity, grid CO2, the ERE price and the provider count.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GreenMobilityFile"
                }
              }
            }
          }
        }
      }
    },
    "/data/laadpalen-mid.json": {
      "get": {
        "summary": "Per model whether it has a built-in MID meter: yes, no, optional or unknown, with the note and the source.",
        "responses": {
          "200": {
            "description": "Per model whether it has a built-in MID meter: yes, no, optional or unknown, with the note and the source.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MidChargersFile"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "License": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "const": "CC BY 4.0"
          },
          "url": {
            "type": "string",
            "format": "uri",
            "const": "https://creativecommons.org/licenses/by/4.0/"
          },
          "attribution": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "url",
          "attribution"
        ],
        "additionalProperties": false
      },
      "LicenseNameUrl": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "name",
          "url"
        ],
        "additionalProperties": false
      },
      "Localized": {
        "type": "object",
        "properties": {
          "nl": {
            "type": "string"
          },
          "en": {
            "type": "string"
          }
        },
        "required": [
          "nl",
          "en"
        ],
        "additionalProperties": false
      },
      "SourceLink": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          }
        },
        "required": [
          "label",
          "url"
        ],
        "additionalProperties": false
      },
      "Provider": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "website": {
            "type": [
              "string",
              "null"
            ]
          },
          "legalEntity": {
            "type": [
              "string",
              "null"
            ]
          },
          "registration": {
            "type": "string",
            "enum": [
              "open",
              "preregistration",
              "waitlist",
              "closed"
            ]
          },
          "audiences": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "eligibility": {
            "type": "string",
            "description": "Who can sign up, in one sentence, in the language of this file."
          },
          "neaListed": {
            "type": "boolean"
          },
          "commission": {
            "type": [
              "number",
              "null"
            ],
            "description": "Standard 1-year fraction. 0.15 means 15 percent. Stays that rate when commissionTiers is set."
          },
          "commissionAtReferenceKwh": {
            "type": [
              "number",
              "null"
            ],
            "description": "Fraction at referenceAnnualKwh. The published volume tier at that volume, otherwise the same as commission."
          },
          "commissionTiers": {
            "type": [
              "array",
              "null"
            ],
            "description": "Published volume steps. toKwh is exclusive (where the next step starts), or null on the top step. termMonths omitted means 12.",
            "items": {
              "type": "object",
              "properties": {
                "fromKwh": {
                  "type": "number"
                },
                "toKwh": {
                  "type": [
                    "number",
                    "null"
                  ]
                },
                "rate": {
                  "type": "number",
                  "description": "Fraction withheld."
                },
                "termMonths": {
                  "type": "number"
                }
              },
              "required": [
                "fromKwh",
                "toKwh",
                "rate"
              ],
              "additionalProperties": false
            }
          },
          "commissionMinEur": {
            "type": [
              "number",
              "null"
            ],
            "description": "Minimum commission in euro per charger per year, incl. VAT, or null. The fee is gross times the rate, then limited to this floor and commissionMaxEur."
          },
          "commissionMaxEur": {
            "type": [
              "number",
              "null"
            ],
            "description": "Maximum commission in euro per charger per year, incl. VAT, or null."
          },
          "annualFeeEur": {
            "type": [
              "number",
              "null"
            ]
          },
          "pricing": {
            "type": "string"
          },
          "payout": {
            "type": "string"
          },
          "payoutText": {
            "type": "string"
          },
          "contract": {
            "type": "string"
          },
          "contractMonths": {
            "type": [
              "number",
              "null"
            ]
          },
          "lockIn": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "netEurPerYearAtReferenceKwh": {
            "type": [
              "object",
              "null"
            ],
            "properties": {
              "low": {
                "type": "number"
              },
              "high": {
                "type": "number"
              }
            },
            "required": [
              "low",
              "high"
            ],
            "additionalProperties": false
          },
          "trustScore": {
            "type": [
              "number",
              "null"
            ],
            "description": "0 to 10."
          },
          "trustBand": {
            "type": [
              "string",
              "null"
            ]
          },
          "hiddenFees": {
            "type": [
              "string",
              "null"
            ]
          },
          "hiddenFeesCode": {
            "type": [
              "string",
              "null"
            ]
          },
          "checkedOn": {
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "slug",
          "name",
          "url"
        ],
        "additionalProperties": true
      },
      "ProviderFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string",
            "const": "EREVergelijken.eu"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "dataCheckedOn": {
            "type": "string",
            "format": "date"
          },
          "referenceAnnualKwh": {
            "type": "number"
          },
          "notes": {
            "type": "string"
          },
          "providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Provider"
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "dataCheckedOn",
          "referenceAnnualKwh",
          "notes",
          "providers"
        ],
        "additionalProperties": false
      },
      "PriceObservation": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "source": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "benchmark",
              "realised",
              "indicative",
              "aggregator"
            ]
          },
          "named": {
            "type": "boolean"
          },
          "price": {
            "type": "number"
          },
          "low": {
            "type": "number"
          },
          "high": {
            "type": "number"
          },
          "url": {
            "type": "string"
          },
          "note": {
            "type": "string"
          }
        },
        "required": [
          "date",
          "source",
          "label",
          "kind",
          "named",
          "price",
          "url"
        ],
        "additionalProperties": true
      },
      "ErePriceFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "unit": {
            "type": "string"
          },
          "current": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "low": {
                "type": "number"
              },
              "high": {
                "type": "number"
              },
              "date": {
                "type": "string",
                "format": "date"
              }
            },
            "required": [
              "price",
              "low",
              "high",
              "date"
            ],
            "additionalProperties": false
          },
          "indication": {
            "description": "Current indication: median of the latest indicative observation per named source, plus a dated benchmark, within 14 days of the newest named observation. Null when fewer than 2 sources qualify. Realised sales do not count. Aggregators without a named source do not count. Separate from current.",
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "price": {
                    "type": "number"
                  },
                  "low": {
                    "type": "number"
                  },
                  "high": {
                    "type": "number"
                  },
                  "sources": {
                    "type": "array",
                    "minItems": 2,
                    "items": {
                      "type": "object",
                      "properties": {
                        "label": {
                          "type": "string"
                        },
                        "date": {
                          "type": "string",
                          "format": "date"
                        },
                        "price": {
                          "type": "number"
                        },
                        "url": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "label",
                        "date",
                        "price",
                        "url"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "from": {
                    "type": "string",
                    "format": "date"
                  },
                  "to": {
                    "type": "string",
                    "format": "date"
                  }
                },
                "required": [
                  "price",
                  "low",
                  "high",
                  "sources",
                  "from",
                  "to"
                ],
                "additionalProperties": false
              }
            ]
          },
          "observations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceObservation"
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "unit",
          "current",
          "indication",
          "observations"
        ],
        "additionalProperties": false
      },
      "MonitorFigure": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "$ref": "#/components/schemas/Localized"
          },
          "value": {
            "type": [
              "number",
              "string"
            ]
          },
          "unit": {
            "type": "string"
          },
          "asOf": {
            "type": "string",
            "format": "date"
          },
          "source": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "label",
          "value",
          "unit",
          "asOf",
          "source"
        ],
        "additionalProperties": false
      },
      "MarketMonitorFile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "$ref": "#/components/schemas/Localized"
          },
          "period": {
            "type": "object",
            "properties": {
              "start": {
                "type": "string",
                "format": "date"
              },
              "end": {
                "type": "string",
                "format": "date"
              }
            },
            "required": [
              "start",
              "end"
            ]
          },
          "published": {
            "type": "string",
            "format": "date"
          },
          "includedThrough": {
            "type": "string",
            "format": "date"
          },
          "modified": {
            "type": "string",
            "format": "date"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "voice": {
            "$ref": "#/components/schemas/Localized"
          },
          "citation": {
            "$ref": "#/components/schemas/Localized"
          },
          "findings": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "figures": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonitorFigure"
            }
          },
          "price": {
            "type": "object",
            "additionalProperties": true
          },
          "providers": {
            "type": "object",
            "additionalProperties": true
          },
          "trust": {
            "type": "object",
            "additionalProperties": true
          },
          "commission": {
            "type": "object",
            "additionalProperties": true
          },
          "breakEven": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "charging": {
            "type": "object",
            "additionalProperties": true
          },
          "links": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "required": [
          "id",
          "title",
          "period",
          "published",
          "includedThrough",
          "modified",
          "license",
          "figures"
        ],
        "additionalProperties": true
      },
      "ElectricityMonth": {
        "type": "object",
        "properties": {
          "month": {
            "type": "string",
            "description": "YYYY-MM"
          },
          "avg": {
            "type": "number"
          },
          "min": {
            "type": "number"
          },
          "max": {
            "type": "number"
          },
          "smartAvg": {
            "type": "number"
          },
          "eveningAvg": {
            "type": "number"
          },
          "negativeHours": {
            "type": "number"
          },
          "zeroOrNegativeHours": {
            "type": "number"
          },
          "intervalMinutes": {
            "type": "number"
          },
          "coverage": {
            "type": "number"
          },
          "partial": {
            "type": "boolean"
          },
          "through": {
            "type": "string",
            "format": "date"
          }
        },
        "required": [
          "month",
          "avg",
          "min",
          "max"
        ],
        "additionalProperties": true
      },
      "ElectricityMonthFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "attribution": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "definitions": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "updatedOn": {
            "type": "string",
            "format": "date"
          },
          "months": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ElectricityMonth"
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "updatedOn",
          "months"
        ],
        "additionalProperties": true
      },
      "ElectricityDay": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "format": "date"
          },
          "avg": {
            "type": "number"
          },
          "min": {
            "type": "number"
          },
          "max": {
            "type": "number"
          },
          "negativeHours": {
            "type": "number"
          },
          "smartAvg": {
            "type": [
              "number",
              "null"
            ]
          },
          "eveningAvg": {
            "type": [
              "number",
              "null"
            ]
          },
          "windowStart": {
            "type": [
              "string",
              "null"
            ]
          },
          "windowAvg": {
            "type": [
              "number",
              "null"
            ]
          },
          "hours": {
            "type": "number"
          }
        },
        "required": [
          "date",
          "avg",
          "min",
          "max",
          "negativeHours",
          "hours"
        ],
        "additionalProperties": true
      },
      "ElectricityDayFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/LicenseNameUrl"
          },
          "attribution": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "definitions": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "updatedOn": {
            "type": "string",
            "format": "date"
          },
          "first": {
            "type": "string",
            "format": "date"
          },
          "through": {
            "type": "string",
            "format": "date"
          },
          "gaps": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "type": "string"
                },
                "hours": {
                  "type": "number"
                }
              }
            }
          },
          "days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ElectricityDay"
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "updatedOn",
          "first",
          "through",
          "days"
        ],
        "additionalProperties": true
      },
      "GridMixFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "attribution": {
            "type": "string"
          },
          "licenseNote": {
            "type": "string"
          },
          "timeZone": {
            "type": "string"
          },
          "updatedOn": {
            "type": "string",
            "format": "date"
          },
          "fetchedAt": {
            "type": "string",
            "format": "date-time"
          },
          "today": {
            "type": "string",
            "format": "date"
          },
          "historyDays": {
            "type": "integer"
          },
          "endpoints": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "units": {
            "type": "object",
            "properties": {
              "renSharePct": {
                "type": "string"
              },
              "co2": {
                "type": "null"
              }
            },
            "required": [
              "renSharePct",
              "co2"
            ]
          },
          "forecast": {
            "type": "object",
            "additionalProperties": true
          },
          "definitions": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "days": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "date": {
                  "type": "string",
                  "format": "date"
                },
                "intervalMinutes": {
                  "type": "number"
                },
                "intervals": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": true
                  }
                }
              },
              "required": [
                "date",
                "intervals"
              ]
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "attribution",
          "timeZone",
          "updatedOn",
          "fetchedAt",
          "days"
        ],
        "additionalProperties": true
      },
      "LicenseFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "basedOn": {
            "type": "object",
            "properties": {
              "label": {
                "type": "string"
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "checkedOn": {
                "type": "string",
                "format": "date"
              }
            },
            "required": [
              "label",
              "url",
              "checkedOn"
            ]
          },
          "method": {
            "type": "string"
          },
          "countedFromFirstEvent": {
            "type": "array"
          },
          "leftOut": {
            "type": "array"
          },
          "months": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "month": {
                  "type": "string"
                },
                "count": {
                  "type": "number"
                }
              },
              "required": [
                "month",
                "count"
              ]
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "basedOn",
          "months"
        ],
        "additionalProperties": true
      },
      "HistoryFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "startedOn": {
            "type": "string",
            "format": "date"
          },
          "passes": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "corrections": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "series": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "string",
                    "format": "date"
                  },
                  {}
                ],
                "minItems": 2,
                "maxItems": 2
              }
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "startedOn",
          "passes",
          "corrections",
          "series"
        ],
        "additionalProperties": true
      },
      "SwitchingFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "checkedOn": {
            "type": "string",
            "format": "date"
          },
          "generated": {
            "type": "string",
            "format": "date",
            "description": "Same date as checkedOn. Not the publish clock."
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "pitfalls": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "openQuestions": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "providers": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "checkedOn",
          "generated",
          "rules",
          "providers"
        ],
        "additionalProperties": true
      },
      "PublicChargingFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "checkedOn": {
            "type": "string",
            "format": "date"
          },
          "generated": {
            "type": "string",
            "format": "date",
            "description": "Same date as checkedOn. Not the publish clock."
          },
          "schemaNotes": {
            "$ref": "#/components/schemas/Localized"
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "supervision": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "networks": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "municipal": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "stats": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "checkedOn",
          "generated",
          "rules",
          "networks",
          "municipal",
          "stats"
        ],
        "additionalProperties": true
      },
      "StroometiketFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "checkedOn": {
            "type": "string",
            "format": "date"
          },
          "generated": {
            "type": "string",
            "format": "date",
            "description": "Same date as checkedOn. Not the publish clock."
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "national": {
            "type": "object",
            "additionalProperties": true
          },
          "suppliers": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": true
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "checkedOn",
          "generated",
          "rules",
          "suppliers"
        ],
        "additionalProperties": true
      },
      "GreenMobilityFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "voice": {
            "$ref": "#/components/schemas/Localized"
          },
          "checkedOn": {
            "type": "string",
            "format": "date"
          },
          "generated": {
            "type": "string",
            "format": "date",
            "description": "Same date as checkedOn. Not the publish clock."
          },
          "citation": {
            "$ref": "#/components/schemas/Localized"
          },
          "figures": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "group": {
                  "type": "string"
                },
                "value": {
                  "type": "number"
                },
                "decimals": {
                  "type": "integer"
                },
                "unit": {
                  "type": "string"
                },
                "asOf": {
                  "type": "string"
                },
                "label": {
                  "$ref": "#/components/schemas/Localized"
                },
                "note": {
                  "$ref": "#/components/schemas/Localized"
                },
                "source": {
                  "$ref": "#/components/schemas/SourceLink"
                }
              },
              "required": [
                "id",
                "value",
                "unit",
                "asOf",
                "label",
                "note",
                "source"
              ],
              "additionalProperties": true
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "checkedOn",
          "generated",
          "figures"
        ],
        "additionalProperties": true
      },
      "MidChargersFile": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "publisher": {
            "type": "string"
          },
          "source": {
            "type": "string",
            "format": "uri"
          },
          "license": {
            "$ref": "#/components/schemas/License"
          },
          "voice": {
            "$ref": "#/components/schemas/Localized"
          },
          "checkedOn": {
            "type": "string",
            "format": "date"
          },
          "generated": {
            "type": "string",
            "format": "date",
            "description": "Same date as checkedOn. Not the publish clock."
          },
          "schemaNotes": {
            "$ref": "#/components/schemas/Localized"
          },
          "counts": {
            "type": "object",
            "properties": {
              "brands": {
                "type": "integer"
              },
              "models": {
                "type": "integer"
              },
              "yes": {
                "type": "integer"
              },
              "no": {
                "type": "integer"
              },
              "optional": {
                "type": "integer"
              },
              "unknown": {
                "type": "integer"
              }
            },
            "required": [
              "brands",
              "models",
              "yes",
              "no",
              "optional",
              "unknown"
            ],
            "additionalProperties": false
          },
          "brands": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slug": {
                  "type": "string"
                },
                "name": {
                  "type": "string"
                },
                "page": {
                  "type": "object",
                  "properties": {
                    "nl": {
                      "type": "string",
                      "format": "uri"
                    },
                    "en": {
                      "type": "string",
                      "format": "uri"
                    }
                  },
                  "required": [
                    "nl",
                    "en"
                  ],
                  "additionalProperties": false
                },
                "models": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": "string"
                      },
                      "mid": {
                        "type": "string",
                        "enum": [
                          "yes",
                          "no",
                          "optional",
                          "unknown"
                        ]
                      },
                      "note": {
                        "oneOf": [
                          {
                            "$ref": "#/components/schemas/Localized"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "source": {
                        "type": [
                          "string",
                          "null"
                        ]
                      }
                    },
                    "required": [
                      "name",
                      "mid",
                      "note",
                      "source"
                    ],
                    "additionalProperties": false
                  }
                }
              },
              "required": [
                "slug",
                "name",
                "page",
                "models"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "title",
          "publisher",
          "source",
          "license",
          "voice",
          "checkedOn",
          "generated",
          "schemaNotes",
          "counts",
          "brands"
        ],
        "additionalProperties": false
      }
    }
  }
}