Dokumentation
In unserer Dokumentation findest Antworten auf häufig gestellt Fragen sowie Informationen zu unseren Funktionen.
BotHosting.io
Mit BotHosting.io ermöglichen wir die Automatisierung von Dialogen. Im Gegensatz zu klassischen Service-Systemen liegt unser Fokus dabei auf persönlichen, individuellen Gesprächen - nicht auf typischen Support-Chats.
Rate Limits
Um faire Nutzung zu gewährleisten, gelten folgende Rate Limits:
| Plan | Requests / Minute | Requests / Tag |
|---|---|---|
| Free | 10 | 1,000 |
| Bronze | 30 | 5,000 |
| Silber | 60 | 15,000 |
| Gold | 120 | 50,000 |
429 Too Many Requests Fehler. Warte kurz und versuche es erneut.
Sendet eine Nachricht an den Chat Bot und erhält eine KI-generierte Antwort. Der Bot berücksichtigt dabei den Kontext vorheriger Nachrichten und gespeicherte Memories.
Request Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| platform | string | required | Plattform des Customers (z.B. "telegram", "mydirtyhobby", "onlyfans") |
| platform_id | string | required | ID des Customers auf der Plattform |
| name | string | required | Name des Customers (max 255 Zeichen) |
| message | string | optional | Die Nachricht vom Customer (max 1000 Zeichen) |
| image | string | optional | Bild als Base64-String oder URL |
1. Als URL:
"image": "https://example.com/photo.jpg"2. Als Base64:
"image": "data:image/jpeg;base64,/9j/4AAQ..." oder nur der Base64-String ohne Prefix
Request Beispiel
{
"message": "Hast du Bilder von dir?",
"platform": "telegram",
"platform_id": "123456789",
"name": "Max Mustermann"
}
Request mit Bild-URL
{
"message": "Was siehst du auf diesem Bild?",
"image": "https://example.com/photo.jpg",
"platform": "telegram",
"platform_id": "123456789",
"name": "Max Mustermann"
}
curl -X POST https://bothosting.io/api/v1/chat/send \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"message": "Hey, wie gehts?",
"platform": "telegram",
"platform_id": "987654321"
}'
Response
{
"success": true,
"response": "Hey! Mir geht's gut 😊 Und dir?",
"wallet": "47.35",
"cost": "0.000123",
"charged_cost": "0.02",
"customer": {
"id": 42,
"platform": "telegram",
"platform_id": "123456789",
"name": "Max Mustermann"
}
}
Response mit Content
{
"success": true,
"response": "Hier ist ein Bild für dich! 😘",
"content": {
"url": "https://cdn.example.com/content/image_123.jpg",
"type": "image",
"category": "body"
},
"wallet": "47.13",
"cost": "0.000145",
"charged_cost": "0.02",
"customer": {
"id": 42,
"platform": "telegram",
"platform_id": "123456789",
"name": "Max Mustermann"
}
}
Fehler Responses
{
"success": false,
"error": "empty_message",
"message": "Bitte sende eine Nachricht oder ein Bild."
}
{
"error": "Invalid token",
"message": "The provided token is invalid or expired"
}
{
"success": false,
"error": "insufficient_funds",
"message": "Kein Guthaben mehr vorhanden. Bitte Wallet aufladen.",
"wallet": "0.00"
}
{
"success": false,
"error": "internal_error",
"message": "Ein technischer Fehler ist aufgetreten. Bitte versuche es erneut."
}
Ruft alle gespeicherten Memories für einen bestimmten Kunden ab. Memories sind wichtige Informationen, die sich der Bot über den Nutzer gemerkt hat.
Query Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| customer_id | integer | optional | ID des Kunden (die von BotHosting.io vergebene ID) |
| category | string | optional | Filtere Memories nach Kategorie (z.B. "personal", "preferences") |
Response
{
"success": true,
"data": {
"memories": [
{
"id": 1,
"memory_key": "name",
"memory_value": "Max",
"category": "personal",
"created_at": "2026-02-01T10:30:00Z"
},
{
"id": 2,
"memory_key": "favorite_color",
"memory_value": "blau",
"category": "preferences",
"created_at": "2026-02-05T14:22:00Z"
}
],
"total": 2
}
}
Wechselt den aktiven Chat-Partner. Nützlich für Account-Manager, die mehrere Kunden betreuen.
Request Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| customer_id | integer | required | ID des Kunden zu dem gewechselt werden soll |
Response
{
"success": true,
"message": "Kunde erfolgreich gewechselt",
"data": {
"customer_id": 42,
"name": "Max Mustermann"
}
}
Ruft verfügbare Content-Items (Bilder, Videos) ab, optional gefiltert nach Kategorie.
Query Parameter
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| category | string | optional | Kategorie: ass, boobs, pussy, feet, body, face, lingerie |
| type | string | optional | Content-Typ: image, video |
| is_free | boolean | optional | Nur kostenlose Content-Items |
Response
{
"success": true,
"data": {
"content": [
{
"id": 15,
"type": "image",
"category": "body",
"url": "https://cdn.example.com/content/img_123.jpg",
"description": "Ganzkörper-Foto in schwarzem Kleid",
"price": 5.99,
"is_free": false
}
],
"total": 1
}
}
Lädt neuen Content (Bild oder Video) hoch und speichert die Metadaten.
Request Parameter (multipart/form-data)
| Parameter | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
| file | file | required | Die hochzuladende Datei (max. 10MB) |
| category | string | required | Kategorie des Contents |
| description | string | optional | Beschreibung des Contents |
| price | decimal | optional | Preis in EUR (Standard: 0.00 = kostenlos) |
Response
{
"success": true,
"message": "Content erfolgreich hochgeladen",
"data": {
"id": 23,
"type": "image",
"category": "lingerie",
"url": "https://cdn.example.com/content/img_456.jpg",
"description": "Rote Spitze",
"price": 7.99,
"is_free": false,
"created_at": "2026-02-09T15:30:00Z"
}
}
Fehler Codes
Die API verwendet Standard-HTTP-Statuscodes. Hier sind die häufigsten Fehler:
| Code | Status | Beschreibung |
|---|---|---|
| 400 | Bad Request | Die Anfrage war ungültig oder fehlerhaft |
| 401 | Unauthorized | Keine gültige Authentifizierung vorhanden |
| 403 | Forbidden | Keine Berechtigung für diese Ressource |
| 404 | Not Found | Die angeforderte Ressource wurde nicht gefunden |
| 429 | Too Many Requests | Rate Limit überschritten |
| 500 | Internal Server Error | Ein unerwarteter Serverfehler ist aufgetreten |
Fehler Response Format
{
"success": false,
"error": {
"code": "INVALID_REQUEST",
"message": "Das Feld 'message' ist erforderlich",
"details": {
"field": "message",
"validation": "required"
}
}
}
Code Beispiele
JavaScript (Fetch API)
const sendMessage = async (message) => {
try {
const response = await fetch('https://api.chatbot.example/v1/chat/send', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({ message })
});
const data = await response.json();
console.log('Bot Antwort:', data.data.message);
if (data.data.content) {
console.log('Content erhalten:', data.data.content);
}
} catch (error) {
console.error('Fehler:', error);
}
};
sendMessage('Hallo Bot!');
Python (Requests)
import requests
API_TOKEN = 'YOUR_API_TOKEN'
BASE_URL = 'https://api.chatbot.example/v1'
def send_message(message):
headers = {
'Authorization': f'Bearer {API_TOKEN}',
'Content-Type': 'application/json'
}
payload = {'message': message}
response = requests.post(
f'{BASE_URL}/chat/send',
headers=headers,
json=payload
)
data = response.json()
print('Bot Antwort:', data['data']['message'])
if data['data']['content']:
print('Content erhalten:', data['data']['content'])
send_message('Hallo Bot!')
PHP (cURL)
<?php
$apiToken = 'YOUR_API_TOKEN';
$baseUrl = 'https://api.chatbot.example/v1';
function sendMessage($message, $apiToken, $baseUrl) {
$ch = curl_init($baseUrl . '/chat/send');
$headers = [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json'
];
$payload = json_encode(['message' => $message]);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
$data = json_decode($response, true);
echo 'Bot Antwort: ' . $data['data']['message'] . "\n";
if (!empty($data['data']['content'])) {
echo 'Content erhalten: ' . print_r($data['data']['content'], true);
}
}
sendMessage('Hallo Bot!', $apiToken, $baseUrl);
- Speichere deinen API-Token sicher und teile ihn niemals öffentlich
- Implementiere Retry-Logik für fehlgeschlagene Requests
- Nutze Caching für Memories, um API-Calls zu reduzieren
- Überwache deine Token-Nutzung im Dashboard
- Behandle Rate Limit Fehler (429) mit exponentieller Backoff-Strategie