API DokuREST Zugriff Übersicht

Miet-Boot API

Die Miet-Boot API ermöglicht es, zentrale Funktionen unserer Plattform nahtlos in eigene Webseiten oder automatisierte Prozesse zu integrieren. In dieser Dokumentation werden die verfügbaren Endpunkte, die erwarteten Datenstrukturen sowie Beispielanfragen und Beispielantworten beschrieben.

Zur Veranschaulichung wird eine einfache PHP-Funktion namens mietboot_api verwendet. Diese dient lediglich als Beispiel zur Anbindung und muss nicht in exakt dieser Form übernommen werden.

Hinweis:

Alle API-Requests und Responses nutzen das JSON-Format. Für Anfragen ist ein gültiger API-Key im Authorization-Header erforderlich.

Beispiel-Client in PHP

										 function mietboot_api($uri, $type = 'GET', $params = '') {
			 $host = 'https://api.miet-boot.com/v2';
			 $key = 'meinGeheimerKey';
		 
			 $ch = curl_init();
			 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
			 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
			 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: key '.$key));
			 curl_setopt($ch, CURLOPT_URL, $host.$uri);
			 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
			 curl_setopt($ch, CURLOPT_TIMEOUT, 10);
			 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $type);
		 
			 if ($type == 'POST') {
				 curl_setopt($ch, CURLOPT_POST, true);
				 curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
			 }
		 
			 $json = curl_exec($ch);
			 return json_decode($json, 1);
		 }
									 

Zunächst ist ein Key durch ein Authentifizierungsaufruf zu holen. Dabei ist die eMailadresse und das Passwort, mit dem man sich im Portal einloggt, zu übertragen. Als Antwort erhält man einen Key, den man fortan ohne weitere Zugangsdaten nutzt. Der Key kann im Client zur weiteren Verwendung fest gespeichert werden. In der Beispielfunktion ist dieser als 'meinGeheimerKey' hinterlegt.
Der Key hat keinerlei Ablaufdatum und muss nicht erneuert werden.

Authentifizierung

Die erstmalige Authentifizierung erfolgt über den Login mittels eMailadresse und Passwort. Später muss ein Key im Aufrufheader mitgesendet werden.

ENDPOINTS
POST /auth
GET /auth
DELETE /auth

Authentifizierung:

POST /auth

Anfragefelder:

  • login_mail (text) Pflicht
  • Deine eMailadresse mit der du dich im Portal einloggst.
  • login_password (text) Pflicht
  • Dein Passwort mit dem du dich im Portal einloggst.
  • url (text)
  • Angabe einer URL, welche den Key verwenden soll. Bei unterschiedlichen URL werden unterschiedliche Keys erstellt.
  • info (text)
  • Eine zusätzliche Info zur besseren Identifikation. Kann frei gewählt werden.

Antwortfelder:

  • key (text)
  • Authentifizierungskey für Anfragen
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$arr=array();
$arr['login_mail']='info@revierpiraten.com';
$arr['login_password']='Dein-Login-Passwort';
$arr['url']='https://meine-webseite.de';
$arr['info']='meine Info';

$resp=mietboot_api('/auth','POST',$arr);{
    "login_mail": "info@revierpiraten.com",
    "login_password": "Dein-Login-Passwort",
    "url": "https://meine-webseite.de",
    "info": "meine Info"
}
				
Response
				{
    "key": "Dein-API-Key",
    "status": "ok"
}
				

Info zur Authentifizierung:

GET /auth

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • benutzer_nr (referenz)
  • Deine interne Benutzer-Nummer.
  • benutzer_firma (text)
  • Firmenname
  • benutzer_vorname (text)
  • Vorname
  • benutzer_nachname (text)
  • Nachname
  • api_nr (referenz)
  • Deine interne API-Nummer
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/auth');[]
				
Response
				{
    "benutzer_nr": "MB010120001",
    "benutzer_firma": "Beispielfirma",
    "benutzer_vorname": "Max",
    "benutzer_nachname": "Mustermann",
    "api_nr": "AP0101200001",
    "status": "ok"
}
				

Löschen der Authentifizierung:

Entfernen des API-Zugangs mit dem Authentifizierten API-Key.

DELETE /auth

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/auth','DELETE');[]
				
Response
				{
    "status": "ok"
}
				

Boot

Aufrufe die sich um Boote handeln.

ENDPOINTS
GET /boot
GET /boot/boot_nr

Bootliste:

Liste aller aktiven Boote.

GET /boot

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • boote (array)
  • Eine Auflistung von Booten.
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/boot');[]
				
Response
				{
    "boote": [
        {
            "boot_nr": "BT010120001",
            "boot_name": "Mein Motorboot",
            "kategorie_name": "Motorboot",
            "hafen_nr": "HA010120001"
        },
        {
            "boot_nr": "BT010120002",
            "boot_name": "Mein rotes Jetski",
            "kategorie_name": "Jetski",
            "hafen_nr": "HA010120001"
        }
    ],
    "status": "ok"
}
				

Bootsinformationen:

Informationen zu einem bestimmten Boot.

GET /boot/boot_nr

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • boot_nr (referenz)
  • Nummer eines Boots.
  • boot_name (text)
  • Name des Boots
  • boot_personen (integer)
  • Zugelassene Anzahl an Personen
  • boot_modell (text)
  • Bootsmodell des Herstellers
  • boot_hersteller (text)
  • Herstellername
  • boot_herstellerjahr (text)
  • Herstellerjahr des Boots
  • boot_laenge (float)
  • Länge des Boots in m
  • boot_breite (float)
  • Breite des Boots
  • boot_tiefgang (float)
  • Tiefgang des Boots in m
  • boot_beschreibung (text)
  • Beschreibungstext des Boots
  • boot_fsf (text)
  • Angabe, ob das Boot führerscheinfrei ist.
  • boot_leistung (text)
  • Leistungsangabe
  • boot_sortierpreis (float)
  • Angabe zur Sortierung nach Preisen.
  • boot_haupttarif (array)
  • Der Haupttarif eines Boots mit Angabe der Nebenkosten.
  • boot_ausstattung (array)
  • Array mit Ausstattungsmerkmalen
  • hafen_nr (referenz)
  • Nummer des Hafens
  • kategorie_name (text)
  • Name der Kategorie
  • boot_medien (array)
  • Bilder und Videos des Boots
  • boot_url (text)
  • URL zur Bootsseite
  • boot_buchen_url (text)
  • URL zur Buchungsseite des Boots. [datum] muss das Format DD-MM-YYYY haben. [uhrzeit] muss das Format HH:00 haben.
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/boot/BT010120001');[]
				
Response
				{
    "boot_nr": "BT010120001",
    "boot_name": "Mein rotes Boot",
    "boot_personen": "6",
    "boot_modell": "Typ I",
    "boot_hersteller": "Anka",
    "boot_herstellerjahr": "1983",
    "boot_laenge": "4.20",
    "boot_breite": "1.40",
    "boot_tiefgang": "0.10",
    "boot_beschreibung": "Dies ist ein schönes rotes Boot.",
    "boot_fsf": "führerscheinfrei",
    "boot_leistung": "2 PS",
    "boot_sortierpreis": "5.5",
    "boot_haupttarif": null,
    "boot_ausstattung": [
        "Toilette",
        "Grill"
    ],
    "hafen_nr": "HA010120001",
    "kategorie_name": "Ruderboot",
    "boot_medien": [
        {
            "bild_klein": "https://cache.miet-boot.de/anzeige_klein/ruderboot/mein-rotes-boot_1.png",
            "bild_gross": "https://cache.miet-boot.de/anzeige_gross/ruderboot/mein-rotes-boot_1.png",
            "bild_thumbnail": "https://cache.miet-boot.de/anzeige_thumb/ruderboot/mein-rotes-boot_1.png",
            "typ": "bild"
        },
        {
            "bild_klein": "https://cache.miet-boot.de/anzeige_klein/ruderboot/mein-rotes-boot_2.png",
            "bild_gross": "https://cache.miet-boot.de/anzeige_gross/ruderboot/mein-rotes-boot_2.png",
            "bild_thumbnail": "https://cache.miet-boot.de/anzeige_thumb/ruderboot/mein-rotes-boot_2.png",
            "typ": "bild"
        }
    ],
    "boot_url": "https://miet-boot.de/ruderboot/mein-rotes-boot.html",
    "boot_buchen_url": "https://miet-boot.de/buchen/mein_rotes_boot-[datum]_[uhrzeit]_tarif.html",
    "status": "ok"
}
				

Verfügbarkeitskalender

ENDPOINTS
POST /kalender/boot_nr
POST /kalender_std/boot_nr

Tageskalender:

Verfügbarkeitsübersicht für einen Monat in einer Tagesansicht.

POST /kalender/boot_nr

Anfragefelder:

  • monat (integer) Pflicht
  • Monatszahl
  • jahr (integer) Pflicht
  • Jahreszahl

Antwortfelder:

  • tage (array)
  • Array mit Tagen.
    tag: Tag des Monats
    monat: Monatszahl
    jahr: Jahreszahl
    status: Status des Tags(vergangen,frei,belegt,teilbelegt,unfrei)
    wochentag: Wochentag (Mo-Fr)
    feiertag: Beinhaltet den Feiertag, sofern der Tag ein Feiertag ist
    ferien: Beinhaltet den Feriennamen, sofern Tag in einem Ferienzeitraum liegt
    tag_preis_ab: beinhaltet den Preis des günstigsten Tarifs an dem Tag
    stunden: beinhaltet den Array des Stundenkalenders in diesem Tag
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$arr=array();
$arr['monat']='2';
$arr['jahr']='2026';

$resp=mietboot_api('/kalender/BT010120001','POST',$arr);{
    "monat": "2",
    "jahr": "2026"
}
				
Response
				{
    "tage": {
        "1": {
            "tag": "1",
            "monat": "2",
            "jahr": "2026",
            "status": "vergangen",
            "wochentag": "So",
            "feiertag": "",
            "ferien": "",
            "tag_preis_ab": "",
            "stunden": []
        },
        "2": {
            "tag": "2",
            "monat": "2",
            "jahr": "2026",
            "status": "frei",
            "wochentag": "Mo",
            "feiertag": "",
            "ferien": "",
            "tag_preis_ab": "25",
            "stunden": []
        },
        "3": {
            "tag": "3",
            "monat": "2",
            "jahr": "2026",
            "status": "belegt",
            "wochentag": "Di",
            "feiertag": "",
            "ferien": "",
            "tag_preis_ab": "",
            "stunden": []
        },
        "4": {
            "tag": "4",
            "monat": "2",
            "jahr": "2026",
            "status": "teilbelegt",
            "wochentag": "Mi",
            "feiertag": "",
            "ferien": "Sommerferien",
            "tag_preis_ab": "30",
            "stunden": []
        },
        "5": {
            "tag": "5",
            "monat": "2",
            "jahr": "2026",
            "status": "geschlossen",
            "wochentag": "Do",
            "feiertag": "",
            "ferien": "Sommerferien",
            "tag_preis_ab": "",
            "stunden": []
        }
    },
    "status": "ok"
}
				

Stundenkalender:

Verfügbarkeitsübersicht für einen Tag in einer Stundenansicht.

POST /kalender_std/boot_nr

Anfragefelder:

  • tag (integer) Pflicht
  • Tageszahl
  • monat (integer) Pflicht
  • Monatszahl
  • jahr (integer) Pflicht
  • Jahreszahl

Antwortfelder:

  • wochentag (text)
  • Tag der Woche
  • feiertag (text)
  • Wenn der Tag ein Feiertag ist beinhaltet dieses Feld den Namen davon, andernfalls bleibt es leer.
  • ferien (text)
  • Wenn der Tag ein Ferientag ist beinhaltet dieses Feld den Namen davon, andernfalls bleibt es leer.
  • stunden (array)
  • Array mit Stunden In den jeweiligen Stunden ist das Feld Status an dem man erkennen kann, ob der Startzeitpunkt frei ist. Zusätzlich ist bei jeder Stunde ein Array mit dem Namen tarife. In diesem werden alle verfügbaren Tarife aufgelistet mit den entsprechenden Preisen und Zusätzen durch den Zeitpunkt und Boot. das Feld gesamt_preis beinhaltet alle dieser Kosten.
    status: Status der Stunde(vergangen,frei,belegt,teilbelegt,unfrei)
    stunde: Stundenzahl
    stunde_preis_ab: beinhaltet den Preis des günstigsten Tarifs in dieser Stunde
    tarife: beinhaltet dein Array mit möglichen Tarifen in dieser Stunde
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$arr=array();
$arr['tag']='1';
$arr['monat']='2';
$arr['jahr']='2026';

$resp=mietboot_api('/kalender_std/BT010120001','POST',$arr);{
    "tag": "1",
    "monat": "2",
    "jahr": "2026"
}
				
Response
				{
    "wochentag": "Mo",
    "feiertag": "Ostermontag",
    "ferien": "Sommerferien",
    "stunden": [
        {
            "status": "geschlossen",
            "stunde": "0",
            "stunde_preis_ab": "",
            "tarife": [
                {
                    "tarif_nr": "CUSTOM"
                }
            ]
        },
        {
            "status": "geschlossen",
            "stunde": "1",
            "stunde_preis_ab": "",
            "tarife": [
                {
                    "tarif_nr": "CUSTOM"
                }
            ]
        },
        {
            "status": "geschlossen",
            "stunde": "2",
            "stunde_preis_ab": "",
            "tarife": [
                {
                    "tarif_nr": "CUSTOM"
                }
            ]
        },
        {
            "status": "frei",
            "stunde": "3",
            "stunde_preis_ab": "21",
            "tarife": [
                {
                    "tarif_nr": "TAR0101200001",
                    "tarif_name": "Kurztrip",
                    "tarif_preis": 10,
                    "zeit_preis": 5,
                    "boot_preis": 6,
                    "nebenkosten_preis": 0,
                    "gesamt_preis": 21
                },
                {
                    "tarif_nr": "CUSTOM"
                }
            ]
        },
        {
            "status": "frei",
            "stunde": "3",
            "stunde_preis_ab": "21",
            "tarife": [
                {
                    "tarif_nr": "TAR0101200001",
                    "tarif_name": "Kurztrip",
                    "tarif_preis": 10,
                    "zeit_preis": 5,
                    "boot_preis": 6,
                    "nebenkosten_preis": 0,
                    "gesamt_preis": 21
                },
                {
                    "tarif_nr": "CUSTOM"
                }
            ]
        },
        {
            "status": "frei",
            "stunde": "3",
            "stunde_preis_ab": "21",
            "tarife": [
                {
                    "tarif_nr": "TAR0101200001",
                    "tarif_name": "Kurztrip",
                    "tarif_preis": 10,
                    "zeit_preis": 5,
                    "boot_preis": 6,
                    "nebenkosten_preis": 0,
                    "gesamt_preis": 21
                },
                {
                    "tarif_nr": "CUSTOM"
                }
            ]
        }
    ],
    "status": "ok"
}
				

Hafen

ENDPOINTS
GET /hafen
GET /hafen/hafen_nr

Hafenliste:

Liste aller aktiven Häfen.

GET /hafen

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • haefen (array)
  • Eine Auflistung von Häfen.
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/hafen');[]
				
Response
				{
    "haefen": [
        {
            "hafen_nr": "HA010120001",
            "hafen_name": "grosser Hafen"
        },
        {
            "hafen_nr": "HA010120002",
            "hafen_name": "kleiner Hafen"
        }
    ],
    "status": "ok"
}
				

Hafeninformationen:

Informationen zu einem bestimmten Hafen.


<link rel="stylesheet" href="https://map.miet-boot.com/css/ol.css">

<script src="https://map.miet-boot.com/js/ol.js"></script>
<script>
   var hafen_geo_lng=13.9203110;
   var standort_lat=52.9304056;
   var standort_zoom=16;

   var map = new ol.Map({
      target: 'map-canvas',
      interactions: ol.interaction.defaults({ mouseWheelZoom: false}).extend([
         new ol.interaction.DragPan({
            condition: function (event) {
               return this.getPointerCount() === 2 || ol.events.condition.platformModifierKeyOnly(event);
            },
         }),
            new ol.interaction.MouseWheelZoom({
               condition: ol.events.condition.platformModifierKeyOnly,
            }),
         ]),
         layers: [
            new ol.layer.Tile({
               source: new ol.source.OSM()
            })
         ],
         view: new ol.View({
            center: ol.proj.transform([hafen_geo_lng,hafen_geo_lat], 'EPSG:4326', 'EPSG:3857'),
            zoom: hafen_geo_zoom
         })
      });

   var layer = new ol.layer.Vector({
      source: new ol.source.Vector({
         features: [
            new ol.Feature({
               geometry: new ol.geom.Point(ol.proj.fromLonLat([hafen_geo_lng,hafen_geo_lat]))
            })]
         }),
      style: new ol.style.Style ({
         image: new ol.style.Icon({
            src: 'https://map.miet-boot.com/images/pin-hafen.png'})
         })
      });
   map.addLayer(layer);
</script>


GET /hafen/hafen_nr

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • hafen_nr (referenz)
  • Nummer des Hafens
  • hafen_name (text)
  • Name des Hafens
  • hafen_text (text)
  • Beschreibung des Hafens.
  • hafen_strasse (text)
  • Strassenname und Hausnummer an dem der Hafen liegt.
  • hafen_plz (text)
  • Postleitzahl in dem der Hafen liegt.
  • hafen_ort (text)
  • Ort in dem der Hafen liegt.
  • hafen_tel (text)
  • Telefonnummer des Hafens.
  • hafen_geo_lng (float)
  • Geografischer Längengrad des Hafens.
  • hafen_geo_lat (float)
  • Geografischer Breitengrad des Hafens.
  • hafen_geo_zoom (float)
  • Zoomfaktor auf der Map.
  • hafen_ausstattung (array)
  • Array mit Eigenschaften des Hafens.
  • boote (array)
  • Eine Auflistung von Booten.
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/hafen/HA010120001');[]
				
Response
				{
    "hafen_nr": "HA010120001",
    "hafen_name": "grosser Hafen",
    "hafen_text": "Dies ist ein grosser Hafen.",
    "hafen_strasse": "Beispielstr. 3",
    "hafen_plz": "12345",
    "hafen_ort": "Beispielort",
    "hafen_tel": "033364 123 456",
    "hafen_geo_lng": "13.9203110",
    "hafen_geo_lat": "52.9304056",
    "hafen_geo_zoom": "16",
    "hafen_ausstattung": [
        "Imbiss",
        "WC"
    ],
    "boote": [
        {
            "boot_nr": "BT010120001",
            "boot_name": "Mein Motorboot",
            "kategorie_name": "Motorboot",
            "hafen_nr": "HA010120001"
        },
        {
            "boot_nr": "BT010120002",
            "boot_name": "Mein rotes Jetski",
            "kategorie_name": "Jetski",
            "hafen_nr": "HA010120001"
        }
    ],
    "status": "ok"
}
				

Gutschein

Aufrufe die sich um Gutscheine handeln.

ENDPOINTS
GET /gutschein
GET /gutschein/gutschein_nr

Gutscheinliste:

Liste aller aktiven Gutscheine.

GET /gutschein

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • gutscheine (array)
  • Array mit Gutscheinen
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/gutschein');[]
				
Response
				{
    "gutscheine": [
        {
            "gutschein_nr": "GU0101200001",
            "gutschein_name": "Sommergutschein"
        },
        {
            "gutschein_nr": "GU0101200002",
            "gutschein_name": "Geburtstagsgutschein"
        }
    ],
    "status": "ok"
}
				

Gutscheininformationen:

Informationen zu einem bestimmten Gutschein.

GET /gutschein/gutschein_nr

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • gutschein_name (text)
  • Name eines Gutscheins.
  • gutschein_nr (referenz)
  • Nummer eines Gutscheins.
  • gutschein_url (text)
  • URL zur Gutscheinseite
  • gutschein_werte (array)
  • Array mit Gutscheinwerten
  • gutschein_kaufbar (text)
  • Zeitraum an dem der Gutschein kaufbar ist
  • gutschein_medien (array)
  • Array mit Bildern zum Gutschein
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/gutschein/GU010120001');[]
				
Response
				{
    "gutschein_name": "Sommergutschein",
    "gutschein_nr": "GU010120001",
    "gutschein_url": "https://miet-boot.de/gutschein/anbieter_sommergutschein.html",
    "gutschein_werte": [
        50,
        100,
        150,
        200
    ],
    "gutschein_kaufbar": "Mo-So",
    "gutschein_medien": [
        {
            "bild_klein": "https://cache.miet-boot.de/gutscheine_vorschau/GU0101200001/1.png",
            "bild_gross": "https://cache.miet-boot.de/gutscheine_gross/GU0101200001/1.png",
            "typ": "bild"
        }
    ],
    "status": "ok"
}
				

Tarife

ENDPOINTS
GET /tarif
GET /tarif/tarif_nr

Tarifliste:

Liste aller Tarife.

GET /tarif

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • tarife (array)
  • Array mit Tarifen
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/tarif');[]
				
Response
				{
    "tarife": [
        {
            "tarif_nr": "TAR0101200001",
            "tarif_name": "Kurztrip",
            "tarif_dauer": "1 Stunde(n)",
            "tarif_preis": "50"
        },
        {
            "tarif_nr": "TAR0101200002",
            "tarif_name": "übers Wochenende",
            "tarif_dauer": "3 Nacht/Nächte",
            "tarif_preis": "100"
        },
        {
            "tarif_nr": "CUSTOM",
            "tarif_name": "CUSTOM Tarif",
            "tarif_dauer": "keine",
            "tarif_preis": "0"
        }
    ],
    "status": "ok"
}
				

Tarifinformationen:

Informationen zu einem bestimmten Tarif.

GET /tarif/tarif_nr

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • tarif_nr (referenz)
  • Nummer eines Tarifs
  • tarif_name (text)
  • Name des Tarifs
  • tarif_text (text)
  • Text des Tarifs
  • tarif_dauer (text)
  • Dauer des Tarifs
  • tarif_preis (text)
  • Preis des Tarifs
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/tarif/TAR0101200001');[]
				
Response
				{
    "tarif_nr": "TAR0101200001",
    "tarif_name": "Kurztrip",
    "tarif_text": "Ein schöner kurzer Tarif.",
    "tarif_dauer": "1 Stunde(n)",
    "tarif_preis": "123.56",
    "status": "ok"
}
				

Buchung

ENDPOINTS
POST /buchung

Buchung erstellen:

POST /buchung

Anfragefelder:

  • tag (integer) Pflicht
  • Tageszahl
  • monat (integer) Pflicht
  • Monatszahl
  • jahr (integer) Pflicht
  • Jahreszahl
  • stunde (integer) Pflicht
  • Stunde
  • boot_nr (referenz) Pflicht
  • Nummer eines Boots.
  • tarif_nr (referenz) Pflicht
  • Nummer eines Tarifs
  • kunde (array) Pflicht
  • Daten des Kunden
  • tarif (array)
  • Array eines Tarifs. Wird nur verwendet, wenn das Feld tarif_nr den Wert CUSTOM hat. Das Feld dauer ist in ganzen Stunden anzugeben.
  • zahlungsart_nr (referenz)
  • Die Nummer der Zahlungsart

Antwortfelder:

  • buchung_nr (referenz)
  • Nummer der Buchung
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$arr=array();
$arr['tag']='1';
$arr['monat']='2';
$arr['jahr']='2026';
$arr['stunde']='15';
$arr['boot_nr']='BT010120001';
$arr['tarif_nr']='TAR0101200001';
$arr['kunde']=array();
$arr['kunde']['anrede']='Herr';
$arr['kunde']['vorname']='Max';
$arr['kunde']['nachname']='Mustermann';
$arr['kunde']['strasse']='meine Strasse';
$arr['kunde']['plz']='16230';
$arr['kunde']['ort']='mein Ort';
$arr['kunde']['tel']='0123456789';
$arr['kunde']['mail']='meine@mail.net';
$arr['kunde']['land']='Deutschland';
$arr['tarif']=array();
$arr['tarif']['name']='Mein Tarif';
$arr['tarif']['dauer']='3';
$arr['tarif']['preis']='12.34';
$arr['zahlungsart_nr']='ZAH0101200001';

$resp=mietboot_api('/buchung','POST',$arr);{
    "tag": "1",
    "monat": "2",
    "jahr": "2026",
    "stunde": "15",
    "boot_nr": "BT010120001",
    "tarif_nr": "TAR0101200001",
    "kunde": {
        "anrede": "Herr",
        "vorname": "Max",
        "nachname": "Mustermann",
        "strasse": "meine Strasse",
        "plz": "16230",
        "ort": "mein Ort",
        "tel": "0123456789",
        "mail": "meine@mail.net",
        "land": "Deutschland"
    },
    "tarif": {
        "name": "Mein Tarif",
        "dauer": 3,
        "preis": 12.339999999999999857891452847979962825775146484375
    },
    "zahlungsart_nr": "ZAH0101200001"
}
				
Response
				{
    "buchung_nr": "BU0101200001",
    "status": "ok"
}
				

Zahlungsart

Eine Übersicht der Zahlungsarten.

ENDPOINTS
GET /zahlungsart
GET /zahlungsart/zahlungsart_nr

Liste der Zahlungsarten:

Liste aller aktiven Zahlungsarten.

GET /zahlungsart

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • zahlungsarten (array)
  • Ein Array mit Zahlungsarten.
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/zahlungsart');[]
				
Response
				{
    "zahlungsarten": [
        {
            "zahlungsart_nr": "ZAH01012000001",
            "konto_nr": "KTO0101200001",
            "konto_typ": "Bankkonto"
        },
        {
            "zahlungsart_nr": "ZAH01012000002",
            "konto_nr": "KTO0101200002",
            "konto_typ": "Kasse"
        }
    ],
    "status": "ok"
}
				

Informationen zur Zahlungsart:

Enthält Informationen zur Zahlungsart und dem damit verknüpften Konto.

GET /zahlungsart/zahlungsart_nr

Anfragefelder:

  • keine Felder vorhanden

Antwortfelder:

  • zahlungsart_nr (referenz)
  • Die Nummer der Zahlungsart
  • konto_nr (referenz)
  • Nummer des Kontos.
  • konto_typ (text)
  • Typ des Kontos (Kasse, Bank, Paypal...)
  • zahlungsart_text (text)
  • Text, der die Zahlungsart erklärt mit genaueren Daten. Ideal zur internen Verwendung.
  • zahlungsart_text_kurz (text)
  • Text, der die Zahlungsart allgemeiner erklärt ohne genaueren Daten zu verwenden. Ideal zur öffentlichen Verwendung.
  • status (text)
  • Status deiner Anfrage. Ist entweder "ok" oder "error", wenn ein Fehler zurück kommt. Näheres dazu steht im Feld status_detail.
Request
				$resp=mietboot_api('/zahlungsart/ZAH0101200001');[]
				
Response
				{
    "zahlungsart_nr": "ZAH0101200001",
    "konto_nr": "KTO0101200001",
    "konto_typ": "Bank",
    "zahlungsart_text": "Überweisung auf Konto von Max Mustermann (Bank)",
    "zahlungsart_text_kurz": "Überweisung auf Konto",
    "status": "ok"
}
				

Willkommen auf Miet-Boot.de

Dein Online Marktplatz zum Vermieten von Booten und Schiffen vom Hausboot bis zum Floss mit Verfügbarkeitsanzeige und Buchungssystem.

Dein Anbieter Menü findet du am unteren Rand des Portals und hilft dir deine Boote und Buchungen schnell und einfach zu verwalten.

Ok, Verstanden!

Ich möchte keine Tutorials sehen!

Admin Funktionen!

Mit dem Werkzeug Button, kannst du deine Boote, Tarife, Buchungen ansehen und bearbeiten oder löschen.

Schritt 1: Lege zunächst einen Hafen an. Dieser wird benötigt um deine Boote einem Standort zuzuweisen.

Ok, Verstanden!

Ich möchte keine Tutorials sehen!

Hafen anlegen

Der Hafen-Standort sowie alle relevanten Informationen zum Hafen, werden deinem Kunden vor und während des Buchungsprozesses zur verfügung gestellt.

Sollte sich der Hafen etwas abseits von einer Straße befinden, so kannst du via Klick auf der Map die genaue Position markieren.

Ok, Verstanden!

Ich möchte keine Tutorials sehen!

Boot anlegen

Wähle zunächst aus verschiedenen Kategorien dein Bootstyp aus. Im zweiten Schritt wirst du gebeten alle relevanten Daten zu deinem Boot einzutragen.

Je mehr Informationen oder Bilder du von deinem Boot angibst, desto interessanter ist dieses Boot für deine Kunden und es erspart dir später viel offene Fragen seitens deiner Kunden.

Ok, Verstanden!

Ich möchte keine Tutorials sehen!

Tarif anlegen

Ein Tarif ist der Bestandteil einer Buchung auf Zeit. Das anlegen der Tarife ist sehr flexibel gestaltet und lässt dich verschiedene Saisonpreise einrichten.

Ok, Verstanden!

Ich möchte keine Tutorials sehen!

Option anlegen

Lege fest was dein Kunde alles bei der Buchung deines Bootes dazu buchen kann. Bootsoptionen können via "Einzel oder Mehrfachauswahl" angelegt werden.

Diese können dann jedem Boot zugewiesen werden. Benzin pro Stunde buchen, Partybox dazu buchen oder gar eine Begleitung für einen Abend buchen, sind somit möglich.

Ok, Verstanden!

Ich möchte keine Tutorials sehen!

Rabatt anlegen

Rabatte können auf ein bestimmtes Boot, Tarif oder auf eine Option sowie für bestimmte Zeiträume angelegt werden.

Solltest du diesen Rabatt-Code später ändern wollen, ist dies generell möglich. Änderungen an den Rabatten haben keinerlei Auswirkungen auf bereits getätigte Bestellungen.

Ok, Verstanden!

Ich möchte keine Tutorials sehen!