Outbound-API
Ausgehende Anrufe per HTTP starten, aus n8n, Make, Zapier oder deinem Server. Endpunkt, Anmeldung, Anfrage, Antwort, Idempotenz und Grenzen.
Mit der Outbound-API startest du einen Anruf deines Agenten mit einer einzigen HTTP-Anfrage. Du übergibst Zielnummer, Absendernummer und Kontextdaten, bhomy schickt den Agenten los, und er führt das Gespräch mit den Werten aus deinem Kontext.
Auf einen Blick
| Punkt | Wert |
|---|---|
| Endpunkt | POST https://app.bhomy.ai/api/v1/outbound |
| Anmeldung | Authorization: Bearer bhomy_live_sk_… |
| Format | JSON, Content-Type: application/json |
| Antwort bei Erfolg | 202 Accepted |
| Grenze | 60 Anfragen in 60 Sekunden, je Schlüssel und je IP-Adresse |
| Voraussetzung | bestätigte Identität, Absendernummer mit Agent |
API-Schlüssel anlegen
- Öffne im Dashboard API Key und klicke auf Neuer Schlüssel.
- Gib einen Namen ein, etwa „Make.com Terminerinnerung“.
- Kopiere den Schlüssel und speichere ihn sicher. Er wird nur dieses eine Mal angezeigt.
Die Anfrage
| Feld | Pflicht | Inhalt |
|---|---|---|
toNumber | ja | Zielnummer im Format E.164 mit Pluszeichen, etwa +491701234567 |
fromNumber | ja | deine Absendernummer, importiert oder per SIP verbunden, mit zugewiesenem Agenten |
context | nein | Objekt mit Werten für Begrüßung und Prompt |
Der Agent wird über die Absendernummer bestimmt. Eine Agent-ID gibst du nicht an.
curl -X POST https://app.bhomy.ai/api/v1/outbound \
-H "Authorization: Bearer DEIN_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 4f9c2b1e-7a3d-4c55-9a0e-2d6f8b1c3e77" \
-d '{
"toNumber": "+491701234567",
"fromNumber": "+494012345678",
"context": {
"kundenname": "Max Mustermann",
"termin": "15. Januar"
}
}'
Leerzeichen, Bindestriche und Klammern in Nummern sind erlaubt, ebenso ein (0) nach der Ländervorwahl. Eine Nummer ohne Pluszeichen weist die API ab, statt ein Land zu raten.
Kontext im Gespräch nutzen
Jedes Feld aus context steht als Variable bereit. Im Prompt oder in der Begrüßung schreibst du es mit doppelten geschweiften Klammern:
Hallo {{kundenname}}, hier ist die Assistenz der Firma Sommer. Ich rufe wegen
Ihres Termins am {{termin}} an.
Ein Feld, das im context fehlt, entfernt bhomy aus dem Text. Halte die Werte flach und so, wie man sie spricht.
Die Antwort
Bei Erfolg antwortet die API mit 202. Der Agent wählt danach, das Ergebnis des Gesprächs steht später im Anrufverlauf und geht an deine Automationen.
{
"success": true,
"callId": "call_8f2a1c",
"roomName": "outbound_call_8f2a1c",
"status": "queued",
"dispatchId": "AD_x7Kp2",
"message": "Calling +491701234567"
}
Bei einem Fehler steht in error ein fester Code, auf den deine Integration reagieren kann, und in message eine Erklärung. Alle Codes mit Lösung: Fehlercodes der API.
Idempotenz: jeder Anruf genau einmal
Automatisierungswerkzeuge wiederholen Anfragen, wenn eine Antwort ausbleibt. Damit dabei niemand zweimal angerufen wird, schickst du einen Header Idempotency-Key mit, einen neuen Wert je Anruf, etwa eine UUID oder die ID der Zeile in deiner Tabelle.
| Situation | Antwort |
|---|---|
| Gleicher Schlüssel, gleiche Anfrage | die Antwort der ersten Anfrage, mit dem Header Idempotent-Replayed: true. Es wird nicht erneut gewählt |
| Gleicher Schlüssel, andere Anfrage | 422 mit idempotency_key_reused |
| Die erste Anfrage läuft noch | 409 mit idempotency_request_in_progress und Retry-After |
| Ungültiger Schlüssel: leer, länger als 255 Zeichen oder nicht ASCII | 400 mit invalid_idempotency_key |
Ohne den Header startet jede Anfrage einen neuen Anruf.
Grenzen
| Grenze | Antwort, wenn erreicht |
|---|---|
| 60 Anfragen in 60 Sekunden, je Schlüssel und je IP-Adresse | 429 mit rate_limit_exceeded und Retry-After |
| gleichzeitige Anrufe deines Tarifs | 429 mit concurrent_limit_reached und Retry-After |
| Ziele einer importierten Nummer: deutsche Festnetz- und Mobilfunknummern | 422 mit imported_number_destination |
Warte bei 429 die Sekunden aus Retry-After ab, bevor du es erneut versuchst.
Beispiele für Automatisierungswerkzeuge
| Werkzeug | Baustein | Anleitung |
|---|---|---|
| n8n | HTTP Request | n8n |
| Make | HTTP › Make a request | Make |
| Zapier | Webhooks by Zapier › Custom Request | Zapier |
Ergebnisse zurückbekommen
Die API meldet nur, ob der Auftrag angenommen wurde. Wie das Gespräch ausging, bekommst du nach dem Anruf über das CRM Ticket im Reiter Tools › Automation: mit callId, Zusammenfassung, Transkript und erfassten Daten. Über die callId ordnest du das Ergebnis deinem Auftrag zu.
War diese Seite hilfreich?