{"openapi":"3.1.0","info":{"title":"Agile Kundensupport API","version":"1.0.0","summary":"Gespräche, Kontakte, Wissen, Help Center, Kennzahlen und Webhooks.","description":"Mit der API steuern Sie Agile Kundensupport aus Ihren eigenen Systemen: Gespräche lesen und beantworten, Kontakte pflegen, Wissen und Help Center verwalten, Kennzahlen abrufen und Ereignisse per Webhook empfangen. Jede Funktion der Oberfläche ist hier verfügbar.\n\n## Schnellstart\n\n1. In der App unter **Einstellungen › API und Integrationen** einen Schlüssel anlegen und die Rechte wählen. Der Schlüssel wird nur einmal angezeigt.\n2. Ersten Aufruf senden:\n\n```bash\ncurl https://kundensupport.agiledeveloper.de/api/v1/conversations?status=open \\\n  -H \"Authorization: Bearer agile_ks_IHR_SCHLUESSEL\"\n```\n\n3. Antworten:\n\n```bash\ncurl -X POST https://kundensupport.agiledeveloper.de/api/v1/conversations/GESPRAECHS_ID/messages \\\n  -H \"Authorization: Bearer agile_ks_IHR_SCHLUESSEL\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Idempotency-Key: $(uuidgen)\" \\\n  -d '{\"body\":\"Gern helfe ich Ihnen weiter.\"}'\n```\n\n## Authentifizierung\n\nJede Anfrage braucht `Authorization: Bearer <Schlüssel>`. Schlüssel beginnen mit `agile_ks_`, gehören zu genau einem Arbeitsbereich und handeln mit den Rechten der Person, die sie angelegt hat, eingeschränkt auf die gewählten Scopes (`conversations`, `contacts`, `knowledge`, `metrics`, `settings`, jeweils `:read` oder `:write`). Verlässt die Person das Team, wird der Schlüssel ungültig. Alternativ funktionieren OAuth-Zugangstoken (Scopes `read`, `write`), wie sie MCP-Clients erhalten.\n\n## Fehler\n\nFehler kommen als JSON `{\"error\": \"…\", \"code\": \"…\"}` mit passendem HTTP-Status: 400 Eingabe, 401 Schlüssel, 403 Rolle oder Scope, 404 nicht gefunden (auch fremde Daten), 409 Konflikt, 413 Datei zu groß, 422 Idempotenz-Konflikt, 429 Rate-Limit, 500 Serverfehler.\n\n## Pagination\n\nListen nehmen `limit` und `offset`. Die Antwort enthält `hasMore` bzw. `total`. Gespräche können zusätzlich mit dem Cursor `before` (Zeitpunkt der letzten Nachricht) geblättert werden.\n\n## Idempotenz\n\nBei POST können Sie `Idempotency-Key` mitsenden. Wiederholen Sie dieselbe Anfrage mit demselben Schlüssel innerhalb von 24 Stunden, erhalten Sie die ursprüngliche Antwort (Header `Idempotent-Replayed: true`), ohne dass etwas doppelt passiert.\n\n## Rate-Limits\n\n600 Anfragen je Minute und Schlüssel. Jede Antwort trägt `RateLimit-Limit`, `RateLimit-Remaining` und `RateLimit-Reset`. Bei Überschreitung kommt 429 mit `Retry-After`.\n\n## Webhooks\n\nUnter Einstellungen › API und Integrationen › Webhooks (oder per API) legen Sie Empfänger an. Jede Zustellung ist signiert: `Agile-Signature: t=1760000000,v1=<HMAC-SHA256 hex>` über `<t>.<Rohtext des Bodys>` mit Ihrem Geheimnis `whsec_…`. Prüfen Sie die Signatur und dass `t` nicht älter als 5 Minuten ist. Antworten Sie mit 2xx; sonst folgen bis zu 6 Versuche mit wachsendem Abstand. Das Protokoll sehen Sie in der Oberfläche.\n\n```js\nimport crypto from 'node:crypto';\nfunction pruefen(rohtext, header, geheimnis) {\n  const { t, v1 } = Object.fromEntries(header.split(',').map((p) => p.split('=')));\n  const soll = crypto.createHmac('sha256', geheimnis).update(t + '.' + rohtext).digest('hex');\n  return crypto.timingSafeEqual(Buffer.from(soll), Buffer.from(v1)) && Date.now() / 1000 - Number(t) < 300;\n}\n```\n\n## MCP für Claude und ChatGPT\n\nUnter `https://kundensupport.agiledeveloper.de/mcp` läuft ein MCP-Server (Streamable HTTP) mit OAuth-Anmeldung. Fügen Sie die Adresse in Claude oder ChatGPT als Konnektor hinzu, melden Sie sich an und stimmen Sie zu. Anleitung: [https://kundensupport.agiledeveloper.de/docs/mcp/](https://kundensupport.agiledeveloper.de/docs/mcp/).","contact":{"name":"Agile Developer","url":"https://agiledeveloper.de","email":"info@agiledeveloper.de"},"license":{"name":"Proprietär, Nutzung im Rahmen des Vertrags mit Agile Developer","url":"https://agiledeveloper.de/impressum"}},"servers":[{"url":"https://kundensupport.agiledeveloper.de","description":"Produktion (Server in Deutschland)"}],"paths":{"/api/v1/workspace":{"get":{"operationId":"getWorkspace","tags":["Arbeitsbereich"],"summary":"Arbeitsbereich abrufen","description":"Einstellungen und Zähler des Arbeitsbereichs, zu dem der Schlüssel gehört.\n\nBenötigter Scope: `settings:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"settings:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"$ref":"#/components/schemas/Arbeitsbereich"},"counts":{"type":"object"}}},"example":{"workspace":{},"counts":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"patch":{"operationId":"patchWorkspace","tags":["Arbeitsbereich"],"summary":"Einstellungen ändern","description":"Teilaktualisierung. Verschachtelte Objekte werden zusammengeführt. Rolle Admin.\n\nBenötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"websiteUrl":{"type":["string","null"]},"settings":{"type":"object"}}},"example":{"settings":{"greeting":{"de":"Hallo! Wobei dürfen wir helfen?"},"replyTime":"hour","ai":{"enabled":true}}}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"$ref":"#/components/schemas/Arbeitsbereich"}}},"example":{"workspace":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteWorkspace","tags":["Arbeitsbereich"],"summary":"Arbeitsbereich löschen","description":"Löscht alles endgültig. Rolle Inhaber, Name zur Bestätigung.\n\nBenötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["confirm"],"properties":{"confirm":{"type":"string"}}},"example":{"confirm":"Beispiel GmbH"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/rotate-identity-secret":{"post":{"operationId":"postRotateIdentitySecret","tags":["Arbeitsbereich"],"summary":"Identitätsgeheimnis erneuern","description":"Neues HMAC-Geheimnis für identify(). Alte user_hash-Werte werden ungültig. Rolle Inhaber.\n\nBenötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"workspace":{"$ref":"#/components/schemas/Arbeitsbereich"}}},"example":{"workspace":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/install-status":{"get":{"operationId":"getInstallStatus","tags":["Arbeitsbereich"],"summary":"Widget-Einbau prüfen","description":"Benötigter Scope: `settings:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"settings:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"installed":{"type":"boolean"},"seenAt":{"type":["string","null"]},"origin":{"type":["string","null"]}}},"example":{"installed":true,"seenAt":"2026-10-10T08:00:00Z","origin":"www.example.com"}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/members":{"get":{"operationId":"getMembers","tags":["Team"],"summary":"Team und Einladungen","description":"Benötigter Scope: `settings:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"settings:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"members":{"type":"array","items":{"$ref":"#/components/schemas/Mitglied"}},"invitations":{"type":"array","items":{"type":"object"}}}},"example":{"members":[{}],"invitations":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/members/{uid}":{"patch":{"operationId":"patchMembersByuid","tags":["Team"],"summary":"Rolle ändern","description":"Benötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["role"],"properties":{"role":{"type":"string","enum":["owner","admin","agent"]}}},"example":{"role":"admin"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteMembersByuid","tags":["Team"],"summary":"Mitglied entfernen","description":"Offene Zuweisungen werden gelöst, API-Schlüssel der Person ungültig.\n\nBenötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"uid","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/invitations":{"post":{"operationId":"postInvitations","tags":["Team"],"summary":"Einladen","description":"Sendet eine Einladung per E-Mail (14 Tage gültig).\n\nBenötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"},"role":{"type":"string","enum":["admin","agent"]}}},"example":{"email":"kollegin@example.com","role":"agent"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"invitation":{"type":"object"}}},"example":{"invitation":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/invitations/{id}":{"delete":{"operationId":"deleteInvitationsByid","tags":["Team"],"summary":"Einladung zurückziehen","description":"Benötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/notifications":{"get":{"operationId":"getNotifications","tags":["Team"],"summary":"Eigene Benachrichtigungen","description":"Benötigter Scope: `settings:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"settings:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"notifications":{"type":"array","items":{"type":"object"}},"unread":{"type":"integer"}}},"example":{"notifications":[{}],"unread":1}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/notifications/read":{"post":{"operationId":"postNotificationsRead","tags":["Team"],"summary":"Benachrichtigungen als gelesen markieren","description":"Benötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"}}}},"example":{}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/presence":{"get":{"operationId":"getPresence","tags":["Team"],"summary":"Wer ist online?","description":"Benötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"online":{"type":"array","items":{"type":"string","format":"uuid"}}}},"example":{"online":["3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10"]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations":{"get":{"operationId":"getConversations","tags":["Gespräche"],"summary":"Gespräche auflisten","description":"Posteingang mit Ansichten und Filtern. Sortierung: Priorität zuerst, dann nach sort.\n\nBenötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[{"name":"view","in":"query","required":false,"schema":{"type":"string","enum":["all","mine","unassigned","ai","mentions","contact"],"default":"all"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["open","pending","closed","all"],"default":"open"}},{"name":"tag","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"assignee","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"contact","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Volltext, Name, E-Mail oder #Nummer"},"description":"Volltext, Name, E-Mail oder #Nummer"},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["newest","oldest","waiting"],"default":"newest"}},{"name":"before","in":"query","required":false,"schema":{"type":"string","format":"date-time","description":"Cursor: nur Gespräche vor diesem Zeitpunkt"},"description":"Cursor: nur Gespräche vor diesem Zeitpunkt"},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Anzahl je Seite"},"description":"Anzahl je Seite"},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"description":"Überspringen"},"description":"Überspringen"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"conversations":{"type":"array","items":{"$ref":"#/components/schemas/Gespraech"}},"hasMore":{"type":"boolean"}}},"example":{"conversations":[{"id":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10","number":128,"status":"open","channel":"widget","assigneeId":null,"aiActive":false,"aiResolved":false,"handedOverAt":"2026-10-10T09:14:02Z","priority":false,"snoozedUntil":null,"subject":null,"preview":"Wie kann ich meine Rechnung als PDF herunterladen?","summary":"- Anliegen: Rechnung als PDF\n- Stand: offen","lastMessageAt":"2026-10-10T09:14:02Z","lastContactMessageAt":"2026-10-10T09:13:40Z","firstResponseAt":"2026-10-10T09:13:44Z","closedAt":null,"createdAt":"2026-10-10T09:13:30Z","unread":true,"rating":null,"ratingComment":null,"tags":[{"id":"0b8c1a7e-4c11-4c0c-8a1f-1d2e3f4a5b6c","name":"Abrechnung","color":"#9a4a06"}],"contact":{"id":"7d1e2f3a-1b2c-4d5e-8f90-a1b2c3d4e5f6","name":"Lena Schmidt","email":"lena@example.com","currentUrl":"https://example.com/preise","lastSeenAt":"2026-10-10T09:14:00Z","verified":false,"company":null}}],"hasMore":false}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/counts":{"get":{"operationId":"getConversationsCounts","tags":["Gespräche"],"summary":"Zähler je Ansicht","description":"Benötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object"},"example":{"all":4,"mine":2,"unassigned":1,"ai":3,"unread":2,"pending":1,"mentions":0}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/bulk":{"post":{"operationId":"postConversationsBulk","tags":["Gespräche"],"summary":"Mehrere Gespräche ändern","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100},"status":{"type":"string","enum":["open","pending","closed"]},"assigneeId":{"type":["string","null"],"format":"uuid"}}},"example":{"ids":["3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10"],"status":"closed"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"updated":{"type":"integer"}}},"example":{"updated":1}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}":{"get":{"operationId":"getConversationsByid","tags":["Gespräche"],"summary":"Gespräch mit Verlauf","description":"Benötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{"$ref":"#/components/schemas/Gespraech"},"messages":{"type":"array","items":{"$ref":"#/components/schemas/Nachricht"}}}},"example":{"conversation":{"id":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10","number":128,"status":"open","channel":"widget","assigneeId":null,"aiActive":false,"aiResolved":false,"handedOverAt":"2026-10-10T09:14:02Z","priority":false,"snoozedUntil":null,"subject":null,"preview":"Wie kann ich meine Rechnung als PDF herunterladen?","summary":"- Anliegen: Rechnung als PDF\n- Stand: offen","lastMessageAt":"2026-10-10T09:14:02Z","lastContactMessageAt":"2026-10-10T09:13:40Z","firstResponseAt":"2026-10-10T09:13:44Z","closedAt":null,"createdAt":"2026-10-10T09:13:30Z","unread":true,"rating":null,"ratingComment":null,"tags":[{"id":"0b8c1a7e-4c11-4c0c-8a1f-1d2e3f4a5b6c","name":"Abrechnung","color":"#9a4a06"}],"contact":{"id":"7d1e2f3a-1b2c-4d5e-8f90-a1b2c3d4e5f6","name":"Lena Schmidt","email":"lena@example.com","currentUrl":"https://example.com/preise","lastSeenAt":"2026-10-10T09:14:00Z","verified":false,"company":null}},"messages":[{"id":"5a6b7c8d-1e2f-4a3b-9c4d-5e6f7a8b9c0d","conversationId":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10","authorType":"user","author":{"id":"1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d","name":"Jonas Weber","color":"#0b5e5a"},"kind":"message","body":"Gern! Unter **Konto › Rechnungen** finden Sie alle Rechnungen als PDF.","attachments":[],"meta":{},"createdAt":"2026-10-10T09:15:10Z"}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"patch":{"operationId":"patchConversationsByid","tags":["Gespräche"],"summary":"Status, Zuweisung, Priorität","description":"Wer zuweist, beendet die KI für dieses Gespräch. Beim Schließen fragt das Widget nach einer Bewertung (falls aktiviert).\n\nBenötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","enum":["open","pending","closed"]},"snoozedUntil":{"type":["string","null"],"format":"date-time"},"assigneeId":{"type":["string","null"],"format":"uuid"},"priority":{"type":"boolean"},"subject":{"type":["string","null"]},"aiActive":{"type":"boolean"}}},"example":{"status":"pending","snoozedUntil":"2026-10-11T08:00:00+02:00"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"conversation":{"$ref":"#/components/schemas/Gespraech"}}},"example":{"conversation":{"id":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10","number":128,"status":"open","channel":"widget","assigneeId":null,"aiActive":false,"aiResolved":false,"handedOverAt":"2026-10-10T09:14:02Z","priority":false,"snoozedUntil":null,"subject":null,"preview":"Wie kann ich meine Rechnung als PDF herunterladen?","summary":"- Anliegen: Rechnung als PDF\n- Stand: offen","lastMessageAt":"2026-10-10T09:14:02Z","lastContactMessageAt":"2026-10-10T09:13:40Z","firstResponseAt":"2026-10-10T09:13:44Z","closedAt":null,"createdAt":"2026-10-10T09:13:30Z","unread":true,"rating":null,"ratingComment":null,"tags":[{"id":"0b8c1a7e-4c11-4c0c-8a1f-1d2e3f4a5b6c","name":"Abrechnung","color":"#9a4a06"}],"contact":{"id":"7d1e2f3a-1b2c-4d5e-8f90-a1b2c3d4e5f6","name":"Lena Schmidt","email":"lena@example.com","currentUrl":"https://example.com/preise","lastSeenAt":"2026-10-10T09:14:00Z","verified":false,"company":null}}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteConversationsByid","tags":["Gespräche"],"summary":"Gespräch löschen","description":"Endgültig. Rolle Admin.\n\nBenötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}/messages":{"post":{"operationId":"postConversationsByidMessages","tags":["Gespräche"],"summary":"Antworten oder Notiz schreiben","description":"kind=message geht an den Kunden (Widget, bei Abwesenheit E-Mail), kind=note bleibt intern. Antworten ohne Bearbeiter weisen das Gespräch dem Absender zu.\n\nBenötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"body":{"type":"string","maxLength":20000},"kind":{"type":"string","enum":["message","note"],"default":"message"},"attachments":{"type":"array","items":{"type":"string","format":"uuid"},"description":"IDs aus POST /uploads"},"mentions":{"type":"array","items":{"type":"string","format":"uuid"}},"macroId":{"type":"string","format":"uuid"},"closeAfter":{"type":"boolean"}}},"example":{"body":"Gern! Unter **Konto › Rechnungen** finden Sie alle Rechnungen als PDF.","kind":"message"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"$ref":"#/components/schemas/Nachricht"}}},"example":{"message":{"id":"5a6b7c8d-1e2f-4a3b-9c4d-5e6f7a8b9c0d","conversationId":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10","authorType":"user","author":{"id":"1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d","name":"Jonas Weber","color":"#0b5e5a"},"kind":"message","body":"Gern! Unter **Konto › Rechnungen** finden Sie alle Rechnungen als PDF.","attachments":[],"meta":{},"createdAt":"2026-10-10T09:15:10Z"}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}/read":{"post":{"operationId":"postConversationsByidRead","tags":["Gespräche"],"summary":"Als gelesen markieren","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}/typing":{"post":{"operationId":"postConversationsByidTyping","tags":["Gespräche"],"summary":"Tipp-Anzeige senden","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["typing"],"properties":{"typing":{"type":"boolean"},"kind":{"type":"string","enum":["message","note"]}}},"example":{"typing":true}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}/tags":{"post":{"operationId":"postConversationsByidTags","tags":["Gespräche"],"summary":"Schlagwort hinzufügen","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tagId":{"type":"string","format":"uuid"},"name":{"type":"string","description":"Legt das Schlagwort bei Bedarf an"}}},"example":{"name":"Abrechnung"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"tag":{"$ref":"#/components/schemas/Schlagwort"}}},"example":{"tag":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}/tags/{tagId}":{"delete":{"operationId":"deleteConversationsByidTagsBytagId","tags":["Gespräche"],"summary":"Schlagwort entfernen","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"tagId","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}/ai/suggest":{"post":{"operationId":"postConversationsByidAiSuggest","tags":["KI"],"summary":"Antwortvorschlag","description":"Entwurf aus Wissensbasis und Verlauf. Wird nicht gesendet.\n\nBenötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"},"sources":{"type":"array","items":{"type":"object"}}}},"example":{"text":"Gern helfe ich Ihnen …","sources":[{"title":"Rechnungen","url":"https://example.com/hilfe/rechnungen"}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}/ai/summarize":{"post":{"operationId":"postConversationsByidAiSummarize","tags":["KI"],"summary":"Zusammenfassen","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"summary":{"type":"string"}}},"example":{"summary":"text"}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/conversations/{id}/ai/article":{"post":{"operationId":"postConversationsByidAiArticle","tags":["KI"],"summary":"Artikelentwurf aus Gespräch","description":"Legt einen Help-Center-Entwurf ohne personenbezogene Daten an.\n\nBenötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"articleId":{"type":"string","format":"uuid"},"title":{"type":"string"},"excerpt":{"type":"string"},"body":{"type":"string"}}},"example":{"articleId":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10","title":"text","excerpt":"text","body":"text"}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/ai/rewrite":{"post":{"operationId":"postAiRewrite","tags":["KI"],"summary":"Text umformulieren","description":"Benötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["text","mode"],"properties":{"text":{"type":"string"},"mode":{"type":"string","enum":["freundlicher","kuerzer","formeller","korrigieren","englisch","deutsch"]}}},"example":{"text":"geht nicht, bitte neu starten","mode":"freundlicher"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string"}}},"example":{"text":"text"}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/search":{"get":{"operationId":"getSearch","tags":["Gespräche"],"summary":"Suche über alles","description":"Benötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","description":"Suchbegriff"},"description":"Suchbegriff"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"type":"array","items":{"type":"object"}},"articles":{"type":"array","items":{"type":"object"}},"conversations":{"type":"array","items":{"type":"object"}}}},"example":{"contacts":[{}],"articles":[{}],"conversations":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/uploads":{"post":{"operationId":"postUploads","tags":["Gespräche"],"summary":"Datei hochladen","description":"multipart/form-data mit einem Feld file (höchstens 15 MB). Die ID danach in attachments einer Nachricht angeben.\n\nBenötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"attachment":{"$ref":"#/components/schemas/Anhang"}}},"example":{"attachment":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/tags":{"get":{"operationId":"getTags","tags":["Schlagworte und Vorlagen"],"summary":"Schlagworte","description":"Benötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"tags":{"type":"array","items":{"$ref":"#/components/schemas/Schlagwort"}}}},"example":{"tags":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"post":{"operationId":"postTags","tags":["Schlagworte und Vorlagen"],"summary":"Schlagwort anlegen","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"color":{"type":"string"}}},"example":{"name":"Rückruf","color":"#2a5078"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"tag":{"$ref":"#/components/schemas/Schlagwort"}}},"example":{"tag":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/tags/{id}":{"patch":{"operationId":"patchTagsByid","tags":["Schlagworte und Vorlagen"],"summary":"Schlagwort ändern","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"color":{"type":"string"}}},"example":{"color":"#5a4785"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"tag":{"$ref":"#/components/schemas/Schlagwort"}}},"example":{"tag":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteTagsByid","tags":["Schlagworte und Vorlagen"],"summary":"Schlagwort löschen","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/macros":{"get":{"operationId":"getMacros","tags":["Schlagworte und Vorlagen"],"summary":"Gespeicherte Antworten","description":"Benötigter Scope: `conversations:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"conversations:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"macros":{"type":"array","items":{"$ref":"#/components/schemas/Vorlage"}}}},"example":{"macros":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"post":{"operationId":"postMacros","tags":["Schlagworte und Vorlagen"],"summary":"Gespeicherte Antwort anlegen","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title","body"],"properties":{"title":{"type":"string"},"body":{"type":"string"},"closeAfter":{"type":"boolean"}}},"example":{"title":"Versandzeit","body":"Hallo {{vorname}}, der Versand dauert 2 bis 3 Werktage."}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"macro":{"$ref":"#/components/schemas/Vorlage"}}},"example":{"macro":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/macros/{id}":{"patch":{"operationId":"patchMacrosByid","tags":["Schlagworte und Vorlagen"],"summary":"Gespeicherte Antwort ändern","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"body":{"type":"string"},"closeAfter":{"type":"boolean"}}},"example":{"closeAfter":true}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"macro":{"$ref":"#/components/schemas/Vorlage"}}},"example":{"macro":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteMacrosByid","tags":["Schlagworte und Vorlagen"],"summary":"Gespeicherte Antwort löschen","description":"Benötigter Scope: `conversations:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"conversations:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/contacts":{"get":{"operationId":"getContacts","tags":["Kontakte"],"summary":"Kontakte auflisten","description":"Benötigter Scope: `contacts:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"contacts:read","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}},{"name":"segment","in":"query","required":false,"schema":{"type":"string","enum":["all","identified","with_email","active"]}},{"name":"company","in":"query","required":false,"schema":{"type":"string","format":"uuid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":200,"default":50}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"description":"Überspringen"},"description":"Überspringen"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"contacts":{"type":"array","items":{"$ref":"#/components/schemas/Kontakt"}},"total":{"type":"integer"}}},"example":{"contacts":[{"id":"7d1e2f3a-1b2c-4d5e-8f90-a1b2c3d4e5f6","name":"Lena Schmidt","email":"lena@example.com","phone":null,"externalId":"kunde-4711","verified":true,"attributes":{"plan":"Team"},"language":"de","browser":"Firefox","os":"macOS","device":"Desktop","timezone":"Europe/Berlin","currentUrl":"https://example.com/preise","currentTitle":"Preise","referrer":null,"firstSeenAt":"2026-10-01T08:00:00Z","lastSeenAt":"2026-10-10T09:14:00Z","createdAt":"2026-10-01T08:00:00Z","company":{"id":"9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b","name":"Beispiel GmbH","domain":"example.com"}}],"total":1}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/contacts/{id}":{"get":{"operationId":"getContactsByid","tags":["Kontakte"],"summary":"Kontakt mit Seitenaufrufen und Gesprächen","description":"Benötigter Scope: `contacts:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"contacts:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"contact":{"$ref":"#/components/schemas/Kontakt"},"pageViews":{"type":"array","items":{"type":"object"}},"conversations":{"type":"array","items":{"type":"object"}}}},"example":{"contact":{"id":"7d1e2f3a-1b2c-4d5e-8f90-a1b2c3d4e5f6","name":"Lena Schmidt","email":"lena@example.com","phone":null,"externalId":"kunde-4711","verified":true,"attributes":{"plan":"Team"},"language":"de","browser":"Firefox","os":"macOS","device":"Desktop","timezone":"Europe/Berlin","currentUrl":"https://example.com/preise","currentTitle":"Preise","referrer":null,"firstSeenAt":"2026-10-01T08:00:00Z","lastSeenAt":"2026-10-10T09:14:00Z","createdAt":"2026-10-01T08:00:00Z","company":{"id":"9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b","name":"Beispiel GmbH","domain":"example.com"}},"pageViews":[{}],"conversations":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"patch":{"operationId":"patchContactsByid","tags":["Kontakte"],"summary":"Kontakt ändern","description":"Benötigter Scope: `contacts:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"contacts:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"companyName":{"type":["string","null"]},"attributes":{"type":"object"}}},"example":{"name":"Lena Schmidt","companyName":"Beispiel GmbH"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"contact":{"$ref":"#/components/schemas/Kontakt"}}},"example":{"contact":{"id":"7d1e2f3a-1b2c-4d5e-8f90-a1b2c3d4e5f6","name":"Lena Schmidt","email":"lena@example.com","phone":null,"externalId":"kunde-4711","verified":true,"attributes":{"plan":"Team"},"language":"de","browser":"Firefox","os":"macOS","device":"Desktop","timezone":"Europe/Berlin","currentUrl":"https://example.com/preise","currentTitle":"Preise","referrer":null,"firstSeenAt":"2026-10-01T08:00:00Z","lastSeenAt":"2026-10-10T09:14:00Z","createdAt":"2026-10-01T08:00:00Z","company":{"id":"9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b","name":"Beispiel GmbH","domain":"example.com"}}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteContactsByid","tags":["Kontakte"],"summary":"Kontakt löschen (DSGVO Art. 17)","description":"Löscht Kontakt, Gespräche, Seitenaufrufe und Dateien endgültig. Rolle Admin.\n\nBenötigter Scope: `contacts:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"contacts:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"deletedFiles":{"type":"integer"}}},"example":{"ok":true,"deletedFiles":1}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/contacts/{id}/export":{"get":{"operationId":"getContactsByidExport","tags":["Kontakte"],"summary":"Datenexport (DSGVO Art. 15/20)","description":"Alle Daten als JSON. Rolle Admin.\n\nBenötigter Scope: `contacts:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"contacts:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object"},"example":{}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/companies":{"get":{"operationId":"getCompanies","tags":["Kontakte"],"summary":"Unternehmen","description":"Benötigter Scope: `contacts:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"contacts:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"companies":{"type":"array","items":{"type":"object"}}}},"example":{"companies":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/sources":{"get":{"operationId":"getKnowledgeSources","tags":["Wissen"],"summary":"Wissensquellen","description":"Benötigter Scope: `knowledge:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"knowledge:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"sources":{"type":"array","items":{"$ref":"#/components/schemas/Wissensquelle"}},"articles":{"type":"object"}}},"example":{"sources":[{}],"articles":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"post":{"operationId":"postKnowledgeSources","tags":["Wissen"],"summary":"Website oder Text hinzufügen","description":"Wird im Hintergrund eingelesen; Fortschritt über GET. Rolle Admin.\n\nBenötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["kind","url"],"properties":{"kind":{"const":"website"},"url":{"type":"string"},"product":{"type":"string"}}},{"type":"object","required":["kind","url"],"properties":{"kind":{"const":"openapi"},"url":{"type":"string","description":"Adresse einer OpenAPI-JSON-Datei"},"product":{"type":"string"}}},{"type":"object","required":["kind","title","content"],"properties":{"kind":{"const":"text"},"title":{"type":"string"},"content":{"type":"string"}}}]},"example":{"kind":"website","url":"https://example.com"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/Wissensquelle"}}},"example":{"source":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/files":{"post":{"operationId":"postKnowledgeFiles","tags":["Wissen"],"summary":"Dokument hochladen","description":"PDF, DOCX, TXT, Markdown, HTML oder CSV (höchstens 20 MB), multipart Feld file. Rolle Admin.\n\nBenötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}}}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/Wissensquelle"}}},"example":{"source":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/sources/{id}":{"patch":{"operationId":"patchKnowledgeSourcesByid","tags":["Wissen"],"summary":"Quelle aktivieren oder umbenennen","description":"Benötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"title":{"type":"string"}}},"example":{"enabled":false}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/Wissensquelle"}}},"example":{"source":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteKnowledgeSourcesByid","tags":["Wissen"],"summary":"Quelle löschen","description":"Benötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/sources/{id}/sync":{"post":{"operationId":"postKnowledgeSourcesByidSync","tags":["Wissen"],"summary":"Quelle neu einlesen","description":"Benötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"$ref":"#/components/schemas/Wissensquelle"}}},"example":{"source":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/sources/{id}/pages":{"get":{"operationId":"getKnowledgeSourcesByidPages","tags":["Wissen"],"summary":"Eingelesene Seiten","description":"Benötigter Scope: `knowledge:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"knowledge:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"pages":{"type":"array","items":{"type":"object"}}}},"example":{"pages":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/pages/{id}":{"delete":{"operationId":"deleteKnowledgePagesByid","tags":["Wissen"],"summary":"Einzelne Seite entfernen","description":"Benötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/test":{"post":{"operationId":"postKnowledgeTest","tags":["Wissen"],"summary":"KI testen","description":"Was würde der KI-Agent antworten? Ohne Gespräch.\n\nBenötigter Scope: `knowledge:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"knowledge:read","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["question"],"properties":{"question":{"type":"string"},"product":{"type":"string","description":"Produkt, aus dem gefragt wird (bevorzugte Quellen)"}}},"example":{"question":"Wie lange dauert der Versand?"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"handoff":{"type":"boolean"},"reason":{"type":["string","null"]},"answer":{"type":["string","null"]},"sources":{"type":"array","items":{"type":"object"}},"confidence":{"type":"number"}}},"example":{"handoff":true,"reason":"text","answer":"text","sources":[{}],"confidence":1}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/gaps":{"get":{"operationId":"getKnowledgeGaps","tags":["Wissen"],"summary":"Wissenslücken","description":"Fragen, die die KI nicht beantworten konnte.\n\nBenötigter Scope: `knowledge:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"knowledge:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"gaps":{"type":"array","items":{"type":"object"}}}},"example":{"gaps":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/knowledge/gaps/{id}/resolve":{"post":{"operationId":"postKnowledgeGapsByidResolve","tags":["Wissen"],"summary":"Wissenslücke erledigt","description":"Benötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/collections":{"get":{"operationId":"getCollections","tags":["Help Center"],"summary":"Themen","description":"Benötigter Scope: `knowledge:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"knowledge:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"collections":{"type":"array","items":{"$ref":"#/components/schemas/Thema"}}}},"example":{"collections":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"post":{"operationId":"postCollections","tags":["Help Center"],"summary":"Thema anlegen","description":"Benötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name"],"properties":{"name":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"position":{"type":"integer"},"product":{"type":["string","null"],"description":"Produkt, zu dem die Artikel gehören"}}},"example":{"name":"Konto und Abrechnung","icon":"karte"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"collection":{"$ref":"#/components/schemas/Thema"}}},"example":{"collection":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/collections/{id}":{"patch":{"operationId":"patchCollectionsByid","tags":["Help Center"],"summary":"Thema ändern","description":"Benötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string"},"position":{"type":"integer"}}},"example":{"position":1}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"collection":{"$ref":"#/components/schemas/Thema"}}},"example":{"collection":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteCollectionsByid","tags":["Help Center"],"summary":"Thema löschen","description":"Artikel bleiben ohne Thema erhalten.\n\nBenötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/articles":{"get":{"operationId":"getArticles","tags":["Help Center"],"summary":"Artikel auflisten","description":"Benötigter Scope: `knowledge:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"knowledge:read","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"articles":{"type":"array","items":{"$ref":"#/components/schemas/Artikel"}}}},"example":{"articles":[{"id":"2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e","collectionId":null,"title":"Rechnung als PDF herunterladen","slug":"rechnung-als-pdf-herunterladen","excerpt":"So finden Sie alle Rechnungen.","body":"## Schritte\n1. Konto öffnen\n2. Rechnungen wählen","status":"published","authorId":null,"views":42,"helpfulYes":9,"helpfulNo":1,"position":0,"publishedAt":"2026-10-01T10:00:00Z","createdAt":"2026-10-01T10:00:00Z","updatedAt":"2026-10-05T10:00:00Z"}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"post":{"operationId":"postArticles","tags":["Help Center"],"summary":"Artikel anlegen","description":"Veröffentlichte Artikel lernt die KI automatisch.\n\nBenötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["title"],"properties":{"title":{"type":"string"},"excerpt":{"type":"string"},"body":{"type":"string"},"collectionId":{"type":["string","null"],"format":"uuid"},"status":{"type":"string","enum":["draft","published"]},"slug":{"type":"string"}}},"example":{"title":"Rechnung als PDF herunterladen","body":"## Schritte\n1. Konto öffnen","status":"published"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"article":{"$ref":"#/components/schemas/Artikel"}}},"example":{"article":{"id":"2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e","collectionId":null,"title":"Rechnung als PDF herunterladen","slug":"rechnung-als-pdf-herunterladen","excerpt":"So finden Sie alle Rechnungen.","body":"## Schritte\n1. Konto öffnen\n2. Rechnungen wählen","status":"published","authorId":null,"views":42,"helpfulYes":9,"helpfulNo":1,"position":0,"publishedAt":"2026-10-01T10:00:00Z","createdAt":"2026-10-01T10:00:00Z","updatedAt":"2026-10-05T10:00:00Z"}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/articles/{id}":{"get":{"operationId":"getArticlesByid","tags":["Help Center"],"summary":"Artikel abrufen","description":"Benötigter Scope: `knowledge:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"knowledge:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"article":{"$ref":"#/components/schemas/Artikel"}}},"example":{"article":{"id":"2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e","collectionId":null,"title":"Rechnung als PDF herunterladen","slug":"rechnung-als-pdf-herunterladen","excerpt":"So finden Sie alle Rechnungen.","body":"## Schritte\n1. Konto öffnen\n2. Rechnungen wählen","status":"published","authorId":null,"views":42,"helpfulYes":9,"helpfulNo":1,"position":0,"publishedAt":"2026-10-01T10:00:00Z","createdAt":"2026-10-01T10:00:00Z","updatedAt":"2026-10-05T10:00:00Z"}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"patch":{"operationId":"patchArticlesByid","tags":["Help Center"],"summary":"Artikel ändern","description":"Benötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string"},"excerpt":{"type":"string"},"body":{"type":"string"},"collectionId":{"type":["string","null"]},"status":{"type":"string","enum":["draft","published"]},"slug":{"type":"string"}}},"example":{"status":"published"}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"article":{"$ref":"#/components/schemas/Artikel"}}},"example":{"article":{"id":"2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e","collectionId":null,"title":"Rechnung als PDF herunterladen","slug":"rechnung-als-pdf-herunterladen","excerpt":"So finden Sie alle Rechnungen.","body":"## Schritte\n1. Konto öffnen\n2. Rechnungen wählen","status":"published","authorId":null,"views":42,"helpfulYes":9,"helpfulNo":1,"position":0,"publishedAt":"2026-10-01T10:00:00Z","createdAt":"2026-10-01T10:00:00Z","updatedAt":"2026-10-05T10:00:00Z"}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteArticlesByid","tags":["Help Center"],"summary":"Artikel löschen","description":"Rolle Admin.\n\nBenötigter Scope: `knowledge:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"knowledge:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/metrics":{"get":{"operationId":"getMetrics","tags":["Kennzahlen"],"summary":"Kennzahlen","description":"Zeiten in Sekunden (Median, P90). KI-Lösungsquote: Gespräche mit KI-Antwort ohne Übergabe.\n\nBenötigter Scope: `metrics:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"metrics:read","parameters":[{"name":"days","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":365,"default":30}}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object"},"example":{"days":30,"conversations":214,"closed":198,"firstResponseMedian":95,"resolutionMedian":1800,"ai":{"involved":160,"resolved":118,"rate":73.8},"csat":{"count":41,"average":4.6,"positiveRate":92.7}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/webhooks":{"get":{"operationId":"getWebhooks","tags":["Webhooks"],"summary":"Webhooks","description":"Rolle Admin.\n\nBenötigter Scope: `settings:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"settings:read","parameters":[],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"webhooks":{"type":"array","items":{"$ref":"#/components/schemas/Webhook"}},"events":{"type":"array","items":{"type":"string"}}}},"example":{"webhooks":[{}],"events":["text"]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"post":{"operationId":"postWebhooks","tags":["Webhooks"],"summary":"Webhook anlegen","description":"Antwort enthält das Signaturgeheimnis (nur einmal). Rolle Admin.\n\nBenötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"type":"string","description":"https-Adresse"},"description":{"type":"string"},"events":{"type":"array","items":{"type":"string","enum":["conversation.created","conversation.updated","conversation.assigned","conversation.closed","conversation.handed_over","conversation.rated","message.created","note.created","contact.created","contact.updated","contact.deleted","article.published","*"]}},"enabled":{"type":"boolean"}}},"example":{"url":"https://example.com/hooks/support","events":["conversation.created","message.created"]}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"webhook":{"$ref":"#/components/schemas/Webhook"},"secret":{"type":"string"}}},"example":{"webhook":{},"secret":"text"}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/webhooks/{id}":{"patch":{"operationId":"patchWebhooksByid","tags":["Webhooks"],"summary":"Webhook ändern","description":"Benötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string"},"description":{"type":"string"},"events":{"type":"array","items":{"type":"string"}},"enabled":{"type":"boolean"}}},"example":{"enabled":false}}}},"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"webhook":{"$ref":"#/components/schemas/Webhook"}}},"example":{"webhook":{}}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}},"delete":{"operationId":"deleteWebhooksByid","tags":["Webhooks"],"summary":"Webhook löschen","description":"Benötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/webhooks/{id}/rotate-secret":{"post":{"operationId":"postWebhooksByidRotateSecret","tags":["Webhooks"],"summary":"Signaturgeheimnis erneuern","description":"Benötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"secret":{"type":"string"}}},"example":{"secret":"text"}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/webhooks/{id}/test":{"post":{"operationId":"postWebhooksByidTest","tags":["Webhooks"],"summary":"Testereignis senden","description":"Benötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"deliveryId":{"type":"string","format":"uuid"}}},"example":{"deliveryId":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10"}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/webhooks/{id}/deliveries":{"get":{"operationId":"getWebhooksByidDeliveries","tags":["Webhooks"],"summary":"Zustellprotokoll","description":"Benötigter Scope: `settings:read`.","security":[{"apiKey":[]},{"oauth2":["read"]}],"x-scope":"settings:read","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"deliveries":{"type":"array","items":{"type":"object"}}}},"example":{"deliveries":[{}]}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}},"/api/v1/webhooks/deliveries/{id}/redeliver":{"post":{"operationId":"postWebhooksDeliveriesByidRedeliver","tags":["Webhooks"],"summary":"Zustellung wiederholen","description":"Benötigter Scope: `settings:write`.","security":[{"apiKey":[]},{"oauth2":["write"]}],"x-scope":"settings:write","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","format":"uuid"},"description":"ID (UUID)"},{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string","maxLength":200},"description":"Gleiche Anfrage innerhalb von 24 Stunden liefert dieselbe Antwort, ohne erneut auszuführen."}],"responses":{"200":{"description":"Erfolg","headers":{"RateLimit-Limit":{"schema":{"type":"integer"}},"RateLimit-Remaining":{"schema":{"type":"integer"}},"RateLimit-Reset":{"schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean","const":true}}},"example":{"ok":true}}}},"400":{"description":"Ungültige Eingabe","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Die Nachricht ist leer.","code":"empty"}}}},"401":{"description":"Kein oder ungültiger Schlüssel","headers":{"WWW-Authenticate":{"schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Der Zugangsschlüssel ist ungültig, abgelaufen oder widerrufen.","code":"invalid_token"}}}},"403":{"description":"Rolle oder Scope reicht nicht","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"},"example":{"error":"Dem Zugang fehlt die Berechtigung contacts:write.","code":"insufficient_scope"}}}},"404":{"description":"Nicht gefunden (auch bei fremden Arbeitsbereichen)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}},"429":{"description":"Zu viele Anfragen (600 je Minute und Schlüssel)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Fehler"}}}}}}}},"tags":[{"name":"Arbeitsbereich","description":"Einstellungen von Widget, KI, Bürozeiten und Help Center."},{"name":"Team","description":"Mitglieder, Rollen, Einladungen."},{"name":"Gespräche","description":"Posteingang: lesen, antworten, Notizen, Zuweisung, Status."},{"name":"KI","description":"Antwortvorschläge, Zusammenfassungen, Umformulieren."},{"name":"Schlagworte und Vorlagen","description":"Schlagworte und gespeicherte Antworten."},{"name":"Kontakte","description":"Besucher und Kunden, inklusive DSGVO-Export und Löschung."},{"name":"Wissen","description":"Quellen der KI: Websites, Dokumente, Texte."},{"name":"Help Center","description":"Themen und Artikel."},{"name":"Kennzahlen","description":"Antwortzeiten, KI-Lösungsquote, Zufriedenheit."},{"name":"Webhooks","description":"Signierte Ereignisse an Ihre Systeme."}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"agile_ks_…","description":"API-Schlüssel aus Einstellungen › API und Integrationen. Header: `Authorization: Bearer agile_ks_…`"},"oauth2":{"type":"oauth2","description":"OAuth 2.1 mit PKCE (S256) und dynamischer Client-Registrierung, z. B. für MCP-Clients.","flows":{"authorizationCode":{"authorizationUrl":"https://kundensupport.agiledeveloper.de/oauth/authorize","tokenUrl":"https://kundensupport.agiledeveloper.de/oauth/token","refreshUrl":"https://kundensupport.agiledeveloper.de/oauth/token","scopes":{"read":"Lesen","write":"Lesen und schreiben"}}}}},"schemas":{"Fehler":{"type":"object","required":["error"],"properties":{"error":{"type":"string","description":"Verständliche Fehlermeldung auf Deutsch"},"code":{"type":"string","description":"Maschinenlesbarer Code, z. B. not_found, validation, insufficient_scope, rate_limited"},"field":{"type":"string","description":"Betroffenes Feld bei Validierungsfehlern"}},"example":{"error":"Gespräch nicht gefunden","code":"not_found"}},"Schlagwort":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string","description":"Farbe als #RRGGBB"},"uses":{"type":"integer"}}},"Anhang":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"mime":{"type":"string"},"size":{"type":"integer"},"url":{"type":"string","description":"Relativer Pfad zur Datei (unvorhersagbar)"},"width":{"type":["integer","null"]},"height":{"type":["integer","null"]}}},"Gespraech":{"type":"object","description":"Ein Gespräch mit einem Kontakt.","properties":{"id":{"type":"string","format":"uuid"},"number":{"type":"integer","description":"Fortlaufende Nummer im Arbeitsbereich (#128)"},"status":{"type":"string","enum":["open","pending","closed"],"description":"offen, wartend, erledigt"},"channel":{"type":"string","enum":["widget","email"]},"assigneeId":{"type":["string","null"],"format":"uuid"},"aiActive":{"type":"boolean","description":"Der KI-Agent beantwortet gerade"},"aiResolved":{"type":"boolean","description":"Besucher hat bestätigt, dass die KI geholfen hat"},"handedOverAt":{"type":["string","null"],"format":"date-time"},"priority":{"type":"boolean"},"snoozedUntil":{"type":["string","null"],"format":"date-time"},"subject":{"type":["string","null"]},"preview":{"type":["string","null"]},"summary":{"type":["string","null"],"description":"KI-Zusammenfassung"},"lastMessageAt":{"type":"string","format":"date-time"},"lastContactMessageAt":{"type":["string","null"],"format":"date-time"},"firstResponseAt":{"type":["string","null"],"format":"date-time"},"closedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"unread":{"type":"boolean"},"rating":{"type":["integer","null"],"minimum":1,"maximum":5},"ratingComment":{"type":["string","null"]},"tags":{"type":"array","items":{"$ref":"#/components/schemas/Schlagwort"}},"contact":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":["string","null"]},"email":{"type":["string","null"]},"currentUrl":{"type":["string","null"]},"lastSeenAt":{"type":"string","format":"date-time"},"verified":{"type":"boolean"},"company":{"type":["string","null"]}}}},"example":{"id":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10","number":128,"status":"open","channel":"widget","assigneeId":null,"aiActive":false,"aiResolved":false,"handedOverAt":"2026-10-10T09:14:02Z","priority":false,"snoozedUntil":null,"subject":null,"preview":"Wie kann ich meine Rechnung als PDF herunterladen?","summary":"- Anliegen: Rechnung als PDF\n- Stand: offen","lastMessageAt":"2026-10-10T09:14:02Z","lastContactMessageAt":"2026-10-10T09:13:40Z","firstResponseAt":"2026-10-10T09:13:44Z","closedAt":null,"createdAt":"2026-10-10T09:13:30Z","unread":true,"rating":null,"ratingComment":null,"tags":[{"id":"0b8c1a7e-4c11-4c0c-8a1f-1d2e3f4a5b6c","name":"Abrechnung","color":"#9a4a06"}],"contact":{"id":"7d1e2f3a-1b2c-4d5e-8f90-a1b2c3d4e5f6","name":"Lena Schmidt","email":"lena@example.com","currentUrl":"https://example.com/preise","lastSeenAt":"2026-10-10T09:14:00Z","verified":false,"company":null}}},"Nachricht":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"conversationId":{"type":"string","format":"uuid"},"authorType":{"type":"string","enum":["contact","user","ai","system"]},"author":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"color":{"type":"string"}}},"kind":{"type":"string","enum":["message","note","event"],"description":"Nachricht, interne Notiz oder Verlaufseintrag"},"body":{"type":"string","description":"Markdown"},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/Anhang"}},"meta":{"type":"object","description":"Bei KI-Antworten: sources, confidence; bei Notizen: mentions"},"createdAt":{"type":"string","format":"date-time"}},"example":{"id":"5a6b7c8d-1e2f-4a3b-9c4d-5e6f7a8b9c0d","conversationId":"3f6c1f0e-9d0b-4c55-9a43-2b3c8d1e7a10","authorType":"user","author":{"id":"1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d","name":"Jonas Weber","color":"#0b5e5a"},"kind":"message","body":"Gern! Unter **Konto › Rechnungen** finden Sie alle Rechnungen als PDF.","attachments":[],"meta":{},"createdAt":"2026-10-10T09:15:10Z"}},"Kontakt":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":["string","null"]},"email":{"type":["string","null"]},"phone":{"type":["string","null"]},"externalId":{"type":["string","null"],"description":"user_id aus identify (verifiziert)"},"verified":{"type":"boolean"},"attributes":{"type":"object"},"language":{"type":["string","null"]},"browser":{"type":["string","null"]},"os":{"type":["string","null"]},"device":{"type":["string","null"]},"timezone":{"type":["string","null"]},"currentUrl":{"type":["string","null"]},"currentTitle":{"type":["string","null"]},"referrer":{"type":["string","null"]},"firstSeenAt":{"type":"string","format":"date-time"},"lastSeenAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"company":{"type":["object","null"],"properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"domain":{"type":["string","null"]}}},"conversationCount":{"type":"integer"}},"example":{"id":"7d1e2f3a-1b2c-4d5e-8f90-a1b2c3d4e5f6","name":"Lena Schmidt","email":"lena@example.com","phone":null,"externalId":"kunde-4711","verified":true,"attributes":{"plan":"Team"},"language":"de","browser":"Firefox","os":"macOS","device":"Desktop","timezone":"Europe/Berlin","currentUrl":"https://example.com/preise","currentTitle":"Preise","referrer":null,"firstSeenAt":"2026-10-01T08:00:00Z","lastSeenAt":"2026-10-10T09:14:00Z","createdAt":"2026-10-01T08:00:00Z","company":{"id":"9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b","name":"Beispiel GmbH","domain":"example.com"}}},"Artikel":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"collectionId":{"type":["string","null"],"format":"uuid"},"title":{"type":"string"},"slug":{"type":"string"},"excerpt":{"type":"string"},"body":{"type":"string","description":"Markdown"},"status":{"type":"string","enum":["draft","published"]},"authorId":{"type":["string","null"]},"views":{"type":"integer"},"helpfulYes":{"type":"integer"},"helpfulNo":{"type":"integer"},"position":{"type":"integer"},"publishedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"example":{"id":"2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e","collectionId":null,"title":"Rechnung als PDF herunterladen","slug":"rechnung-als-pdf-herunterladen","excerpt":"So finden Sie alle Rechnungen.","body":"## Schritte\n1. Konto öffnen\n2. Rechnungen wählen","status":"published","authorId":null,"views":42,"helpfulYes":9,"helpfulNo":1,"position":0,"publishedAt":"2026-10-01T10:00:00Z","createdAt":"2026-10-01T10:00:00Z","updatedAt":"2026-10-05T10:00:00Z"}},"Thema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"product":{"type":["string","null"]},"name":{"type":"string"},"slug":{"type":"string"},"description":{"type":"string"},"icon":{"type":"string","enum":["rakete","buch","karte","zahnrad","person","schild","paket","frage"]},"position":{"type":"integer"},"articles":{"type":"integer"}}},"Wissensquelle":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"kind":{"type":"string","enum":["website","file","text","article","openapi"]},"product":{"type":["string","null"]},"title":{"type":"string"},"url":{"type":["string","null"]},"status":{"type":"string","enum":["pending","running","ready","error"]},"progress":{"type":"object"},"error":{"type":["string","null"]},"pages":{"type":"integer"},"chunks":{"type":"integer"},"enabled":{"type":"boolean"},"syncedAt":{"type":["string","null"],"format":"date-time"},"createdAt":{"type":"string","format":"date-time"}}},"Vorlage":{"type":"object","description":"Gespeicherte Antwort","properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string"},"body":{"type":"string","description":"Platzhalter: {{vorname}}, {{name}}, {{agent}}"},"closeAfter":{"type":"boolean"},"usageCount":{"type":"integer"}}},"Mitglied":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"email":{"type":"string"},"avatarColor":{"type":"string"},"role":{"type":"string","enum":["owner","admin","agent"]},"online":{"type":"boolean"},"lastSeenAt":{"type":["string","null"],"format":"date-time"},"joinedAt":{"type":"string","format":"date-time"}}},"Webhook":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"url":{"type":"string"},"description":{"type":"string"},"events":{"type":"array","items":{"type":"string","enum":["conversation.created","conversation.updated","conversation.assigned","conversation.closed","conversation.handed_over","conversation.rated","message.created","note.created","contact.created","contact.updated","contact.deleted","article.published","*"]}},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"lastDelivery":{"type":["object","null"]}}},"Arbeitsbereich":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"slug":{"type":"string"},"name":{"type":"string"},"publicKey":{"type":"string","description":"Öffentlicher Widget-Schlüssel"},"websiteUrl":{"type":["string","null"]},"settings":{"type":"object","description":"Widget, KI, Bürozeiten, Help Center, Datenschutz"},"widgetSeenAt":{"type":["string","null"]},"role":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}}}}},"webhooks":{"conversation.created":{"post":{"operationId":"webhookConversationCreated","summary":"conversation.created","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"conversation.created"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"conversation.updated":{"post":{"operationId":"webhookConversationUpdated","summary":"conversation.updated","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"conversation.updated"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"conversation.assigned":{"post":{"operationId":"webhookConversationAssigned","summary":"conversation.assigned","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"conversation.assigned"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"conversation.closed":{"post":{"operationId":"webhookConversationClosed","summary":"conversation.closed","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"conversation.closed"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"conversation.handed_over":{"post":{"operationId":"webhookConversationHandedOver","summary":"conversation.handed_over","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"conversation.handed_over"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"conversation.rated":{"post":{"operationId":"webhookConversationRated","summary":"conversation.rated","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"conversation.rated"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"message.created":{"post":{"operationId":"webhookMessageCreated","summary":"message.created","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"message.created"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"note.created":{"post":{"operationId":"webhookNoteCreated","summary":"note.created","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"note.created"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"contact.created":{"post":{"operationId":"webhookContactCreated","summary":"contact.created","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"contact.created"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"contact.updated":{"post":{"operationId":"webhookContactUpdated","summary":"contact.updated","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"contact.updated"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"contact.deleted":{"post":{"operationId":"webhookContactDeleted","summary":"contact.deleted","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"contact.deleted"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}},"article.published":{"post":{"operationId":"webhookArticlePublished","summary":"article.published","description":"Signiert mit HMAC-SHA256: Header `Agile-Signature: t=<Unix-Zeit>,v1=<hex>` über `<t>.<Rohtext>`.","parameters":[{"name":"Agile-Signature","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Event","in":"header","required":true,"schema":{"type":"string"}},{"name":"Agile-Delivery","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"event":{"const":"article.published"},"workspaceId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"data":{"type":"object"}}}}}},"responses":{"200":{"description":"Mit 2xx bestätigen; sonst bis zu 6 Wiederholungen"}}}}},"x-scopes":["conversations:read","conversations:write","contacts:read","contacts:write","knowledge:read","knowledge:write","metrics:read","metrics:write","settings:read","settings:write"]}