# OnlyFans-KI-Chatbot mit der API bauen: Webhook, LLM, Nachricht senden

> So baust du einen OnlyFans-KI-Chatbot: Verbinde den Webhook messages.received mit einem LLM und OnlyFansAPI für skalierbare, eventgesteuerte Auto-Antworten.

**Kurz gesagt**

- Lausche auf den Webhook `messages.received` (ab dem Basic-Plan), um jedes Mal eine automatische Antwort auszulösen, wenn ein Fan eine Nachricht sendet.
- Gib sofort einen HTTP-Status 200 OK zurück, um Webhook-Timeouts zu vermeiden, und verarbeite die LLM-Anfrage dann in einer Warteschlange für Hintergrundjobs.
- Abonniere `users.typing`-Events und füge eine Debounce-Verzögerung von 5 bis 10 Sekunden ein, damit du Fans nicht unterbrichst, bevor sie fertig getippt haben.
- Hänge beim Senden der finalen Nachricht einen eindeutigen `Idempotency-Key`-Header an, um doppelte Zustellungen bei erneuten Versuchen nach Netzwerkfehlern zu vermeiden.
- Sende kostenpflichtige Nachrichten, indem du `price` auf einen Wert zwischen 3 und 200 setzt und `mediaFiles` mitschickst, sofern `lockedText` nicht true ist.

Für einen KI-Chatbot für OnlyFans musst du einen Webhook (ab dem Basic-Plan) einrichten, der Fan-Nachrichten nahezu in Echtzeit empfängt, den Text zur Verarbeitung an ein Large Language Model (LLM) weiterleiten und die generierte Antwort über eine REST-API verschicken. Entwickler verbinden diese automatisierte Pipeline, indem sie den Webhook `messages.received` abonnieren und Antworten über den Endpunkt `POST /api/{account}/chats/{chat_id}/messages` mit [OnlyFansAPI](https://www.fansapi.com) zurücksenden.

**Das Wichtigste in Kürze**

- Lausche auf den Webhook `messages.received` (ab dem Basic-Plan), um jedes Mal eine automatische Antwort auszulösen, wenn ein Fan eine Nachricht sendet.
- Gib sofort einen HTTP-Status 200 OK zurück, um Webhook-Timeouts zu vermeiden, und verarbeite die LLM-Anfrage dann in einer Warteschlange für Hintergrundjobs.
- Abonniere `users.typing`-Events und füge eine Debounce-Verzögerung von 5 bis 10 Sekunden ein, damit du Fans nicht unterbrichst, bevor sie fertig getippt haben.
- Hänge beim Senden der finalen Nachricht einen eindeutigen `Idempotency-Key`-Header an, um doppelte Zustellungen bei erneuten Versuchen nach Netzwerkfehlern zu vermeiden.
- Sende kostenpflichtige Nachrichten, indem du `price` auf einen Wert zwischen 3 und 200 setzt und `mediaFiles` mitschickst, sofern `lockedText` nicht true ist.

## So baust du einen KI-Chatbot für OnlyFans

Um einen KI-Chatbot für OnlyFans zu bauen, verbindest du einen eingehenden `messages.received`-Webhook mit einer Hintergrund-Warteschlange, erzeugst mit einem LLM eine kontextbezogene Antwort und sendest sie über den API-Endpunkt `POST /api/{account}/chats/{chat_id}/messages`. Diese eventgesteuerte Architektur verarbeitet eingehenden Traffic nahezu in Echtzeit und lässt dem LLM genug Zeit, eine kontextbezogene Antwort zu generieren. Unsere Docs zeigen dieselbe Pipeline im [Leitfaden zum KI-Chatbot](https://docs.fansapi.com/onlyfans-ai/build-ai-chatbot-for-onlyfans). Alle Events, die du abonnieren kannst, findest du im [Leitfaden zu OnlyFans-Webhooks](/de/blog/onlyfans-webhooks-abonnenten-trinkgelder-nachrichten).

Die Tarife der [OnlyFansAPI-Preise](https://www.fansapi.com/pricing) ab Basic ($69/Monat) liefern die produktionsreife Infrastruktur für diese Pipeline. Der Basic-Plan umfasst Zugriff auf mehr als 320 Endpunkte, Webhooks und einen dedizierten mobilen IP-Proxy pro verbundenem Account in den USA oder in Großbritannien. OnlyFansAPI hält 99,98 % Uptime, hat mehr als 300 Millionen Anfragen verarbeitet, wird von mehr als 1.100 Unternehmen genutzt und verzeichnet seit mehr als 5 Jahren keine einzige Account-Sperre.

### Wie erfassen Webhooks Nachrichten nahezu in Echtzeit?

Webhooks senden Daten nahezu in Echtzeit an deinen Server, nachdem ein Fan eine Aktion ausgeführt hat. Öffne das Webhooks-Dashboard und abonniere mit deinem HTTPS-Endpunkt das Event `messages.received`. Dieses Event enthält den Nachrichtentext des Fans und seine Kennung. Der Webhook-Client berechnet eine Signatur mit dem HMAC-SHA256-Algorithmus und verwendet dein Signing Secret als Schlüssel. Dein Endpunkt muss diese Signatur prüfen und innerhalb des Anfrage-Timeouts von 10 Sekunden den Status 200 OK zurückgeben. Lege die Payload in eine Hintergrund-Warteschlange, bevor du die KI-Antwort generierst.

### Debouncing für Tipp-Serien von Fans

Fans schicken oft mehrere kurze Nachrichten hintereinander. Wenn du sofort auf die erste Nachricht antwortest, kann das ihren Gedankengang unterbrechen. Abonniere deshalb den Webhook `users.typing`. Wenn ein `messages.received`-Event eintrifft, lass den KI-Hintergrundjob 5 bis 10 Sekunden warten. Wird für diesen Chat ein weiteres `users.typing`-Event ausgelöst, setze den Timer zurück. Diese Debounce-Phase fasst kurze Textserien zu einem einzigen Prompt für dein LLM zusammen.

### Tipp-Indikatoren simulieren

Sobald das LLM mit der Antwort beginnt, zeig dem Fan, dass eine Antwort unterwegs ist. Ruf den [Endpunkt Start Typing Indicator](https://docs.fansapi.com/api-reference/chats/start-typing-indicator) über `POST https://app.fansapi.com/api/{account}/chats/{chat_id}/typing` auf. Der Fan sieht etwa 4 Sekunden lang den Hinweis „Model is typing...“; ruf den Endpunkt erneut auf, wenn dein LLM noch arbeitet.

### Die KI-Chatnachricht senden

Wenn das LLM die Antwort fertig formuliert hat, schick sie an den Fan zurück. Sende eine Anfrage an den [Endpunkt Send Message](https://docs.fansapi.com/api-reference/chat-messages/send-message) unter `POST https://app.fansapi.com/api/{account}/chats/{chat_id}/messages`. Gib deinen API-Schlüssel im Header `Authorization: Bearer YOUR_API_KEY` mit und verwende deine Account-ID, die mit `acct_` beginnt.

Enthält die Nachricht kostenpflichtige Inhalte, setze `price` auf einen Wert zwischen 3 und 200. Ein Preis ungleich null erfordert `mediaFiles`, um die Medien hinter einer Paywall zu sperren, sofern `lockedText` nicht true ist.

### Follow-ups nach dem Kauf automatisieren

Wenn ein Fan den kostenpflichtigen Content kauft, wird das Webhook-Event `messages.ppv.unlocked` ausgelöst. Lies den Kaufbetrag und die User-ID aus der Payload aus und lass das LLM dann eine natürliche Dankesnachricht senden. Diese Schleife hält Fans nach einem Kauf bei der Stange.

## Node.js-Implementierung für Webhook und Messaging

Dieser TypeScript-Code zeigt, wie du Webhook-Signaturen prüfst, einen Tipp-Indikator auslöst und eine KI-generierte Textantwort sendest. Webhooks erfordern den Basic-Plan oder höher. Der Code liest die `acct_`-Account-ID aus dem Feld `account_id` jedes Events.

```typescript
import express, { Request, Response } from 'express';
import crypto from 'crypto';

const app = express();
app.use(express.json({ verify: (req: any, _res, buf) => { req.rawBody = buf; } }));

const OFAPI_KEY = process.env.ONLYFANS_API_KEY!;
const SIGNING_SECRET = process.env.OFAPI_WEBHOOK_SECRET!;
const API_BASE = 'https://app.fansapi.com/api';

app.post('/api/webhooks/onlyfans', async (req: Request, res: Response) => {
  const signature = req.headers['signature'] as string;
  if (!signature) {
    return res.status(401).send('Invalid signature');
  }

  const hmac = crypto.createHmac('sha256', SIGNING_SECRET);
  const digest = hmac.update((req as any).rawBody).digest('hex');
  if (signature.length !== digest.length || !crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(digest))) {
    return res.status(401).send('Invalid signature');
  }

  const { event, account_id, payload } = req.body;

  // Sofort 200 OK zurückgeben, um Timeouts zu vermeiden
  res.status(200).json({ received: true });

  if (event === 'messages.received') {
    const { fromUser, text, id: messageId } = payload;

    try {
      // Tipp-Indikator starten
      await fetch(`${API_BASE}/${account_id}/chats/${fromUser.id}/typing`, {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${OFAPI_KEY}`,
          'Content-Type': 'application/json',
        },
      });

      // LLM-Generierungszeit simulieren
      await new Promise((resolve) => setTimeout(resolve, 3000));

      const aiReply = `Hey ${fromUser.name}, thanks for the message!`;

      // Antwort senden
      await fetch(`${API_BASE}/${account_id}/chats/${fromUser.id}/messages`, {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${OFAPI_KEY}`,
          'Content-Type': 'application/json',
          'Idempotency-Key': `reply_${messageId}`,
        },
        body: JSON.stringify({ text: aiReply }),
      });
    } catch (error) {
      console.error('Error sending reply:', error);
    }
  }
});

app.listen(3000, () => console.log('Webhook server running'));
```

## Welche Schutzmechanismen steuern automatisierte Chat-Systeme?

Automatisierte Chat-Systeme brauchen technische Schutzmechanismen, um doppelte Nachrichten zu vermeiden und wertvolle Fan-Beziehungen zu managen. Füge jeder `POST`-Anfrage zum Senden einer Nachricht immer einen `Idempotency-Key`-Header hinzu. Dieser Header verhindert doppelte Zustellungen, wenn du nach einem Netzwerk-Timeout dieselbe Anfrage wiederholst.

Bei VIP-Fans mit hohen Gesamtausgaben leiten Agenturen Nachrichten in eine Warteschlange zur manuellen Prüfung, statt die LLM-Ausgabe direkt zu senden. Die Gesamtausgaben des Fans kannst du aus der Webhook-Payload (`fanData.spending.total`) oder über den Endpunkt List Chats (`GET /api/{account}/chats`, `subscribedOnData.totalSumm`) auslesen, um zu entscheiden, wann automatische Antworten stoppen und ein menschlicher Chatter benachrichtigt wird.

## Automatisierungs-Alternativen für Agenturen

Agenturen, die KI im Betrieb nutzen wollen, ohne eigenen API-Code zu schreiben, können [FansBot](https://www.fansapi.com/fansbot) direkt in Telegram, Slack oder Discord einsetzen. FansBot ist ein KI-Mitarbeiter für OnlyFans-Agenturen. Er gibt sich nicht als Creator aus, automatisiert keine Fan-Gespräche und sendet keine Nachrichten an Fans. Stattdessen übernimmt er Backoffice-Aufgaben wie tägliche Einnahmen-Zusammenfassungen, QA-Audits von Chatter-Schichten und die Vorbereitung der Lohnaufteilung. FansBot verbindet sich ab Werk mit mehr als 3.000 Apps und bietet zum Start $69 an kostenlosen Credits.

Einen Vergleich der OnlyFans-Bot-Typen, von Chatbots im Fan-Kontakt bis zu KI-Kollegen wie FansBot, findest du in unserem Ratgeber zu [OnlyFans-KI-Bot-Tools](/de/blog/onlyfans-bots-ki-tools).

---

Hinweis: Fans API ist unabhängig und weder mit OnlyFans verbunden noch von OnlyFans genehmigt. Die hier beschriebenen Tools arbeiten nur mit Konten, die dir gehören oder zu deren Verwaltung du berechtigt bist. Die Nutzungsbedingungen von OnlyFans (Oktober 2026, §8(g)) beschränken die automatisierte Datenerhebung und die Nutzung von Plattforminhalten für das Training von KI, und KI-generierte Inhalte müssen mit #ai gekennzeichnet werden. Du bist dafür verantwortlich, wie du diese Tools nutzt. Siehe unsere [Nutzungsbedingungen](https://www.fansapi.com/terms-of-service).

KI-generierte oder mit KI veränderte Posts, Medien und Sprachnachrichten müssen den verifizierten Creator klar zeigen und mit #ai gekennzeichnet sein, wie es die OnlyFans-Bedingungen verlangen. Prüfe KI-Entwürfe, bevor sie gesendet werden.
