Tankerkönig Logo
    Tankerkönig Spritpreise für alle!


    Echtzeit-Benzinpreis-API unter Creative-Commons-Lizenz

    Hier gibt es den einfachen Zugang zu den aktuellen Spritpreisen aller an die Markttransparenzstelle für Kraftstoffe (MTS-K) meldenden Tankstellen Deutschlands.

    Alle 14000+ Tankstellen im Bundesgebiet müssen die Preise für Super E5, Super E10 und Diesel zeitnah an diese Abteilung des Bundeskartellamtes melden. Der Zugang zu diesen Daten ist über diese Behörde ausschliesslich lizenzierten Spritpreis-Informationsdiensten möglich.

    Damit auch andere Anwender, sowie Entwickler von Apps, Websites und anderem diese Daten nutzen können gibt es die freie API von Tankerkönig.
    Damit verringert sich der Aufwand für Website-Betreiber und App-Entwickler zur Suche und Anzeige aktueller Spritpreise dramatisch.

    Tankerkönig.de hat sich entschlossen, sein API freizugeben, um anderen die gesammelten Erfahrungen im Sinne des Open-Data-Gedankens zur Verfügung zu stellen. Als einzige technische Einschränkung muß ein API-Key benutzt werden, um Zugriffe zuordnen und Missbrauch verhindern zu können. Die Bedingungen der MTS-K müssen ebenfalls eingehalten werden. Die freie API wird aus Kosten- und Ressourcengründen auf best-effort-Basis betrieben, eine Dienstgüte kann für die freie Version deshalb nicht garantiert werden.

    Historische Preisdaten

    Speziell für Forschungsprojekte, Statistiker, Tageszeitungen, aber auch für privat Interessierte gibt es neben den aktuellen Spritpreisen auch die seit Juni 2014 archivierten Spritpreise als Datenbank-Dumps.

    Die Daten werden täglich aktualisiert und werden als Datenbank-Dump bereitgestellt.
    Diese Preisdaten können Grundlage für statistische Auswertungen sein. Regionale Unterschiede, Unterschiede im Tages- und Wochenverlauf, Korrelationen mit dem Ölpreis und anderen Faktoren, Gegenüberstellung von Marken und freien Tankstellen und so weiter.

    Kommerzieller Service

    Auch wenn größeres geplant ist, das mit der freien API nicht umgesetzt werden kann, ist Tankerkönig der Partner der Wahl. Wir finden eine individuelle Lösung, die die speziellen Anforderungen des Projektes abdeckt. Wenn beispielsweise

    • Massenabfragen nötig sind,
    • Anpassungen der API erforderlich sind,
    • weitere Informationen abgefragt werden sollen,
    • die Daten auf eigenen Servern gehostet werden, oder
    • historische Daten aufbereitet werden müssen

    API Informationen


    Die Tankerkönig-API besteht aus drei HTTP-GET-Methoden, um Tankstellen-Informationen und Preise zu holen, sowie einer HTTP-POST-Methode, mit der fehlerhafte Daten an die MTS-K gemeldet werden können.

    Die API kann von einem Server (z.B. über PHP), vom Browser (via JavaScript/AJAX) oder auch per Direktaufruf der URL (ideal zum Testen) abgefragt werden. Als Datenformat wird JSON zurückgeliefert.

    Demo-Key

    Die Beispielaufrufe hier werden mit dem Demo-Key gemacht. Im Unterschied zu echten Keys werden keine echten Preise ausgeliefert. Außerdem sind die Daten zur besseren Lesbarkeit formatiert.

    Requests allgemein

    In jedem Aufruf einer API-Methode muss ein API-Key mit angegeben werden.
    Die Antwort enthält immer ein ok flag, dessen Status abgefragt werden sollte. Im Fehlerfall (ok == false) enthält die Antwort einen Text mit der Fehlerursache, bspw:
    {
      "ok":false,
      "message":"parameter error"
    }
    
    Es ist sinnvoll und dringend empfohlen, immer das ok-Flag abzufragen um zu testen, ob der Aufruf erfolgreich war.
    Je nach Applikation sollte der Fehler entsprechend behandelt werden, etwa so:
    • Fehlertext anzeigen,
    • Fehlertext an Server melden, falls ein eigener Server eingesetzt wird,
    • Keine weiteren Requests mehr senden

    API-Methode 1 - Umkreissuche

    Die Umkreissuche erfolgt über die API-Methode list.php. Damit können um einen gegebenen Standort die Tankstellen-Informationen und Preise der im angegebenen Radius befindlichen Tankstellen abgerufen werden.

    Die Parameter dieses Request sind:

    Parameter Bedeutung Format
    lat geographische Breite des Standortes Floatingpoint-Zahl
    lng geographische Länge Floatingpoint-Zahl
    rad Suchradius in km Floatingpoint-Zahl, max: 25
    type Spritsorte 'e5', 'e10', 'diesel' oder 'all'
    sort Sortierung price, dist (1)
    apikey Der persönliche API-Key UUID

    (1) Bei type=all wird immer nach Entfernung sortiert - die Angabe der Sortierung ist dann optional

    Beispielaufruf

    https://creativecommons.tankerkoenig.de/json/list.php?lat=52.521&lng=13.438&rad=1.5&sort=dist&type=all&apikey=00000000-0000-0000-0000-000000000002

    Beispielantwort

    {
        "ok": true,
        "license": "CC BY 4.0 -  https:\/\/creativecommons.tankerkoenig.de",
        "data": "MTS-K",
        "status": "ok",
        "stations": [
            {                                                     Datentyp, Bedeutung
                "id": "474e5046-deaf-4f9b-9a32-9797b778f047",   - UUID, eindeutige Tankstellen-ID
                "name": "TOTAL BERLIN",                         - String, Name
                "brand": "TOTAL",                               - String, Marke
                "street": "MARGARETE-SOMMER-STR.",              - String, Straße
                "place": "BERLIN",                              - String, Ort
                "lat": 52.53083,                                - float, geographische Breite
                "lng": 13.440946,                               - float, geographische Länge
                "dist": 1.1,                                    - float, Entfernung zum Suchstandort in km
                "diesel": 1.109,                                \
                "e5": 1.339,                                     - float, Spritpreise in Euro
                "e10": 1.319,                                   /
                "isOpen": true,                                 - boolean, true, wenn die Tanke zum Zeitpunkt der
                                                                  Abfrage offen hat, sonst false
                "houseNumber": "2",                             - String, Hausnummer
                "postCode": 10407                               - integer, PLZ
            },
            ... weitere Tankstellen
        ]
    }
                        

    Alle Tankstelleninformation wie vom Betreiber angegeben.

    Wenn nur eine Spritsorte abgefragt wird ist im JSON statt Name der Sorte 'price' angegeben.

    Beispielcode

    jQuery PHP

    API-Methode 2 - Preisabfrage

    Die Preisabfrage erfolgt über die API-Methode prices.php. Damit können die Preise von bis zu 10 bekannten Tankstellen gleichzeitig abgefragt werden.

    Die Parameter dieses Request sind die IDs der entsprechenden Tankstellen:

    Parameter Bedeutung Format
    ids IDs der Tankstellen UUIDs, durch Komma getrennt
    apikey Der persönliche API-Key UUID

    Beispielaufruf

    https://creativecommons.tankerkoenig.de/json/prices.php?ids=4429a7d9-fb2d-4c29-8cfe-2ca90323f9f8,446bdcf5-9f75-47fc-9cfa-2c3d6fda1c3b,60c0eefa-d2a8-4f5c-82cc-b5244ecae955,44444444-4444-4444-4444-444444444444&apikey=00000000-0000-0000-0000-000000000002

    Beispielantwort

    {
        "ok": true,
        "license": "CC BY 4.0 -  https:\/\/creativecommons.tankerkoenig.de",
        "data": "MTS-K",
        "prices": {
            "60c0eefa-d2a8-4f5c-82cc-b5244ecae955": {
                "status": "open",                               - Tankstelle ist offen
                "e5": false,                                    - kein Super
                "e10": false,                                   - kein E10
                "diesel": 1.189                                 - Tankstelle führt nur Diesel
            },
            "446bdcf5-9f75-47fc-9cfa-2c3d6fda1c3b": {
                "status": "closed"                              - Tankstelle ist zu
            },
            "4429a7d9-fb2d-4c29-8cfe-2ca90323f9f8": {
                "status": "open",
                "e5": 1.409,
                "e10": 1.389,
                "diesel": 1.129
            },
            "44444444-4444-4444-4444-444444444444": {
                "status": "no prices"                           - keine Preise für Tankstelle verfügbar
            }
        }
    }
                        

    Beispielcode

    jQuery

    API-Methode 3 - Detailabfrage

    Mit der Detail-Abfrage werden einige wenige Informationen geliefert, die in der Antwort der Umkreissuche nicht enthalten sind: detail.php.

    Parameter-Name Bedeutung Werte
    openingTimes Öffnungszeiten Array mit Objekten, in denen der Text und die Zeiten stehen
    overrides erweiterte Öffnungszeiten Änderungen der regulären ÖZ - bspw. eine temporäre Schliessung
    wholeDay ganztägig geöffnet true, false
    state Bundesland Ein Kürzel für das Bundesland - ist meist nicht angegeben

    Ein Aufruf dieser Funktion ist für Apps sinnvoll, wenn dem User Details einer ausgewählten Tankstelle angezeigt werden sollen.
    Zur regelmäßigen Preisabfragen ist diese Methode nicht gedacht. Statt dessen sollte hier die Umkreissuche, oder die Preisabfrage verwendet werden.

    Die Parameter dieses Request sind neben dem API-Key die ID der Tankstelle:

    Parameter Bedeutung Format
    id ID der Tankstelle UUID
    apikey Der persönliche API-Key UUID

    Beispielaufruf

    https://creativecommons.tankerkoenig.de/json/detail.php?id=24a381e3-0d72-416d-bfd8-b2f65f6e5802&apikey=00000000-0000-0000-0000-000000000002

    Beispielantwort

    Eine Tankstelle mit geänderten Öffnungszeiten:
    {
        "ok": true,
        "license": "CC BY 4.0 -  https:\/\/creativecommons.tankerkoenig.de",
        "data": "MTS-K",
        "status": "ok",
        "station": {
            "id": "24a381e3-0d72-416d-bfd8-b2f65f6e5802",
            "name": "Esso Tankstelle",
            "brand": "ESSO",
            "street": "HAUPTSTR. 7",
            "houseNumber": " ",
            "postCode": 84152,
            "place": "MENGKOFEN",
            "openingTimes": [                                               - Array mit regulären Öffnungszeiten
                {
                    "text": "Mo-Fr",
                    "start": "06:00:00",
                    "end": "22:30:00"
                },
                {
                    "text": "Samstag",
                    "start": "07:00:00",
                    "end": "22:00:00"
                },
                {
                    "text": "Sonntag",
                    "start": "08:00:00",
                    "end": "22:00:00"
                }
            ],
            "overrides": [                                                  - Array mit geänderten Öffnungszeiten
                "13.04.2017, 15:00:00 - 13.11.2017, 15:00:00: geschlossen"  - im angegebenen Zeitraum geschlossen
            ],
            "wholeDay": false,                                              - nicht ganztägig geöffnet
            "isOpen": false,
            "e5": 1.379,
            "e10": 1.359,
            "diesel": 1.169,
            "lat": 48.72210601,
            "lng": 12.44438439,
            "state": null                                                   - Bundesland nicht angegeben
        }
    }                        

    Beispielcode

    jQuery

    API-Methode 4 - Fehlermeldung

    Über die API können mit complaint.php auch fehlerhafte Daten über uns an die MTS-K weitergeleitet werden.

    Die Parameter dieses Request sind wie folgt:

    Parameter Bedeutung Format
    id ID der Tankstelle UUID
    apikey Der persönliche API-Key UUID
    type Fehlertyp (2)
    correction korrigierter Wert
    ts Timestamp Unix-Sekunden
    Optionale Angabe, wird die Timestamp nicht gesetzt wird die aktuelle Zeit genommen

    (2) Liste der Fehlertypen

    Fehlertyp Bedeutung
    wrongPetrolStationName Der Name entspricht nicht der Angabe. Korrektur: richtiger Name.
    wrongStatusOpen Die Tankstelle ist offen, obwohl sie laut Öffnungszeitenangabe zu sein sollte.
    correction wird nicht angegeben.
    wrongStatusClosed Die Tankstelle ist zu, obwohl sie laut Öffnungszeitenangabe offen sein sollte.
    correction wird nicht angegeben.
    wrongPriceE5 Falscher Super-Preis. Korrektur: Gleitpunktzahl mit korrektem Wert.
    wrongPriceE10 Falscher E10-Preis. Korrektur: Gleitpunktzahl mit korrektem Wert.
    wrongPriceDiesel Falscher Diesel-Preis. Korrektur: Gleitpunktzahl mit korrektem Wert.
    wrongPetrolStationBrand Marke stimmt nicht. Korrektur: Angabe des richtigen Namens.
    wrongPetrolStationStreet Straßenname stimmt nicht. Korrektur: Angabe des richtigen Namens.
    wrongPetrolStationHouseNumber Hausnummer stimmt nicht. Korrektur: Angabe der richtigen Hausnummer.
    wrongPetrolStationPostcode PLZ stimmt nicht. Korrektur: Angabe der richtigen PLZ.
    wrongPetrolStationPlace Ortsname stimmt nicht. Korrektur: Angabe der richtiger Ortsname.
    wrongPetrolStationLocation Geokoordinaten stimmen nicht. Korrektur: Angabe der richtigen Koordinaten.
    Format: 2 mit Komma getrennte Gleitpunktzahlen für geographische Breite und Länge.
    • Es sind ausschliesslich die angegeben Meldungstypen erlaubt
    • Es sind ausschliesslich Korrekturen erlaubt - keine Anmerkungen
    • Mit einer Meldung kann nur ein Fehler gemeldet werden
    • Es wird nur eine syntaktische Prüfung durchgeführt, keine inhaltliche
    • Die Daten werden an die MTS-K weitergegeben, die sie an die Tankstellenbetreiber weitergibt
    • Tankerkönig ist hier nur der Vermittler der Daten

    Beispielcode

    jQuery

    Beispiel-Meldungs-Aufrufe mit jQuery

    function sendComplaint(stationId, complaintType, correction){
        var apikey = '00000000-0000-0000-0000-000000000002'; // Demo-Key nur zum Testen, diese Requests werden nicht weitergegeben
    
        var data = {
            apikey: apikey,
            id: stationId,
            type: complaintType
        };
    
        if (correction) {
            data.correction = correction;
        }
    
        $.ajax({
            url: "https://creativecommons.tankerkoenig.de/json/complaint.php",
            method: 'POST',
            data: data,
            success: function( response ) {
                if (!response.ok) {
                    alert(response.message);
                } else {
                    alert('Meldung erfolgreich übertragen');
                }
            }
        });
    }
    
    var stationId = 'd3f68a43-e249-4a1f-bd34-0023677cdcc9';
    
    // Test 1
    sendComplaint(stationId, 'wrongStatusClosed', null);    // keine Korrekturangabe erlaubt
    
    // Test 2
    sendComplaint(stationId, 'wrongPriceDiesel', 1.234);
    
    // Test 3
    sendComplaint(stationId, 'wrongPetrolStationLocation', '52.29162,10.06117');
    
    // Test 4
    sendComplaint(stationId, 'illegal token', '52.29162,10.06117');
                        

    Die ersten 3 Aufrufe sind korrekt, die Antwort ist:

    {
        "ok": true
    }
                        

    Der letzte Aufruf ist fehlerhaft, die Antwort ist:

    {
        "ok": false,
        "message": "Meldungstyp 'illegal token' nicht erlaubt"
    }
                        

    Nutzungsbedingungen


    Kontakt-Adresse

    Die Erfahrung zeigt, dass bei der Verwendung der API Probleme auftreten können. Um solche Probleme zu klären, aber auch um etwaige Änderungen, oder Erweiterungen der API zu kommunizieren ist es nötig, dass wir auf einer Anmeldung mit funktionierender E-Mail-Adresse bestehen.

    Diese Daten werden - genauso wie sonstige persönliche Nutzungsdaten - niemals an Dritte weitergegeben.

    API-Requests

    Grundsätzlich gilt: Unnötige Belastungen des Tankerkönig-Servers sind zu vermeiden.

    Home-Automation-, Smart-Mirror- und ähnliche Systeme sollten Abfragen nicht öfter als einmal in 5 Minuten durchführen.
    Abfragezeiten sollten, um Lastspitzen zu vermeiden, nicht an runden Zeiten stattfinden - besser ist es, eine zufällige Anzahl Sekunden Verzögerung einzubauen.
    Wenn regelmäßig Preise geholt werden sollen, die prices.php, oder die list.php Methoden verwenden, um den Update aller Spritpreise mit nur einem Aufruf duchzuführen.

    Apps, Websites und andere Systeme: Requests on Demand - auf Useraktion - durchführen. Regelmäßige, nicht explizit vom User initiierte Requests sind zu vermeiden

    Massendaten

    Für bestimmte Anwendungen ist es sinnvoll Spritpreise vieler Tankstellen aktuell zur Verfügung zu haben.
    Die API ist dazu allerdings nicht gedacht. Falls Bedarf besteht, die komplette Tankstellendaten auf eigenen Servern zu spiegeln, oder regelmäßig für viele Tankstellen Informationen zu holen: bitte mit uns in Kontakt treten, wir werden zusammen eine Lösung finden.

    Sonstiges

    Bei Problemen mit dem Key, insbesondere wenn der Key gesperrt wurde: bitte mit uns in Kontakt treten. Niemals einen weiteren Key beantragen, ohne uns vorher zu kontaktieren.

    Die Daten stehen unter der Creative-Commons-Lizenz “CC BY 4.0”, siehe https://creativecommons.org/licenses/by/4.0/deed.de, insbesondere ist eine Namensnennung nötig (z.B. ein Link auf www.tankerkoenig.de) Für Apps ist diese Namensnennung auch im Info-Text im Store zu erfolgen.

    Die Bedingungen der MTS-K müssen eingehalten werden. Insbesondere darf eine App, Website, oder sonstiger öffentlich verfügbarer Dienst keine Filterung der Ergebnisse vornehmen, die nicht vom User explizit so gewünscht wird.

    API-Keys - auch der Demo-Key - dürfen nicht in Foren, auf GitHub oder auf ähnlichen Platformen veröffentlicht werden.
    Code oder Code-Snippets in Veröffentlichungen bitte immer kommentieren, so dass klar ist, dass ein persönlicher API-Key verwendet werden muss.
    Ein Hinweis kann so aussehen:

    // Key für den Zugriff auf die freie Tankerkönig-Spritpreis-API
    // Für eigenen Key bitte hier https://creativecommons.tankerkoenig.de
    // registrieren.
    var tankerkoenig_api_key = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'; // TODO: Key ersetzen

    API-Key vergessen?

    Hier neu zuschicken lassen


    API-Key beantragen


    Wegen Wartungsarbeiten sind momentan keine Registrierungen möglich.
    Bitte später nochmals versuchen.

    Die E-Mail-Addresse wird nicht an Dritte weitergegeben und dient ausschliesslich zur Bestätigung der Anmeldung, um eventuelle Änderungen des Dienstes zu kommunizieren und zur Behebung auftretender Probleme.
    Falls die App / die Website / der Dienst öffentlich erreichbar ist / wird, lasst es uns wissen und schickt uns einen Link zur Website, App-Store oder was auch immer.

    Bitte bestätigen, dass die Nutzungsbedingungen und die Erklärung zum Datenschutz gelesen und akzeptiert wurden.

    Historische Preisdaten


    Neu: historische Daten jetzt auch als CSV-Dateien verfügbar

    Um den Umgang mit den Daten zu erleichtern, stellen wir nun die historischen Daten als CSV-Dateien zur Verfügung. Die Daten werden in einem git-Repository abgelegt, das bei Microsoft Azure gehostet wird. Die URL ist

    • https://dev.azure.com/tankerkoenig/_git/tankerkoenig-data
    Für jeden Tag wird eine neue Datei angelegt, einzelne Dateien können über die Oberfläche als .zip heruntergelden werden. Man kann sich auch das gesamte Repository clonen und jeden Tag per git clone update, weiteres im README dort. Diese Datensammlung steht unter BY-NC-SA-4.0-Lizenz, d.h. nichtkommerzielle Nutzung ist frei.

    Download als Datenbank-Dump

    Neben dem Download als CSV-Dateien gibt es auch die Möglichkeit historische Daten in Form eines Postgres-Datenbank-Dumps von zu beziehen. Falls möglich, nutzen Sie den Download von unserem git-Repository, das ist einfacher zu handhaben.

    Inhalt der Dumps

    Vom Server werden alle vier Minuten sämtliche Preise der Tankstellen (knapp 15000) von der Markttransparenzstelle für Kraftstoffe (MTS-K) importiert. Wir erfassen dabei die Preisänderungen und speichern sie.

    Neben diesen Preisänderungsdaten enthält der Dump auch noch den aktuellen Stand der Tankstellen-Infos. (Name, Marke, Geoposition, etc).

    Was kann man mit den Daten machen?

    Interessant ist es natürlich, auszuwerten, was mit den Spritpreisen im Laufe des Tages/der Woche oder in den Ferien so passiert. Wo ist Sprit besonders teuer oder billig? Gilt das für Super und Diesel oder nicht? Oder gibt es vielleicht neue Erkenntnisse, die noch verborgen sind? Neue Ideen, auf die noch keiner gekommen ist? Lassen wir uns überraschen!

    Download

    Drei PostgreSQL-Dump-Files sind verfügbar:

    • alte Spritpreise ab 8.6.2014 bis 2.5.2016 (ca 1,8GB)
    • Spritpreise ab 2.5.2016 bis 2.10.2020 (ca 8GB)
    • Spritpreise ab 3.10.2020

    Wir sind bemüht die Preis- und Grunddaten lückenlos zu archivieren, können aber keine Garantien über die Vollständigkeit und Korrektheit der Daten abgeben.

    Infos zum Format hier.

    Der aktuelle Dump wird einmal täglich erzeugt.

    Lizenz

    Diesen Datenbankdump stellt Tankerkönig allen Interessenten unter einer Creative-Commons-Lizenz (CC BY 4.0) zur Verfügung, d.h. er kann auch für kommerzielle Zwecke (mit Namensnennung) genutzt werden.

    Bei Nutzung der historischen Preisdaten, würden wir uns über eine kurze Info zur geplanten Verwendung freuen.

    Kommerzieller Service


    Massenabfragen

    Unser CC-Server kann täglich viele hunderttausend Abfragen beantworten. Damit alle User und deren Klienten (App-, Websites-User) möglichst ohne Verzögerung und Serverausfälle an aktuelle Daten kommen, sind auf der Seite unseres Servers einige Maßnahmen umgesetzt, die sicherstellen, dass einzelne Datennehmer andere nicht beeinträchtigen. Das heißt, dass ein User, der eine zu hohe Last erzeugt, temporär oder dauerhaft vom Service ausgeschlossen werden kann.

    Wenn klar ist, das der geplante Service nicht mit dieser Einschränkung umgesetzt werden kann, können wir gegen eine monatliche Gebühr einen dedizierten Server aufsetzen, auf dem diese Limitierungen nicht existieren.

    API-Anpassungen

    Auch Einschränkungen beim Radius der Umkreissuche und Begrenzung bei der Anzahl abgefragter Tankstellen beim Preisabruf, die ebenfalls der Lastbegrenzung des CC-Server dienen, können bei einem dedizierten Server entfernt werden.

    Abfrage weiterer Informationen

    Weitere API-Methoden können freigeschaltet werden, z.B.:

    • Zeitpunkt der letzten Preisänderung
    • Aggregierte Queries (bspw. Durchschnittspreise für PLZ-Bereich)
    • Filterung mit PLZ, Name oder Marke
    • Tankstelle ist offen bis Zeitpunkt / öffnet zum Zeitpunkt

    Eigenes Hosting

    Falls die verfügbaren Daten auf eigenen Servern gehostet werden sollen, stehen diese Alternativen zur Verfügung:

    • Dedizierter Server, auf Wunsch mit Anpassungen der API, siehe oben
    • Regelmäßige Übernahme aller Preisdaten in gewünschtem Format (JSON, XML, CSV)

    Unterstützung bei Aufbereitung der historischen Daten

    Die frei verfügbaren historischen Preisdaten liegen in Form von PostgreSQL Datenbank-Dumps vor.
    Andere Formate wie JSON, MySQL, XML und CSV können gegen Gebühr erstellt werden.

    Eigene Queries der historischen Preisdaten stehen demnächst interessierten Usern per Web-Interface zur Verfügung.

    Wir übernehmen auch gerne individuelle Aufbereitungen der Daten.

    Referenzen


    Hier einige existierende Apps, Websites, Home-Automation-Systeme und sonstige Clients, die die Tankerkönig-Spritpreis-API verwenden.

    Bitte informiert uns, wenn euer Projekt hier gelistet werden soll.

    Apps

    • iSpritRechner für iOS
    • Oberlausitz-App für iOS und Android
    • Benzinomat (Android)
    • Einfach Tanken (Android)
    • Spritpreise - günstig Tanken
    • Tanken DE
    • Tankster

    Websites

    • Mobilitätsplattform greenmobilty.de
    • Autohaus Blatt
    • http://www.koelner-stadtteile.de

    SmartMirror

    • GLANCR

    Sourcecode für HomeAutomation und SmartMirror

    • ioBroker.tankerkoenig
    • HomeHub-WebUI
    • Tankerkönig SmarthomeNG
    • IP-Symcon
    • MagicMirror
    • MMM-Fuel

    Anderer Sourcecode

    • Java-Client
    • TankenApp (Ubuntu Touch)

    Tutorials

    • ioBroker-Tutorial Part 5: Update der Adapter und Spritpreis-Integration | haus-automatisierung.com
    • openHAB - Spritpreise mit Tankerkönig

    Tools


    API-Key vergessen

    Kein Problem. Einfach E-Mail-Adresse eingeben und Button drücken.

    Die Anmelde-E-Mail-Addresse

    Log-Einträge einsehen

    Hier könnt Ihr die Logeinträge des aktuellen Logs einsehen - gefiltert mit eurem API-Key.

    Das ist dazu gedacht, dass Ihr auf unserem Server nachsehen könnt welche Requests tatsächlich für euren Key ankommen. Bei einigen Home-Automation-Systemen ist das offenbar nicht anders zu überprüfen, da man im System an diese Information nicht, oder nur schwer rankommt.

    Auch Entwickler anderer System profitieren davon: wenn die Requests nicht über einen eigenen Server laufen, sondern von den Installationen direkt an unseren Server geschickt werden, ist das eine einfache Möglichkeit die tatsächlich anfallenden Requests zu sehen.

    Die Liste wird an die E-Mail-Adresse die bei der Anmeldung angegeben wurde verschickt.

    Diese Funktionalität ist ausschliesslich dazu gedacht, Probleme möglichst frühzeitig aufzuspüren.
    Am besten, immer vor dem Launch und bei Änderungen der App/Website/sonstigen System einsetzen.
    Also nicht dauerhaft und regelmäßig solche Daten abholen.

    Die Anmelde-E-Mail-Addresse


    Tankstellenfinder

    Hier findet sich ein Tankstellenfinder, mit dem man sehr einfach in einer Karte seine Lieblingstanken finden kann.

    Diese Tankstellen-Informationen sind im JSON-Format und können als Grundlage für Home-Automation-, Magic Mirror-Systeme und andere Clients dienen.

    Formatspezifikation einer solchen JSON-Datei hier.

    Beispielcode PHP list.php

    • 01 Mai 2017
    • Beispielcode PHP list.php

    Aufruf aus PHP

    $lat = $_GET["lat"];
    $lng = $_GET["lng"];
    $radius = $_GET["radius"];
    $sort = $_GET["sort"];
    $type = $_GET["type"];
    $json = file_get_contents('https://creativecommons.tankerkoenig.de/json/list.php'
        ."?lat=$lat"     // geographische Breite
        ."&lng=$lng"     //               Länge
        ."&rad=$radius"  // Suchradius in km
        ."&sort=$sort"   // Sortierung: 'price' oder 'dist' - bei type=all diesen Parameter weglassen
        ."&type=$type"   // Spritsorte: 'e5', 'e10', 'diesel' oder 'all'
        ."&apikey=00000000-0000-0000-0000-000000000002");   // Demo-Key ersetzen!
    $data = json_decode($json);
    display($data);

    Beispielcode Javascript list.php

    • 01 Mai 2017
    • Beispielcode JS list.php

    Aufruf aus JS, mit jQuery

    Ein Sprittyp

    $.ajax({
        url: "https://creativecommons.tankerkoenig.de/json/list.php",
        data: {
            lat: position.coords.latitude,
            lng: position.coords.longitude,
            rad: 2,
            sort: "price",
            type: "diesel",
            apikey: "00000000-0000-0000-0000-000000000002"
        },
        success: function(response) {
            if (!response.ok) {
                // TODO: Fehlerbehandlung
                console.error(response.message);
            } else {
                // TODO: Anzeige der Informationen
                console.log(response);
            }
        },
        error: function(p){
            that.showError('AJAX-Problem', 'status: ' + p.status + ' statusText: ' + p.statusText);
        }
    });

    Alle Spritsorten

    $.ajax({
        url: "https://creativecommons.tankerkoenig.de/json/list.php",
        data: {
            lat: position.coords.latitude,
            lng: position.coords.longitude,
            rad: 2,
            type: "all",
            apikey: "00000000-0000-0000-0000-000000000002"
        },
        success: function(response) {
            if (!response.ok) {
                // TODO: Fehlerbehandlung
                console.error(response.message);
            } else {
                // TODO: Anzeige der Informationen
                console.log(response);
            }
        },
        error: function(p){
            that.showError('AJAX-Problem', 'status: ' + p.status + ' statusText: ' + p.statusText);
        }
    });

    Beispielcode PHP prices.php

    • 01 Mai 2017
    • Beispielcode PHP prices.php

    Aufruf aus PHP

    
            

    Beispielcode Javascript prices.php

    • 01 Mai 2017
    • Beispielcode JS prices.php

    Aufruf aus JS, mit jQuery

    var station_ids = [];                               // Liste
    $.each(stations, function(){
        station_ids.push(this.id); // nur die IDs       // Füllen der Liste mit IDs der Tankstellen aus list.php Aufruf
    });
    
    station_ids_string = station_ids.join(',');         // IDs ohne Hochkommas mit Kommas getrennt verbunden
    
    $.ajax({                                            // jQuery für Server-Request - kann natürlich auch mit eigenem Code,
                                                        // oder anderen Libs gemacht werden.
        url: "https://creativecommons.tankerkoenig.de/json/prices.php",
        data: {
            ids: station_ids_string,                    // stringifiziertes Array mit Tankstellen-Ids
            apikey: '00000000-0000-0000-0000-000000000002'
        },
        success: function( response ) {                 // Antwort vom Server wird hier verarbeitet
            if (response.ok) {                          // Daten in Ordnung?
                successHandler(response.prices);        // TODO: eigene Funktion um Preise anzuzeigen und/oder zu speichern
            } else {
                errorHandler(response.message);         // TODO: Fehlermeldung anzeigen
            }
        },
        error: function(p){                             // Behandlung technischer Probleme
            errorHandler('AJAX-Problem, status: ' + p.status + ' statusText: ' + p.statusText);
        }
    });

    Beispielcode PHP detail.php

    • 01 Mai 2017
    • Beispielcode PHP detail.php

    Aufruf aus PHP

    
            

    Beispielcode Javascript detail.php

    • 01 Mai 2017
    • Beispielcode JS detail.php

    Aufruf aus JS, mit jQuery

    id = stationList[0].id;
    $.ajax({
        url: "https://creativecommons.tankerkoenig.de/json/detail.php",
        data: {
            id: id,     // Tankstellen-Id
            apikey: '00000000-0000-0000-0000-000000000002'
        },
        success: function( response ) {
            if (!response.ok) {
                // TODO: Fehlerbehandlung
                console.error(response.message);
            } else {
                // TODO: Anzeige der Informationen
                console.log(response);
            }
        }
    });

    Beispielcode Javascript complaint.php

    • 01 Mai 2017
    • Beispielcode JS complaint.php

    Aufruf aus JS, mit jQuery

    function sendComplaint(stationId, complaintType, correction){
        var apikey = '00000000-0000-0000-0000-000000000002'; // Demo-Key nur zum Testen, diese Requests werden nicht weitergegeben
    
        var data = {
            apikey: apikey,
            id: stationId,
            type: complaintType
        };
    
        if (correction) {
            data.correction = correction;
        }
    
        $.ajax({
            url: "https://creativecommons.tankerkoenig.de/json/complaint.php",
            method: 'POST',
            data: data,
            success: function( response ) {
                if (!response.ok) {
                    alert(response.message);
                } else {
                    alert('Meldung erfolgreich übertragen');
                }
            }
        });
    }
    
    
    var stationId = 'd3f68a43-e249-4a1f-bd34-0023677cdcc9';
    
    // Test 1
    sendComplaint(stationId, 'wrongStatusClosed', null);    // keine Korrekturangabe erlaubt
    // Test 2
    sendComplaint(stationId, 'wrongPriceDiesel', 1.234);
    // Test 3
    sendComplaint(stationId, 'wrongPetrolStationLocation', '52.29162,10.06117');
    // Test 4
    sendComplaint(stationId, 'illegal token', '52.29162,10.06117');

    Tankstellen-Info

    • 01 Mai 2017
    • Tankstellen-Info

    JSON-Rückgabe des Tankstellen-Finders

    {
      "005056ba-7cb6-1ed2-bceb-8a39e78c8d33": {             ID der ersten Tankstelle
        "label": "STAR | star Tankstelle",                  generierte Bezeichnung
        "coords": {                                         Geo-Koordinaten
          "lat": 53.10815,
          "lng": 8.77395
        },
        "address": [                                        Adresszeilen
          "Waller Heerstraße 294",
          "28219 Bremen"
        ],
        "openingTimes": {                                   Öffnungszeiten
          "Mo, Di, Mi, Do": [                               erste Öffnungszeit
            "06:00 - 23:00"
          ],
          "Fr, Sa": [                                       zweite Öffnungszeit
            "06:00 - 00:00"
          ],
          "So": [                                           dritte Öffnungszeit
            "07:00 - 23:00"
          ]
        },
        "overrides": [                                      geänderte Öffnungszeiten
          {
            "startp": "2016-10-17 06:00",                   von
            "endp": "2016-10-17 10:00",                     bis
            "is_close": false                               hat - anders als in den normalen ÖZ angegeben - zu
          },
          ... weitere Overrides
        ]
      },
      "e854dc9b-18b1-4f48-cb94-c3125f9ca47d": {             ID der zweiten Tankstelle
        "label": "Bremer Mineralölhandel GmbH | BMÖ Tankstelle Hötzer",
        "address": [
          "Plantage 17",
          ...
        }
      },
      ... weitere Tankstellen-Infos
    }        
    label, coords und address sind immer angegeben, openingTimes und overrides nur dann wenn diese Zeiten auch vorhanden sind (openingTimes: fast immer, overrides: selten).

    Mit den Informationen aus der erzeugten Datei ('stations.json') kann je nach eingesetzter Technik per PHP, Javascript oder anderen Sprachen ein Layout erzeugt werden, in das nur noch die aktuellen Preise eingefügt werden müssen, die mit prices.php von Tankerkönig bezogen werden.

    Kommerzieller Service

    • 21 Februar 2017
    • Kommerzieller Service

    Massenabfragen

    Unser CC-Server kann täglich viele hunderttausend Abfragen beantworten. Damit alle User und deren Klienten (App-, Websites-User) möglichst ohne Verzögerung und Serverausfälle an aktuelle Daten kommen, sind auf der Seite unseres Servers einige Maßnahmen umgesetzt, die sicherstellen, dass einzelne Datennehmer andere nicht beeinträchtigen. Das heißt, dass ein User, der eine zu hohe Last erzeugt, temporär oder dauerhaft vom Service ausgeschlossen werden kann.

    Wenn klar ist, das der geplante Service nicht mit dieser Einschränkung umgesetzt werden kann, können wir gegen eine monatliche Gebühr einen dedizierten Server aufsetzen, auf dem diese Limitierungen nicht existieren.

    API-Anpassungen

    Auch Einschränkungen beim Radius der Umkreissuche und Begrenzung bei der Anzahl abgefragter Tankstellen beim Preisabruf, die ebenfalls der Lastbegrenzung des CC-Server dienen, können bei einem dedizierten Server entfernt werden.

    Abfrage weiterer Informationen

    Weitere API-Methoden können freigeschaltet werden, z.B.:

    • Zeitpunkt der letzten Preisänderung
    • Aggregierte Queries (bspw. Durchschnittspreise für PLZ-Bereich)
    • Filterung mit PLZ, Name oder Marke
    • Tankstelle ist offen bis Zeitpunkt / öffnet zum Zeitpunkt

    Eigenes Hosting

    Falls die verfügbaren Daten auf eigenen Servern gehostet werden sollen, stehen mehrere Alternativen zur Verfügung:

    • Dedizierter Server, auf Wunsch mit Anpassungen der API, siehe oben
    • Regelmäßige Übernahme aller Preisdaten in gewünschtem Format (JSON, XML, CSV)

    Unterstützung bei Aufbereitung der historischen Daten

    Die frei verfügbaren historischen Preisdaten liegen in Form von PostgreSQL Datenbank-Dumps vor.
    Andere Formate wie JSON, MySQL, XML und CSV können gegen Gebühr erstellt werden.

    Eigene Queries der historischen Preisdaten stehen demnächst interessierten Usern per Web-Interface zur Verfügung.

    Wir übernehmen auch gerne individuelle Aufbereitungen der Daten.

    Impressum

    • 21 Februar 2017
    • Impressum

    Angaben gemäß § 5 TMG:

    Martin Kurz
    Mimosenweg 66
    70374 Stuttgart

    Kontakt:

    Telefon: 0711 51882513
    E-Mail: martinkurz@tankerkoenig.de

    Quelle: https://www.e-recht24.de

    Datenschutz

    • 15 November 2016
    • Datenschutz

    Datenschutz

    Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln Ihre personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften sowie dieser Datenschutzerklärung.

    Die Nutzung unserer Webseite ist in der Regel ohne Angabe personenbezogener Daten möglich. Soweit auf unseren Seiten personenbezogene Daten (beispielsweise Name, Anschrift oder E-Mail-Adressen) erhoben werden, erfolgt dies, soweit möglich, stets auf freiwilliger Basis. Diese Daten werden ohne Ihre ausdrückliche Zustimmung nicht an Dritte weitergegeben.

    Wir weisen darauf hin, dass die Datenübertragung im Internet (z.B. bei der Kommunikation per E-Mail) Sicherheitslücken aufweisen kann. Ein lückenloser Schutz der Daten vor dem Zugriff durch Dritte ist nicht möglich.


    Cookies

    Die Internetseiten verwenden teilweise so genannte Cookies. Cookies richten auf Ihrem Rechner keinen Schaden an und enthalten keine Viren. Cookies dienen dazu, unser Angebot nutzerfreundlicher, effektiver und sicherer zu machen. Cookies sind kleine Textdateien, die auf Ihrem Rechner abgelegt werden und die Ihr Browser speichert.

    Die meisten der von uns verwendeten Cookies sind so genannte „Session-Cookies“. Sie werden nach Ende Ihres Besuchs automatisch gelöscht. Andere Cookies bleiben auf Ihrem Endgerät gespeichert, bis Sie diese löschen. Diese Cookies ermöglichen es uns, Ihren Browser beim nächsten Besuch wiederzuerkennen.

    Sie können Ihren Browser so einstellen, dass Sie über das Setzen von Cookies informiert werden und Cookies nur im Einzelfall erlauben, die Annahme von Cookies für bestimmte Fälle oder generell ausschließen sowie das automatische Löschen der Cookies beim Schließen des Browser aktivieren. Bei der Deaktivierung von Cookies kann die Funktionalität dieser Website eingeschränkt sein.


    Server-Log-Files

    Der Provider der Seiten erhebt und speichert automatisch Informationen in so genannten Server-Log Files, die Ihr Browser automatisch an uns übermittelt. Dies sind:

    • Browsertyp/ Browserversion
    • verwendetes Betriebssystem
    • Referrer URL
    • Hostname des zugreifenden Rechners
    • Uhrzeit der Serveranfrage


    Diese Daten sind nicht bestimmten Personen zuordenbar. Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Wir behalten uns vor, diese Daten nachträglich zu prüfen, wenn uns konkrete Anhaltspunkte für eine rechtswidrige Nutzung bekannt werden.


    Kontaktformular

    Wenn Sie uns per Kontaktformular Anfragen zukommen lassen, werden Ihre Angaben aus dem Anfrageformular inklusive der von Ihnen dort angegebenen Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall von Anschlussfragen bei uns gespeichert. Diese Daten geben wir nicht ohne Ihre Einwilligung weiter.


    Auskunft, Löschung, Sperrung

    Sie haben jederzeit das Recht auf unentgeltliche Auskunft über Ihre gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger und den Zweck der Datenverarbeitung sowie ein Recht auf Berichtigung, Sperrung oder Löschung dieser Daten. Hierzu sowie zu weiteren Fragen zum Thema personenbezogene Daten können Sie sich jederzeit unter der im Impressum angegebenen Adresse an uns wenden.


    Widerspruch Werbe-Mails

    Der Nutzung von im Rahmen der Impressumspflicht veröffentlichten Kontaktdaten zur übersendung von nicht ausdrücklich angeforderter Werbung und Informationsmaterialien wird hiermit widersprochen. Die Betreiber der Seiten behalten sich ausdrücklich rechtliche Schritte im Falle der unverlangten Zusendung von Werbeinformationen, etwa durch Spam-E-Mails, vor.


    Quelle: https://www.e-recht24.de

    Einbindung von Diensten und Inhalten Dritter

    Es kann vorkommen, dass innerhalb dieses Onlineangebotes Inhalte Dritter, wie zum Beispiel Videos von YouTube, Kartenmaterial von Google-Maps, RSS-Feeds oder Grafiken von anderen Webseiten eingebunden werden. Dies setzt immer voraus, dass die Anbieter dieser Inhalte (nachfolgend bezeichnet als "Dritt-Anbieter") die IP-Adresse der Nutzer wahr nehmen. Denn ohne die IP-Adresse, könnten sie die Inhalte nicht an den Browser des jeweiligen Nutzers senden. Die IP-Adresse ist damit für die Darstellung dieser Inhalte erforderlich. Wir bemühen uns nur solche Inhalte zu verwenden, deren jeweilige Anbieter die IP-Adresse lediglich zur Auslieferung der Inhalte verwenden. Jedoch haben wir keinen Einfluss darauf, falls die Dritt-Anbieter die IP-Adresse z.B. für statistische Zwecke speichern. Soweit dies uns bekannt ist, klären wir die Nutzer darüber auf.

    Quelle: Datenschutz-Muster von Rechtsanwalt Thomas Schwenke - I LAW it

    Format-Info

    • 21 Februar 2017
    • Format-Info

    Datenbank-Tabellen

    Tabelle gas_station

     Column                    | Type                        | Modifiers
    ---------------------------+-----------------------------+-----------
     id                        | uuid                        | not null
     version                   | character varying(10)       | not null
     version_time              | timestamp without time zone | not null
     name                      | text                        | not null
     brand                     | text                        |
     street                    | text                        |
     house_number              | text                        |
     post_code                 | text                        |
     place                     | text                        |
     public_holiday_identifier | text                        |
     lat                       | double precision            | not null
     lng                       | double precision            | not null
     ot_json                   | text                        | not null

    Das sind im wesentlichen die Daten, die die MTS-K liefert.

    Column Bedeutung Bemerkungen
    id eindeutige, unveränderliche ID der Tankstelle
    version Versions-Nummer, vom Betreiber vergeben Ist wenig aussagekräftig, Format und Verwendung ist dem Betreiber überlassen
    version_time Angabe zur letzten Änderung der Versions-Nummer, vom Betreiber vergeben.
    name Name der Tankstelle Kann leer sein, es gibt keine klaren Vorgaben was hier zu stehen hat
    brand Marke
    street Straße Name der Straße, oft wird hier die Hausnummer mit angegeben
    house_number Hausnummer Kann auch leer sein
    post_code PLZ Ist verlässlich
    place Ortsangabe Name der Ortschaft, gelegentlich mit Ortsteil
    public_holiday_identifier Kürzel für Bundesland Ist meist nicht angegeben
    lat geographische Breite des Standortes
    lng geographische Länge des Standortes
    ot_json JSON-String mit den Öffnungszeiten siehe unten

    Feld ot_json

    Eine Tankstelle kann beliebig viele einzelne Öffnungszeiten haben. Ist keine angegeben ist die Tankstelle immer geöffnet. In diesem Fall steht in dem Feld '{}' - ein leeres Objekt.

    Im Folgenden ein Beispiel
    {
      "openingTimes": [
        {
          "applicable_days": 31,
          "periods": [
            {
              "startp": "05:00",
              "endp": "22:00"
            }
          ]
        },
        {
          "applicable_days": 96,
          "periods": [
            {
              "startp": "07:00",
              "endp": "22:00"
            }
          ]
        }
      ]
    }
    

    Diese Tanke hat 2 einzelne Öffnungszeiten. Gültig jeweils an den in applicable_days angegebenen Tagen.
    Die Angabe in diesem Feld ist ein Bitfeld, einzelne Bits stehen für einzelne Tage:

    Bit Zahlenwert Bedeutung
    0 1 Montag
    1 2 Dienstag
    2 4 Mittwoch
    3 8 Donnerstag
    4 16 Freitag
    5 32 Samstag
    6 64 Sonntag
    7 128 Feiertag

    Im Beispiel ist die erste Öffnungszeit also Montag bis Freitag gültig. (1+2+4+8+16 = 31) Die zweite Öffnungszeit gilt Samstag und Sonntag (32+64 = 96).
    Da für die Tankstelle keine spezielle Feiertagsregelung angegeben ist, gilt dort ebenfalls die Öffnungszeit des Sonntags. Falls eine Öffnungszeit für Feiertag angegeben ist, ist auschließlich diese an Feiertagen gültig.

    Neben den 'openingTimes' können auch 'overrides' gesetzt sein - Angaben zu geänderten Öffnungszeiten.

      "overrides": [
        {
          "startp": "2017-06-05 05:00",
          "endp": "2017-06-05 23:00",
          "is_close": false
        },
        {
          "startp": "2017-08-01 00:00",
          "endp": "2017-09-01 00:00",
          "is_close": true
        }
      ]

    Hier: am 5. Juni 2017 hat diese Tanke entgegen den Angaben in den regulären ÖZ zwischen 05:00 und 23:00 geöffnet. Im August hat die Tankstelle geschlossen. Angaben der regulären ÖZ werden innerhalb der Zeiträume der overrides ignoriert.

    Öffnungszeiten können sich ändern. Im Moment ist eine History der Öffnungszeiten allerding im Rahmen der CC-Daten nicht verfügbar.

    Tabelle gas_station_information_history

     Column  |            Type             | Modifiers
    ---------+-----------------------------+-----------
     id      | integer                     | not null
     stid    | uuid                        | not null
     e5      | smallint                    |
     e10     | smallint                    |
     diesel  | smallint                    |
     date    | timestamp(0) with time zone | not null
     changed | smallint                    |
    Column Bedeutung Bemerkungen
    id Interne Id Kann sich ändern - besser nicht verwenden
    stid Referenz zur Tankstelle-ID
    e5 Preis für einen Liter Super E5 Angabe in Zehntel-Cent
    e10 Preis für einen Liter Super E10 Angabe in Zehntel-Cent
    diesel Preis für einen Liter Diesel Angabe in Zehntel-Cent
    date Zeitpunkt dieser Änderung siehe unten
    changed Bitmaske für die Änderung siehe unten

    Hinweise

    • In der History-Tabelle sind aus Platzgründen nur Preisänderungen gespeichert. Der Preis zu einem bestimmten Zeitpunkt muss also aus der letzten Änderung errechnet werden.
    • Wurde ein ungültiger Preis übertragen, steht -1 in der jeweiligen Preis-Spalte.
    • Die changed-Spalte enthält (ebenfalls aus Platzgründen) für jede Spritsorte (Diesel, E5, E10) Flags, die folgende Bedeutung haben und zusammenaddiert werden:

    Bitmaske für die Änderung

    Diesel E5 E10
    new 3 12 48
    removed 2 8 32
    changed 1 4 16

    Wenn z.B. Diesel- und E10-Preis geändert wurden, steht in changed 17 (1+16).

    Ein Preis ist neu, wenn a) der Sprittyp bisher nicht von der Tankstelle geführt wurde, b) die Tankstelle neu ist, oder c) nachdem die MTS-K wegen Wartungsarbeiten eine Zeitlang keine Preise geliefert hat.

    Tankerkönig Logo
    Kontaktieren Sie uns
    • info@tankerkoenig.de

    LINKS

    • Tankerkönig
    • Unterstützen
    • Blog

    XX

    • Creative Commons CC BY 4.0
    • IOS App
    • Windows App
    Alle Preisdaten und Tankstelleninformationen: Markttransparenzstelle für Kraftstoffe MTS-K
    • Impressum
    • •
    • Datenschutz
    © All Rights Reserved, Tankerkönig

    Modal title