Die öffentliche REST-API von The-Y CRM ist für Server-zu-Server-Integrationen gedacht: Kontakte anlegen/lesen/aktualisieren und Ereignisse per Webhook empfangen. Authentifiziert wird mit einem API-Schlüssel.
Jede Anfrage braucht deinen API-Schlüssel im Header — entweder als Bearer-Token oder als X-API-Key:
Authorization: Bearer <DEIN_API_SCHLÜSSEL>
# oder
X-API-Key: <DEIN_API_SCHLÜSSEL>
Schlüssel erstellen: In der App unter Einstellungen → 🔌 Integrationen → „API-Schlüssel" → neuer Schlüssel. Der Schlüssel wird nur einmal angezeigt — sicher speichern (in The-Y wird nur ein Hash abgelegt). Der Schlüssel bindet an deinen Mandanten.
application/json (UTF-8).?limit= (Standard/Max serverseitig gedeckelt) und ?offset=; die Antwort enthält hasMore.429 Too Many Requests — mit Backoff erneut versuchen.{ "error": { "code": "..." } } mit passendem HTTP-Status.| Status | Bedeutung |
|---|---|
200 / 201 | OK / angelegt |
400 | Validierungsfehler (z. B. Pflichtfeld fehlt) |
401 | Schlüssel fehlt oder ungültig |
403 | Feature nicht freigeschaltet (Paid) oder fehlendes Recht |
404 | Ressource nicht gefunden |
429 | Rate-Limit überschritten |
Kontakte auflisten (paginiert). Optional Suche via ?q=.
# Anfrage curl "https://crm.the-y.at/api/ext/v1/contacts?limit=20&offset=0" \ -H "Authorization: Bearer $API_KEY" # Antwort { "data": [ { "id": "c_123", "name": "Maria Muster", "email": "maria@example.com", "phone": "+4366012345678", "company": "ACME" } ], "hasMore": false }
Einen Kontakt anlegen. Pflichtfeld ist mindestens ein Name oder eine E-Mail.
curl -X POST "https://crm.the-y.at/api/ext/v1/contacts" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "Maria Muster", "email": "maria@example.com", "phone": "+4366012345678", "company": "ACME" }'
# 201 Created
{ "data": { "id": "c_123", "name": "Maria Muster", "email": "maria@example.com" } }
Einen einzelnen Kontakt lesen.
curl "https://crm.the-y.at/api/ext/v1/contacts/c_123" \ -H "Authorization: Bearer $API_KEY"
Einen Kontakt teilweise aktualisieren — nur die gesendeten Felder werden geändert (bestehende bleiben erhalten).
curl -X PATCH "https://crm.the-y.at/api/ext/v1/contacts/c_123" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{ "phone": "+4366099999999" }'
Statt zu pollen, lässt du dir Ereignisse an deine URL schicken. Unter Einstellungen → 🔌 Integrationen → „Webhooks" legst du Ziel-URL, Secret und Ereignisse an (z. B. contact.created, contact.updated).
POST mit JSON-Payload an deine URL.X-Signature enthält einen HMAC-SHA256 über den rohen Body mit deinem Secret. Verifiziere ihn, um die Echtheit zu prüfen.2xx zurückgeben.# Signatur prüfen (Node.js)
const crypto = require("crypto");
const expected = crypto.createHmac("sha256", SECRET).update(rawBody).digest("hex");
if (expected !== req.headers["x-signature"]) return res.status(401).end();
Externe Systeme können über eine Token-URL Daten in The-Y anlegen/aktualisieren: POST /api/hooks/<token> (Token in den Integrationen erzeugt). Je Webhook wählst du das Zugriffs-Level: upsert (nur anlegen/aktualisieren, Löschungen ignoriert — Anti-Lock-in) oder full (inkl. Löschen).