openapi: "3.0.0" info: description: "Bundesnetzagentur Strommarktdaten" version: "0.0.1" title: "Bundesnetzagentur Strommarktdaten" servers: - url: "https://www.smard.de/app" paths: /chart_data/{filter}/{region}/index_{resolution}.json: get: parameters: - $ref: "#/components/parameters/filterParameter" - $ref: "#/components/parameters/regionParameter" - $ref: "#/components/parameters/resolutionParameter" responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/Indices" example: timestamps: [1627855200000, 1628460000000, 1629064800000] "404": description: No data for combination of filter region and resolution description: "Verfügbare Timestamps für Filter, Region und Auflösung" summary: "Indizes" /chart_data/{filter}/{region}/{filterCopy}_{regionCopy}_{resolution}_{timestamp}.json: get: parameters: - $ref: "#/components/parameters/filterParameter" - $ref: "#/components/parameters/filterCopyParameter" - $ref: "#/components/parameters/regionParameter" - $ref: "#/components/parameters/regionCopyParameter" - $ref: "#/components/parameters/resolutionParameter" - in: path name: timestamp schema: type: integer required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TimeSeries" example: meta_data: { "version": 1, "created": 1627858357549 } series: [[1627250400000, 7866.0], [1627254000000, 7881.0]] "404": description: No data for combination of filter region and resolution or mismatch between *copy parameters description: "Zeitreihendaten nach Filter, Region und Auflösung ab Timestamp" summary: "Zeitreihendaten" /table_data/{filter}/{region}/{filterCopy}_{regionCopy}_quarterhour_{timestamp}.json: get: parameters: - $ref: "#/components/parameters/filterParameter" - $ref: "#/components/parameters/filterCopyParameter" - $ref: "#/components/parameters/regionParameter" - $ref: "#/components/parameters/regionCopyParameter" - in: path name: timestamp schema: type: integer required: true responses: "200": description: OK content: application/json: schema: $ref: "#/components/schemas/TimeSeries2" example: meta_data: { "version": 1, "created": 1627858357549 } series: [{ "timestamp": 1647817200000, "versions": [{ "value": 1225, "name": null }] }] "404": description: No data for combination of filter region and resolution or mismatch between *copy parameters description: "Zeitreihendaten nach Filter, Region und Auflösung ab Timestamp" summary: "Zeitreihendaten" components: schemas: Indices: type: object properties: timestamps: type: array items: type: integer TimeSeries: type: object properties: meta_data: type: object properties: version: type: integer created: type: integer series: type: array items: type: array items: type: number TimeSeries2: type: object properties: meta_data: type: object properties: version: type: integer created: type: integer series: type: array items: type: object properties: values: type: array items: type: object properties: timestamp: type: number versions: type: array items: type: object properties: value: type: number name: {} parameters: resolutionParameter: in: path name: resolution schema: type: string enum: [hour, quarterhour, day, week, month, year] default: hour required: true description: > Auflösung der Daten: * `hour` - Stündlich * `quarterhour` - Viertelstündlich * `day` - Täglich * `week` - Wöchentlich * `month` - Monatlich * `year` - Jährlich filterParameter: in: path name: filter schema: type: integer enum: [ 1223, 1224, 1225, 1226, 1227, 1228, 4066, 4067, 4068, 4069, 4070, 4071, 410, 4359, 4387, 4169, 5078, 4996, 4997, 4170, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 3791, 123, 126, 715, 5097, 122, ] required: true description: > Mögliche Filter: * `1223` - Stromerzeugung: Braunkohle * `1224` - Stromerzeugung: Kernenergie * `1225` - Stromerzeugung: Wind Offshore * `1226` - Stromerzeugung: Wasserkraft * `1227` - Stromerzeugung: Sonstige Konventionelle * `1228` - Stromerzeugung: Sonstige Erneuerbare * `4066` - Stromerzeugung: Biomasse * `4067` - Stromerzeugung: Wind Onshore * `4068` - Stromerzeugung: Photovoltaik * `4069` - Stromerzeugung: Steinkohle * `4070` - Stromerzeugung: Pumpspeicher * `4071` - Stromerzeugung: Erdgas * `410` - Stromverbrauch: Gesamt (Netzlast) * `4359` - Stromverbrauch: Residuallast * `4387` - Stromverbrauch: Pumpspeicher * `4169` - Marktpreis: Deutschland/Luxemburg * `5078` - Marktpreis: Anrainer DE/LU * `4996` - Marktpreis: Belgien * `4997` - Marktpreis: Norwegen 2 * `4170` - Marktpreis: Österreich * `252` - Marktpreis: Dänemark 1 * `253` - Marktpreis: Dänemark 2 * `254` - Marktpreis: Frankreich * `255` - Marktpreis: Italien (Nord) * `256` - Marktpreis: Niederlande * `257` - Marktpreis: Polen * `258` - Marktpreis: Polen * `259` - Marktpreis: Schweiz * `260` - Marktpreis: Slowenien * `261` - Marktpreis: Tschechien * `262` - Marktpreis: Ungarn * `3791` - Prognostizierte Erzeugung: Offshore * `123` - Prognostizierte Erzeugung: Onshore * `125` - Prognostizierte Erzeugung: Photovoltaik * `715` - Prognostizierte Erzeugung: Sonstige * `5097` - Prognostizierte Erzeugung: Wind und Photovoltaik * `122` - Prognostizierte Erzeugung: Gesamt filterCopyParameter: in: path name: filterCopy schema: type: integer enum: [ 1223, 1224, 1225, 1226, 1227, 1228, 4066, 4067, 4068, 4069, 4070, 4071, 410, 4359, 4387, 4169, 5078, 4996, 4997, 4170, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 3791, 123, 126, 715, 5097, 122, ] required: true description: > Muss dem Wert von "filter" entsprechen. (Kaputtes API-Design) regionCopyParameter: in: path name: regionCopy schema: type: string enum: [DE, AT, LU, DE-LU, DE-AT-LU, 50Hertz, Amprion, TenneT, TransnetBW, APG, Creos] required: true description: > Muss dem Wert von "region" entsprechen. (Kaputtes API-Design) regionParameter: in: path name: region schema: type: string enum: [DE, AT, LU, DE-LU, DE-AT-LU, 50Hertz, Amprion, TenneT, TransnetBW, APG, Creos] default: DE required: true description: > Land / Regelzone / Marktgebiet: * `DE` - Land: Deutschland * `AT` - Land: Österreich * `LU` - Land: Luxemburg * `DE-LU` - Marktgebiet: DE/LU (ab 01.10.2018) * `DE-AT-LU` - Marktgebiet: DE/AT/LU (bis 30.09.2018) * `50Hertz` - Regelzone (DE): 50Hertz * `Amprion`- Regelzone (DE): Amprion * `TenneT` - Regelzone (DE): TenneT * `TransnetBW` - Regelzone (DE): TransnetBW * `APG` - Regelzone (AT): APG * `Creos` - Regelzone (LU): Creos