Erstellen Sie mit unserer RESTful-API Kommunikationsworkflows auf Carrier-Niveau. JSON über HTTPS, Bearer-Token-Authentifizierung und Echtzeit-Webhooks.
curl -X POST https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_..." \
-H "Content-Type: application/json" \
-d '{ "to": "+14155551234", "from": "+14155550100", "ai_receptionist": true }'{
"id": "call_8f2a1b3c",
"status": "ringing",
"ai_handler": "receptionist_v2"
}Alle Anfragen authentifizieren sich mit einem Bearer-Token im Authorization Kopfzeile. Generieren Sie Schlüssel über die Registerkarte „API“ Ihrer Ajoxi-Konsole – verwenden Sie AJX_LIVE_… für Produktionsverkehr und AJX_TEST_… für Sandkasten.
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"Sprachanrufe tätigen, auflisten, weiterleiten und abrufen.
/v1/callsListen Sie alle Anrufe mit Cursor-Paginierung und Datumsfiltern auf.
/v1/callsStarten Sie einen neuen ausgehenden Anruf oder lösen Sie eine Dialer-Kampagne aus.
/v1/calls/{id}Rufen Sie einen einzelnen Anruf nach ID mit vollständigen Metadaten ab.
/v1/calls/{id}/transferLeiten Sie einen aktiven Anruf an einen anderen Agenten oder eine andere Nebenstelle weiter.
Telefonnummern suchen, bereitstellen, portieren und freigeben.
/v1/numbersSuchen Sie nach verfügbaren lokalen, gebührenfreien oder internationalen Nummern.
/v1/numbersGeben Sie eine neue Nummer in Ihrem Konto ein.
/v1/numbers/{id}Aktualisieren Sie Routing, Anrufer-ID oder SMS-Konfiguration für eine Nummer.
/v1/numbers/{id}Geben Sie eine Nummer zurück an den Pool. Irreversibel.
Senden und empfangen Sie SMS, MMS und den Gesprächsverlauf.
/v1/messagesNachrichten auflisten, nach Richtung, Kanal oder Konversation filtern.
/v1/messagesSenden Sie eine SMS oder MMS. Unterstützt Medienanhänge und Vorlagen.
Greifen Sie auf Anrufaufzeichnungen, Transkripte und KI-generierte Erkenntnisse zu.
/v1/recordingsListen Sie Anrufaufzeichnungen mit optionalen Datums- und Agentenfiltern auf.
/v1/recordings/{id}Rufen Sie eine einzelne Aufzeichnung mit Transkript und KI-Zusammenfassung ab.
/v1/transcripts/{id}Rufen Sie das vollständige Transkript eines Anrufs oder einer Aufzeichnung ab.
Abonnieren Sie Plattformereignisse in Echtzeit.
/v1/webhooksListet konfigurierte Webhook-Abonnements auf.
/v1/webhooksAbonnieren Sie ein oder mehrere Ereignisse (call.start, message.received).
/v1/webhooks/{id}Entfernen Sie ein Webhook-Abonnement.
Jede Fehlerantwort gibt JSON mit einem zurück error.code Und error.message. Der HTTP-Statuscode entspricht der Kategorie.
Standardkonten sind auf 100 Anfragen pro Sekunde und API-Schlüssel begrenzt. Für Unternehmenspläne gibt es keine feste Obergrenze – wir skalieren entsprechend Ihrem Datenverkehr. Jede Antwort enthält drei Rate-Limit-Header:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000Wenn das Limit überschritten wird, erhalten Sie eine 429-Antwort mit einem Retry-After Header in Sekunden. Die SDK-Clients implementieren automatisch einen exponentiellen Backoff für diese Header.
Listenendpunkte geben standardmäßig höchstens 50 Elemente pro Seite zurück (konfigurierbar bis zu 200 über). ?limit=200). Jede Antwort enthält a next_cursor – gib es zurück als ?cursor=… um die nächste Seite aufzurufen. Wann next_cursor ist null, Sie haben das Ende erreicht.
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}Abonnieren Sie Plattformereignisse über signierte HTTPS-POSTs. Jede Webhook-Anfrage enthält eine X-Ajoxi-Signature Header – überprüfen Sie ihn mithilfe Ihres Webhook-Geheimnisses als HMAC-SHA256 über den rohen Anforderungstext.
call.startedWird ausgelöst, wenn ein eingehender oder ausgehender Anruf zu klingeln beginnt.call.answeredWird ausgelöst, wenn ein Anruf von einem Menschen oder einer KI-Rezeptionistin entgegengenommen wird.call.completedWird ausgelöst, wenn ein Anruf beendet wird. Die Nutzlast umfasst Dauer, Aufzeichnungs-URL und endgültige Disposition.message.receivedWird ausgelöst, wenn eine eingehende SMS oder MMS bei einer bereitgestellten Nummer eintrifft.message.deliveredWird ausgelöst, wenn die Zustellung einer ausgehenden Nachricht vom Netzbetreiber bestätigt wird.recording.readyWird ausgelöst, wenn eine Anrufaufzeichnung verarbeitet wird und zum Download verfügbar ist.transcript.readyWird ausgelöst, wenn die Verarbeitung des KI-Transkripts für eine Aufzeichnung abgeschlossen ist.Bei fehlgeschlagenen Zustellungen erfolgt ein erneuter Versuch mit exponentiellem Backoff für bis zu 24 Stunden. Nach dem letzten Versuch wird das Ereignis in eine Warteschlange für unzustellbare Nachrichten verschoben, die Sie über die Konsole wiedergeben können.
Die aktuelle stabile Version ist v1. Wichtige Änderungen werden unter einem neuen Präfix (/v2/usw.) – niemals innerhalb einer vorhandenen Version. Veraltete Versionen bleiben nach der Auslieferung eines Nachfolgers mindestens 18 Monate lang verfügbar, mit 6 Monaten E-Mail-Benachrichtigung vor Ablauf.
Erstanbieter-SDKs sind für Node.js, Python, Go und Ruby verfügbar. Jedes wird mit typisierten Clients, Wiederholungslogik und a geliefert verifyWebhook() Helfer.
Alle Anfragen verwenden die Bearer-Token-Authentifizierung. Generieren Sie einen API-Schlüssel in der Ajoxi-Konsole und übergeben Sie ihn dann bei jeder Anfrage als „Authorization: Bearer AJX_LIVE_XXXXX“. Verwenden Sie einen separaten „AJX_TEST_…“-Schlüssel für den Sandbox-Verkehr – die Testumgebung ist isoliert und tätigt niemals echte Anrufe.
Ja. Mit Testmodus-Tasten getätigte Anrufe werden über unseren Simulator statt über das Live-Carrier-Netzwerk weitergeleitet – perfekt für CI-Pipelines und Auslastungstests. Anfragen im Testmodus werden nicht mit Ihrem Minutenkontingent verrechnet und es klingelt niemals ein echtes Telefon.
100 Anfragen pro Sekunde im Standardplan, unbegrenzt im Enterprise-Plan. Jede Antwort enthält die Header „X-RateLimit-Limit“, „X-RateLimit-Remaining“ und „X-RateLimit-Reset“, damit Sie Ihren Datenverkehr genau steuern können. Wenn Sie das Limit überschreiten, erhalten Sie eine 429 mit einem „Retry-After“-Wert.
Jede Webhook-Anfrage enthält einen „X-Ajoxi-Signature“-Header. Berechnen Sie HMAC-SHA256 über den rohen Anforderungstext mithilfe Ihres Webhook-Geheimnisses und vergleichen Sie dann die beiden Werte mit konstanter Zeit. SDK-Clients (Node, Python, Go, Ruby) werden mit einem „verifyWebhook()“-Helfer ausgeliefert, der dies für Sie erledigt.
Wir beschädigen niemals eine stabile API-Version. Wichtige Änderungen werden unter einem neuen Versionspfad (z. B. „/v2/“) ausgeliefert. Veraltete Versionen bleiben nach der Auslieferung eines Nachfolgers mindestens 18 Monate lang aktiv, und Sie erhalten vor Ablauf mindestens 6 Monate lang E-Mail-Benachrichtigungen.
Derzeit nicht. Die API ist REST + JSON mit optionalen vom Server gesendeten Ereignissen für Streaming-Endpunkte wie Live-Transkripte. Wenn GraphQL einen bestimmten Workflow für Sie entsperren möchte, reichen Sie eine Anfrage über Ihr Account-Team ein – wir verfolgen die Nachfrage und priorisieren entsprechend.
Richten Sie einen Sandbox-Schlüssel ein, installieren Sie ein SDK und tätigen Sie vor dem Mittagessen Ihren ersten programmierbaren Anruf.