Zum Inhalt springen

Kunden

Ein Kunde ist ein Gast, der auf dem Gastportal des Mandanten ein Konto registriert hat — der Selbstbedienungsbereich, in dem Gäste einchecken, ihre Rechnungen einsehen und ihr Profil pflegen. Walk-in-Gäste und Buchungen, die im Auftrag eines Gastes angelegt wurden, sind keine Kunden und erscheinen hier nicht; sie liegen direkt auf dem Buchungsdatensatz (guest_first_name, guest_last_name, guest_email).

GET /api/v1/public/customers/

Erforderlicher Geltungsbereich: customers:read

Query-Parameter:

NameTypStandardBeschreibung
pageinteger1Seitennummer, 1-indiziert
page_sizeinteger50Einträge pro Seite (max. 200)

In v1 sind keine Filter verfügbar. Standardsortierung: date_joined absteigend — zuletzt registrierte zuerst. Den vollständigen Paginierungsvertrag finden Sie unter Paginierung und Filterung.

Antwort 200:

{
"count": 412,
"next": "https://api.campone.ch/api/v1/public/customers/?page=2",
"previous": null,
"results": [
{
"id": 9087,
"email": "anna.mueller@example.ch",
"first_name": "Anna",
"last_name": "Müller",
"phone_number": "+41 79 123 45 67",
"date_joined": "2026-04-21T18:02:11.314Z"
}
]
}

Antwortfelder (pro Ergebnis):

FeldTypBeschreibung
idintegerPrimärschlüssel des Kunden, eindeutig innerhalb des Mandanten
emailstringE-Mail-Adresse des Kunden (für die Anmeldung verwendet)
first_namestringVorname des Kunden
last_namestringNachname des Kunden
phone_numberstringTelefonnummer des Kunden (kann leer sein)
date_joineddatetime (ISO 8601, UTC)Zeitpunkt, zu dem der Kunde das Gastportal-Konto registriert hat

Fehler: 401, 403, 429. Die Antwortformen finden Sie unter Fehler und Statuscodes.

Beispiel (curl):

Terminal-Fenster
curl -H "Authorization: Bearer ck_a1b2c3d4XXXXXXXXXXXXXXXXXXXXXXXX" \
"https://api.campone.ch/api/v1/public/customers/?page=1"

Beispiel (Python):

import requests
r = requests.get(
"https://api.campone.ch/api/v1/public/customers/",
headers={"Authorization": "Bearer ck_a1b2c3d4XXXXXXXXXXXXXXXXXXXXXXXX"},
params={"page": 1, "page_size": 50},
)
r.raise_for_status()
data = r.json()
for customer in data["results"]:
print(customer["email"], customer["first_name"], customer["last_name"])

Es werden nur registrierte Gastportal-Konten zurückgegeben. Betreiber, Personal und Mandanten-Administratoren werden ausgefiltert. Walk-in-Gäste, die nur über die guest_*-Felder einer Buchung erfasst sind, erscheinen ebenfalls nicht hier — es gibt schlicht kein Konto, das aufgezählt werden könnte.

Es werden keine Buchungen verknüpft. Dieser Endpunkt liefert nur Kundendatensätze. Um zu sehen, was ein bestimmter Kunde gebucht hat, listen Sie Buchungen auf und ordnen sie clientseitig über guest_email zu. Ein customer_id-Fremdschlüssel auf dem Buchungsobjekt steht auf der Roadmap, ist aber nicht in v1 enthalten.

Personendaten unterliegen dem nDSG. Kundendatensätze enthalten Personendaten (Name, E-Mail, Telefon). Behandeln Sie sie gemäss Ihren Datenschutzpflichten — die Compliance-Position der Plattform finden Sie auf der betreiberseitigen nDSG-Seite.