Schnittstelle für Vermieter
Lesezugriff auf Fahrzeuge, Verfügbarkeit, Preise, Buchungen, Kunden und Rechnungen. Buchungen anlegen. Für die eigene Webseite, die Buchhaltung oder Fremdsysteme. Zusatzbaustein für Linie 3, Schlüssel legst du im Dashboard unter Verwaltung an.
Schnellstart
Basis-URL: https://mietsoft.ch/api/partner/v1. Antworten sind JSON, Zeiten Ortszeit im Format YYYY-MM-DDTHH:mm.
curl -H "Authorization: Bearer ms_live_…" \ "https://mietsoft.ch/api/partner/v1/availability?from=2026-10-01T09:00&to=2026-10-03T09:00"
Anmeldung
Schlüssel
Jeder Mandant legt eigene Schlüssel an, mit Namen und Rechten. Der Schlüssel beginnt mit ms_live_ und wird nur einmal angezeigt. Verloren heißt: neu anlegen, alten sperren.
Header
Authorization: Bearer ms_live_…
oder X-Api-Key: ms_live_…
Rechte
read: alles lesen.
bookings:write: zusätzlich Buchungen anlegen. Wird beim Anlegen des Schlüssels gewählt.
Regeln
Ratenlimit
600 Anfragen je Minute und Schlüssel, 60 davon schreibend. Die Antwort trägt X-RateLimit-Limit und X-RateLimit-Remaining.
Versionierung
Pfad /api/partner/v1. Neue Felder können jederzeit dazukommen. Entfallende Felder oder Pfade werden mindestens 6 Monate vorher angekündigt.
Mandantentrennung
Ein Schlüssel sieht ausschließlich die Daten des eigenen Mandanten. Fremde Buchungsnummern liefern 404.
Protokoll
Jeder Aufruf wird mit Schlüssel, Pfad, Status und Dauer protokolliert und 90 Tage aufbewahrt. Der Zugriff auf interne, nicht dokumentierte Endpunkte ist untersagt.
Fehler
Fehler kommen als JSON mit error (Code) und message (Text).
| HTTP | Code | Bedeutung |
|---|
Endpunkte
Lade Beschreibung …
Beispiele
Preis für ein Fahrzeug
GET /vehicles/AB123/price?from=2026-10-01T09:00&to=2026-10-03T09:00
{
"vehicle": "AB123", "from": "2026-10-01T09:00", "to": "2026-10-03T09:00", "currency": "EUR",
"price": 218.00, "base_price": 198.00, "surcharge": 20.00,
"surcharge_parts": [{ "art": "wochenende", "betrag": 20 }],
"included_km": 400, "tariff": "Standard-Tarif", "is_time_tariff": false
}
Buchung anlegen
POST /bookings
Content-Type: application/json
{
"vehicle": "AB123",
"start": "2026-10-01T09:00", "end": "2026-10-03T09:00",
"customer": { "name": "Max Muster", "email": "max@example.com", "phone": "+43 660 1234567" },
"extras": [{ "id": "1779528865182", "quantity": 1 }]
}
201 Created
{
"booking": { "id": "K7Q2M-9ZP4A", "status": "upcoming", "vehicle": "AB123", "total_price": 292.00, "created_via": "api", … },
"price": { "price": 218.00, "extras_total": 74.00, "total": 292.00, … }
}
Die Buchung entsteht als Anfrage ohne Zahlung. Zahlung, Kaution und Check-in laufen danach wie bei einer Büro-Buchung im Dashboard. Ist das Fahrzeug belegt, kommt 409 not_available.