# 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://onlyfansapi.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.onlyfansapi.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://onlyfansapi.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.onlyfansapi.com/api-reference/chats/start-typing-indicator) über `POST https://app.onlyfansapi.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.onlyfansapi.com/api-reference/chat-messages/send-message) unter `POST https://app.onlyfansapi.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.onlyfansapi.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://onlyfansapi.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).