Einträge
Die Methoden dieser Seite arbeiten mit den Einträgen einer Liste. Feldwerte werden im Objekt data übergeben: Der Schlüssel ist der slug des Feldes, der Wert hat das Format seines Typs. Die Formate aller Typen stehen auf der Seite Listen.
getListItems
Gibt die Einträge einer Liste seitenweise zurück — mit Filter nach Feldwerten und Sortierung.
https://watbot.org/de/api/v1/getListItems| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
schema_id |
String | ja | ID der Liste |
limit |
Ganzzahl | nein | Einträge pro Seite — 1 bis 1000, standardmäßig 50 |
page |
Ganzzahl | nein | Seitennummer, standardmäßig 1 |
order_by |
String | nein | Sortierung: slug des Feldes und Richtung, durch Komma getrennt — preis,desc. Die Richtung ist asc (aufsteigend, Standard) oder desc. Sortieren lässt sich auch nach created_at und updated_at. Ein anderes Feld oder eine andere Richtung — 422 |
filters |
Objekt | nein | Filter nach Feldwerten — siehe unten |
contact_id |
Ganzzahl | nein | Nur Einträge, die über ein Feld vom Typ contact mit diesem Kontakt verknüpft sind |
bot_id |
Ganzzahl | nein | Nur Einträge, die über ein Feld vom Typ bot mit diesem Bot verknüpft sind |
Zum Beispiel Latte ab 250 ml, die größten zuerst:
curl -X POST "https://watbot.org/de/api/v1/getListItems" \
-H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"schema_id": "6650a1f2c3d4e5f6a7b8c9d0",
"filters": {"volumen": ">=,250", "bezeichnung": "like,%latte%"},
"order_by": "volumen,desc",
"limit": 20
}'
{
"data": [
{
"id": "6650b7a1c3d4e5f6a7b8c9e1",
"created_at": "2026-10-03T08:05:00+00:00",
"updated_at": "2026-10-03T08:05:00+00:00",
"bezeichnung": "Latte mit Hafermilch",
"preis": 4.6,
"foto": {
"type": "image",
"mime_type": "image/jpeg",
"created_at": null,
"name": "latte.jpg",
"size": 0,
"storage": "url",
"caption": null,
"meta": {"width": null, "height": null, "duration": null, "codec": null},
"url": "https://example.com/karte/latte.jpg"
},
"verfuegbar": true,
"volumen": 350
}
],
"links": {
"first": "…/v1/getListItems?page=1",
"last": "…/v1/getListItems?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"path": "…/v1/getListItems",
"per_page": 20,
"to": 1,
"total": 1
}
}
{
"message": "The limit field must not be greater than 1000.",
"errors": {
"limit": ["The limit field must not be greater than 1000."]
}
}
Jeder Eintrag enthält id, created_at, updated_at und die Werte aller Felder der Liste, auch der ausgeblendeten und der verschlüsselten (entschlüsselt). Ist ein Eintrag mit einem Kontakt oder Bot verknüpft, enthält er zusätzlich contact_id oder bot_id.
Filter
In filters ist der Schlüssel der slug des Feldes und der Wert eines von beiden:
"Wert"oder einfach ein JSON-Wert — das Feld ist gleich dem Wert:{"bezeichnung": "Cappuccino"},{"volumen": 250},{"verfuegbar": true};"Operator,Wert"— ein Vergleich:{"volumen": ">=,250"}.
| Operator | Bedeutung |
|---|---|
= |
gleich |
!=, <> |
ungleich |
<, <=, >, >= |
kleiner, kleiner oder gleich, größer, größer oder gleich |
like |
passt zum Muster: % — beliebige Zeichen, _ — ein Zeichen. Groß- und Kleinschreibung spielen keine Rolle. Ohne % muss der ganze Wert übereinstimmen |
not like |
passt nicht zum Muster |
Ein Operator wird nur erkannt, wenn der Text vor dem ersten Komma ein Operator aus der Tabelle ist. Sonst ist der ganze String der Wert: {"bezeichnung": "Flat White, groß"} findet den Eintrag „Flat White, groß“. Beginnt der Wert selbst mit einem Operator und einem Komma, etwa ">, 5", geben Sie den Operator ausdrücklich an: "=,>, 5".
Bedingungen für verschiedene Felder werden mit „und“ verknüpft.
Wie der Wert verglichen wird, hängt vom Feldtyp ab:
| Feldtyp | Wert im Filter | Operatoren |
|---|---|---|
string |
Text. Eine JSON-Zahl wird als Text verglichen | alle |
number |
Eine Zahl: 250, "250", "4.5" |
alle außer like und not like |
money |
Ein Betrag in Haupteinheiten, wie beim Schreiben: 5 oder "4.99" |
alle außer like und not like |
bool |
true, false, "true", "false", 1, 0 |
=, != |
date |
Ein Datum: "2026-10-15". Verglichen wird der Tag in UTC: "2026-10-15" findet auch einen Eintrag vom 15. Oktober, 14:30, und "<=,2026-10-15" alles bis zum Ende dieses Tages |
alle außer like und not like |
datetime |
Datum und Uhrzeit: "2026-10-15 14:30" oder "2026-10-15T14:30:00+02:00". Eine Uhrzeit ohne Zeitzone gilt als UTC |
alle außer like und not like |
contact, bot |
ID des Kontakts oder Bots | alle außer like und not like |
Ein Muster für like und not like darf höchstens 255 Zeichen lang sein und höchstens 10 %-Zeichen enthalten; mehrere % hintereinander zählen als eines.
Ein Wert, der nicht zum Feld passt (Text in einem number-Feld, like bei einem Betrag, ein Objekt statt eines Wertes), — 422 mit einem Fehler an filters.<slug>. Ist filters kein Objekt, steht der Fehler an filters.
Eine Bedingung wird ohne Fehlermeldung übersprungen, wenn die Liste kein Feld mit diesem slug hat, das Feld verschlüsselt ist, es eine Datei oder ein Bild ist oder der Wert null ist.
In einer GET-Anfrage wird der Filter in der Adresse übergeben: filters[volumen]=>=,250. Sonderzeichen müssen kodiert werden: % als %25.
Seiten
Die Gesamtzahl der Einträge und Seiten steht in meta.total und meta.last_page, die Adresse der nächsten Seite in links.next (null auf der letzten). Ohne order_by ist die Reihenfolge der Einträge nicht festgelegt: Wenn Sie Seite für Seite durchgehen, geben Sie eine Sortierung an, zum Beispiel created_at.
Fehler:
- Die Liste existiert nicht —
404:{"message": "Schema not found", "error": "Schema not found", "errors": {"schema_id": ["Schema not found"]}}. - Die Liste gehört zu einem fremden Projekt —
403. - Ungültige Angaben in
order_byoderfilters—422.
addListItem
Legt einen Eintrag in einer Liste an.
https://watbot.org/de/api/v1/addListItem| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
schema_id |
String | ja | ID der Liste |
data |
Objekt | ja | Feldwerte: Der Schlüssel ist der slug, der Wert hat das Format des Feldtyps |
curl -X POST "https://watbot.org/de/api/v1/addListItem" \
-H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"schema_id": "6650a1f2c3d4e5f6a7b8c9d0",
"data": {
"bezeichnung": "Cappuccino",
"preis": 3.9,
"foto": {
"url": "https://example.com/karte/cappuccino.jpg",
"storage": "url",
"name": "cappuccino.jpg",
"type": "image"
},
"verfuegbar": true,
"volumen": 300
}
}'
{
"data": {
"id": "6650b7a1c3d4e5f6a7b8c9e2",
"created_at": "2026-10-03T08:10:00+00:00",
"updated_at": "2026-10-03T08:10:00+00:00",
"bezeichnung": "Cappuccino",
"preis": 3.9,
"foto": {
"type": "image",
"mime_type": null,
"created_at": null,
"name": "cappuccino.jpg",
"size": 0,
"storage": "url",
"caption": null,
"meta": {"width": null, "height": null, "duration": null, "codec": null},
"url": "https://example.com/karte/cappuccino.jpg"
},
"verfuegbar": true,
"volumen": 300
}
}
{
"message": "The data.bezeichnung field is required.",
"errors": {
"data.bezeichnung": ["The data.bezeichnung field is required."]
}
}
Besonderheiten und Fehler:
- Pflichtfelder (
is_required: true) müssen ausgefüllt sein, sonst422. Felder, die indatafehlen, bleiben leer. Schlüssel, die keine Felder der Liste sind, werden ignoriert. - Ein Wert vom falschen Typ —
422mit einem Fehler andata.<slug>: zum Beispiel Text in einemnumber-Feld oder die ID eines nicht existierenden Kontakts. - Ein fremder Kontakt oder fremder Bot in den Feldern
contactundbot—403. - Datumswerte kommen in der Antwort als String in UTC, wie bei
getListItems:"2026-10-15T00:00:00.000000Z". - Die Liste existiert nicht —
404, wie beigetListItems; die Liste gehört zu einem fremden Projekt —403.
updateListItem
Ändert die Feldwerte eines Eintrags. Felder, die in data fehlen, bleiben unverändert.
https://watbot.org/de/api/v1/updateListItem| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
item_id |
String | ja | ID des Eintrags |
data |
Objekt | ja | Neue Feldwerte: Der Schlüssel ist der slug, der Wert hat das Format des Feldtyps |
Zum Beispiel ein neuer Preis und die Kennzeichnung „nicht verfügbar“:
curl -X POST "https://watbot.org/de/api/v1/updateListItem" \
-H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"item_id": "6650b7a1c3d4e5f6a7b8c9e2",
"data": {"preis": 4.2, "verfuegbar": false}
}'
{
"data": {
"id": "6650b7a1c3d4e5f6a7b8c9e2",
"created_at": "2026-10-03T08:10:00+00:00",
"updated_at": "2026-10-03T09:30:00+00:00",
"bezeichnung": "Cappuccino",
"preis": 4.2,
"foto": {
"type": "image",
"mime_type": null,
"created_at": null,
"name": "cappuccino.jpg",
"size": 0,
"storage": "url",
"caption": null,
"meta": {"width": null, "height": null, "duration": null, "codec": null},
"url": "https://example.com/karte/cappuccino.jpg"
},
"verfuegbar": false,
"volumen": 300
}
}
{
"message": "Item not found",
"error": "Item not found",
"errors": {
"item_id": ["Item not found"]
}
}
Die Antwort enthält den ganzen Eintrag.
Besonderheiten und Fehler:
- Geprüft werden nur die übergebenen Felder. Ein Pflichtfeld darf nicht leer übergeben werden —
422. - Ein Feld leeren können Sie mit dieser Methode nicht:
nullund leere Werte werden übersprungen, das Feld behält seinen bisherigen Wert. - Datumswerte kommen in der Antwort als String in UTC, wie bei
getListItems. - Der Eintrag existiert nicht, wurde gelöscht oder seine Liste wurde gelöscht —
404. Der Fehlertext steht inerrorundmessage; aus Kompatibilitätsgründen auch inerrors.item_id. - Der Eintrag gehört zu einer Liste in einem fremden Projekt —
403.
deleteListItem
Löscht einen Eintrag.
https://watbot.org/de/api/v1/deleteListItem| Parameter | Typ | Pflicht | Beschreibung |
|---|---|---|---|
item_id |
String | ja | ID des Eintrags |
curl -X POST "https://watbot.org/de/api/v1/deleteListItem" \
-H "Authorization: Bearer IHR_API_SCHLÜSSEL" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"item_id": "6650b7a1c3d4e5f6a7b8c9e2"}'
{
"message": "Item not found",
"error": "Item not found",
"errors": {
"item_id": ["Item not found"]
}
}
Eine erfolgreiche Antwort hat den Code 204 und keinen Inhalt.
Fehler:
- Der Eintrag existiert nicht, wurde bereits gelöscht oder seine Liste wurde gelöscht —
404, wie beiupdateListItem. - Der Eintrag gehört zu einer Liste in einem fremden Projekt —
403.