Chat-Endpunkt
Senden Sie Nachrichten an Ihren Agenten und erhalten Sie programmatisch KI-Antworten.
Der Chat-Endpunkt ermöglicht es Ihnen, Nachrichten an Ihren Agenten zu senden und KI-Antworten zu erhalten. Nutzen Sie ihn, um individuelle Chat-Oberflächen zu erstellen oder Agent-Funktionalität in Ihre Anwendungen zu integrieren.
Endpunkt
POST /api/v1/chat
Authentifizierung
Erfordert eine Authentifizierung per Bearer-Token.
Authorization: Bearer YOUR_API_KEY
Anfragetext
{
"chatbotId": "uuid",
"messages": [
{ "role": "user", "content": "What are your pricing plans?" }
],
"conversationId": "optional-id",
"stream": false
}
Parameter
| Field | Type | Required | Description |
|---|---|---|---|
chatbotId | string (UUID) | Ja | ID Ihres Agenten |
messages | array | Ja | Array von Nachrichtenobjekten (1-100 Elemente) |
conversationId | string (max 16 chars) | Nein | Referenz-ID, die im x-conversation-id-Header eines vorherigen Aufrufs zurückgegeben wurde. Bei ungültigen oder fehlenden Werten weist der Server eine neue ID zu. |
stream | boolean | Nein | Streaming-Antwort aktivieren (Standard: false) |
Nachrichtenobjekt
| Field | Type | Values | Description |
|---|---|---|---|
role | string | "user", "assistant" | Wer die Nachricht gesendet hat |
content | string | 1-32000 Zeichen | Nachrichtentext |
Limits
- Maximal 100 Nachrichten pro Anfrage
- Maximal 32.000 Zeichen pro Nachricht
Antwort
Ohne Streaming (Standard)
Erfolg (200):
{
"text": "Our pricing starts at $29.99/month for the Hobby plan..."
}
Enthält folgende Header:
X-Conversation-ID: abc123
Streaming
Setzen Sie "stream": true, um Streaming-Antworten zu aktivieren.
Erfolg (200):
Content-Type: text/plain; charset=utf-8
Die Antwort streamt reinen Text, während er generiert wird. Verwenden Sie dies für Echtzeit-UI-Updates.
Beispielanfragen
Einfache Anfrage
curl -X POST 'https://your-domain.com/api/v1/chat' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"chatbotId": "123e4567-e89b-12d3-a456-426614174000",
"messages": [
{"role": "user", "content": "What are your pricing plans?"}
]
}'
Mehrteilige Unterhaltung
curl -X POST 'https://your-domain.com/api/v1/chat' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"chatbotId": "123e4567-e89b-12d3-a456-426614174000",
"conversationId": "conv_abc123",
"messages": [
{"role": "user", "content": "What are your pricing plans?"},
{"role": "assistant", "content": "We offer three plans..."},
{"role": "user", "content": "Tell me more about the Pro plan"}
]
}'
Streaming-Antwort
curl -X POST 'https://your-domain.com/api/v1/chat' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"chatbotId": "123e4567-e89b-12d3-a456-426614174000",
"messages": [{"role": "user", "content": "Hello"}],
"stream": true
}'
Fehlerantworten
| Status | Message | Cause |
|---|---|---|
| 400 | Invalid JSON body | Fehlerhaftes JSON |
| 400 | Invalid request body | Fehlende oder ungültige Felder |
| 401 | Missing or invalid Authorization header | Header nicht angegeben oder falsches Format |
| 401 | Invalid API key | Schlüssel nicht erkannt |
| 403 | API access requires a Hobby plan or above with active billing | Tarif oder Abrechnung erlaubt keinen API-Zugriff |
| 403 | Chatbot does not belong to this account | Agent gehört zu einem anderen Konto |
| 404 | Chatbot not found | Ungültige Agent-ID |
| 429 | Rate limit exceeded | Zu viele Anfragen |
Format der Fehlerantwort
{
"message": "Invalid request body",
"details": {
"chatbotId": ["Required"]
}
}
Codebeispiele
Node.js
async function sendMessage(chatbotId, message) {
const response = await fetch('https://your-domain.com/api/v1/chat', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.AGENTKIT_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
chatbotId,
messages: [{ role: 'user', content: message }],
}),
});
if (!response.ok) {
throw new Error(`API error: ${response.status}`);
}
const data = await response.json();
return data.text;
}
Python
import requests
def send_message(chatbot_id: str, message: str) -> str:
response = requests.post(
'https://your-domain.com/api/v1/chat',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json',
},
json={
'chatbotId': chatbot_id,
'messages': [{'role': 'user', 'content': message}],
},
)
response.raise_for_status()
return response.json()['text']
Node.js mit Streaming
async function streamMessage(chatbotId, message) {
const response = await fetch('https://your-domain.com/api/v1/chat', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.AGENTKIT_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
chatbotId,
messages: [{ role: 'user', content: message }],
stream: true,
}),
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const text = decoder.decode(value);
process.stdout.write(text); // Print as it streams
}
}
Unterhaltungen verwalten
Eine Unterhaltung starten
Lassen Sie conversationId weg, um eine neue Unterhaltung zu starten. Der Antwort-Header X-Conversation-ID enthält die neue ID.
Eine Unterhaltung fortsetzen
Geben Sie conversationId sowie alle vorherigen Nachrichten an, um den Kontext zu erhalten.
Nachrichtenverlauf
Sie müssen vorherige Nachrichten in jeder Anfrage mitsenden. Die API ist zustandslos – wir speichern zwischen den Anfragen keinen Unterhaltungsverlauf auf dem Server.
Nächste Schritte
- Webhook-Abonnements einrichten für Ereignisbenachrichtigungen
- Alle API-Endpunkte ansehen
- API-Schlüssel verwalten