Eingeladene
Kommt eine Person über den Empfehlungslink eines anderen Kontakts in den Bot, entsteht zwischen beiden eine Beziehung: Wer eingeladen hat, ist der Referrer, wer eingeladen wurde, der Eingeladene. Die Beziehungen bilden eine Kette: Die, die ein Kontakt selbst eingeladen hat, sind seine erste Ebene, die von ihnen Eingeladenen die zweite und so weiter. Wie das im Dashboard aussieht, lesen Sie unter Eingeladene.
Mit den Methoden auf dieser Seite führen Sie ein Empfehlungsprogramm in Ihrem eigenen System: Boni entlang der Kette vergeben, Netzwerkberichte erstellen, Aktionsbedingungen prüfen.
Alle drei Methoden erwarten einen Kontakt über seine ID — contact_id — und arbeiten nur mit Kontakten Ihrer eigenen Bots. Kontakte in den Antworten haben dieselbe Form wie bei den Kontaktmethoden: Kontaktfelder.
Fehler, die für alle Methoden dieser Seite gelten (weitere unter Fehler):
| Code | Wann | Antwort |
|---|---|---|
404 |
Unter den Kontakten Ihrer Bots gibt es keinen mit dieser contact_id — es gibt ihn nicht oder er gehört zu einem anderen Konto |
{"message": "Kontakt nicht gefunden", "errors": {"contact_id": ["Kontakt nicht gefunden"]}} |
422 |
contact_id fehlt oder ist keine Zahl; ungültige depth, level oder is_flat |
{"message": "…", "errors": {…}} |
Ein Kontakt eines anderen Kontos und ein nicht existierender werden gleich beantwortet — so verrät die Antwort nicht, ob es die ID in einem anderen Konto gibt.
getReferrers
Liefert die Kette der Referrer eines Kontakts nach oben: wer ihn eingeladen hat, wer diese Person eingeladen hat und so weiter.
https://watbot.org/de/api/v1/getReferrers| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
contact_id |
Zahl | ja | Kontakt-ID |
depth |
Zahl | nein | Wie viele Ebenen nach oben: 1 bis 1000. Standard 10 |
is_flat |
Boolean | nein | true oder 1 — die Referrer als Liste liefern, false oder 0 — ineinander verschachtelt. In der URL einer GET-Anfrage ebenso: true, false, 1 oder 0. Standard false |
curl -X POST "https://watbot.org/de/api/v1/getReferrers" \
-H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"contact_id": 4815170, "depth": 2}'
{
"data": {
"id": 4815170,
"bot_id": 12345,
"phone": null,
"email": null,
"name": "Lukas Müller",
"address": null,
"messenger": "telegram",
"utm": [],
"avatar": null,
"telegram_id": "223456781",
"telegram_username": null,
"vk_user_id": null,
"created_at": "2026-09-29T15:02:47+00:00",
"unsubscribed_at": null,
"referrer": {
"id": 4815162,
"bot_id": 12345,
"phone": "490001234567",
"email": null,
"name": "Anna Schmidt",
"address": null,
"messenger": "telegram",
"utm": [],
"avatar": null,
"telegram_id": "123456789",
"telegram_username": "anna_schmidt",
"vk_user_id": null,
"created_at": "2026-09-28T07:41:12+00:00",
"unsubscribed_at": null,
"referrer": {
"id": 4814901,
"bot_id": 12345,
"phone": null,
"email": null,
"name": "Julia Wagner",
"address": null,
"messenger": "telegram",
"utm": [],
"avatar": null,
"telegram_id": "323456782",
"telegram_username": "julia_w",
"vk_user_id": null,
"created_at": "2026-09-20T11:30:05+00:00",
"unsubscribed_at": null,
"tags": ["Partner"],
"variables": []
},
"tags": [],
"variables": []
},
"tags": [],
"variables": []
}
}
Die Antwort enthält den Kontakt selbst, im Feld referrer seinen Referrer mit dessen eigenem referrer und so weiter bis zur Tiefe depth. Hat der Kontakt keinen Referrer, fehlt das Feld referrer.
Mit "is_flat": true enthält data eine Liste der Referrer ohne den Kontakt selbst, vom nächsten zum entferntesten. Jeder hat ein Feld level: -1 ist die Person, die den Kontakt eingeladen hat, -2 deren Referrer und so weiter:
{
"data": [
{
"id": 4815162,
"name": "Anna Schmidt",
"…": "…",
"tags": [],
"variables": [],
"level": -1
},
{
"id": 4814901,
"name": "Julia Wagner",
"…": "…",
"tags": ["Partner"],
"variables": [],
"level": -2
}
]
}
Die Kontaktfelder in der Liste sind dieselben wie oben — hier gekürzt. Keine Referrer — {"data": []}.
getReferrals
Liefert die erste Ebene des Kontakts — die Personen, die er selbst eingeladen hat —, 15 pro Seite.
https://watbot.org/de/api/v1/getReferrals| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
contact_id |
Zahl | ja | Kontakt-ID |
filters[tag_name] |
String oder Array von Strings | nein | Nur Eingeladene mit diesen Tags — mit allen gleichzeitig. Berücksichtigt werden die ersten 10 Tags |
page |
Zahl | nein | Seitennummer, ab 1. Standard 1 |
Abfrage der Eingeladenen mit dem Tag „bezahlt“:
curl -X POST "https://watbot.org/de/api/v1/getReferrals" \
-H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"contact_id": 4815162, "filters": {"tag_name": ["bezahlt"]}}'
{
"data": [
{
"id": 4815170,
"bot_id": 12345,
"phone": null,
"email": null,
"name": "Lukas Müller",
"address": null,
"messenger": "telegram",
"utm": [],
"avatar": null,
"telegram_id": "223456781",
"telegram_username": null,
"vk_user_id": null,
"created_at": "2026-09-29T15:02:47+00:00",
"unsubscribed_at": null,
"tags": ["bezahlt"],
"variables": []
}
],
"links": {
"first": "https://watbot.org/de/api/v1/getReferrals?page=1",
"last": "https://watbot.org/de/api/v1/getReferrals?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": […],
"path": "https://watbot.org/de/api/v1/getReferrals",
"per_page": 15,
"to": 1,
"total": 1
}
}
Die Referrals sind aufsteigend nach id sortiert. Die Seitengröße ist fest. Fragen Sie weitere Seiten mit dem Parameter page ab, bis links.next null ist; senden Sie contact_id und den Filter bei jeder Anfrage mit — die URLs in links enthalten sie nicht.
getCountReferrals
Zählt die Eingeladenen eines Kontakts: das ganze Netzwerk oder eine einzelne Ebene.
https://watbot.org/de/api/v1/getCountReferrals| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
contact_id |
Zahl | ja | Kontakt-ID |
level |
Zahl | nein | Nummer der Ebene, ab 1: 1 — vom Kontakt selbst Eingeladene, 2 — von ihnen Eingeladene und so weiter. Ohne den Parameter wird das ganze Netzwerk gezählt |
filters[tag_name] |
String oder Array von Strings | nein | Nur Eingeladene mit diesen Tags — mit allen gleichzeitig. Berücksichtigt werden die ersten 10 Tags |
Wie viele Personen in der zweiten Ebene sind:
curl "https://watbot.org/de/api/v1/getCountReferrals?contact_id=4815162&level=2" \
-H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
-H "Accept: application/json"
{
"data": {
"count": 7
}
}
Hat der Kontakt niemanden eingeladen, ist count gleich 0.
Hier steht die Zahl in data.count, bei getNumberOfContacts dagegen in count auf oberster Ebene, ohne data. Das ist historisch so und bleibt, damit bestehende Integrationen nicht brechen.