Bouw communicatieworkflows op carrierniveau met onze RESTful API. JSON via HTTPS, Bearer-token-authenticatie en realtime 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 verzoeken worden geverifieerd met een Bearer-token in de Authorization koptekst. Genereer sleutels vanaf het API-tabblad van uw Ajoxi-console - gebruik AJX_LIVE_… voor productieverkeer en AJX_TEST_… voor zandbak.
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"Spraakoproepen plaatsen, weergeven, doorverbinden en ophalen.
/v1/callsMaak een lijst van alle oproepen met cursorpaginering en datumfilters.
/v1/callsStart een nieuw uitgaand gesprek of activeer een dialercampagne.
/v1/calls/{id}Haal één oproep op via ID met volledige metadata.
/v1/calls/{id}/transferEen actief gesprek doorverbinden naar een andere agent of toestel.
Telefoonnummers zoeken, aanbieden, porteren en vrijgeven.
/v1/numbersZoek naar beschikbare lokale, gratis of internationale nummers.
/v1/numbersVoeg een nieuw nummer toe aan uw account.
/v1/numbers/{id}Update de routerings-, beller-ID- of sms-configuratie op een nummer.
/v1/numbers/{id}Geef een nummer vrij voor het zwembad. Onomkeerbaar.
Verzend en ontvang sms-, mms- en gespreksgeschiedenis.
/v1/messagesMaak een lijst van berichten, filter op richting, kanaal of gesprek.
/v1/messagesStuur een sms of mms. Ondersteunt mediabijlagen en sjablonen.
Krijg toegang tot gespreksopnamen, transcripties en door AI gegenereerde inzichten.
/v1/recordingsMaak een lijst van oproepopnamen met optionele datum- en agentfilters.
/v1/recordings/{id}Haal één opname op met transcript en AI-samenvatting.
/v1/transcripts/{id}Haal het volledige transcript op voor een gesprek of opname.
Abonneer u op realtime platformevenementen.
/v1/webhooksGeef geconfigureerde webhookabonnementen weer.
/v1/webhooksAbonneer u op een of meer evenementen (call.start, message.received).
/v1/webhooks/{id}Een webhookabonnement verwijderen.
Elke foutreactie retourneert JSON met een error.code En error.message. De HTTP-statuscode komt overeen met de categorie.
Standaardaccounts zijn beperkt tot 100 verzoeken per seconde per API-sleutel. Enterprise-abonnementen hebben geen vaste limiet: wij schalen mee met uw verkeer. Elk antwoord bevat drie headers met snelheidslimieten:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000Wanneer de limiet wordt overschreden, ontvangt u een 429-reactie met een Retry-After koptekst in seconden. De SDK-clients implementeren automatisch exponentiële back-off tegen deze headers.
Lijsteindpunten retourneren standaard maximaal 50 items per pagina (configureerbaar tot 200 via ?limit=200). Elk antwoord bevat een next_cursor - geef het terug als ?cursor=… om de volgende pagina op te halen. Wanneer next_cursor nul is, heeft u het einde bereikt.
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}Abonneer u op platformevenementen via ondertekende HTTPS POST's. Elk webhookverzoek bevat een X-Ajoxi-Signature header - verifieer het als HMAC-SHA256 via de onbewerkte aanvraagtekst met behulp van uw webhookgeheim.
call.startedWordt geactiveerd wanneer een inkomende of uitgaande oproep overgaat.call.answeredWordt geactiveerd wanneer een oproep wordt beantwoord door een mens of een AI-receptionist.call.completedWordt geactiveerd wanneer een gesprek eindigt. De payload omvat de duur, de opname-URL en de uiteindelijke bestemming.message.receivedWordt geactiveerd wanneer een inkomende sms of mms op een ingericht nummer arriveert.message.deliveredWordt geactiveerd wanneer een uitgaand bericht wordt bevestigd door de vervoerder.recording.readyWordt geactiveerd wanneer een gespreksopname wordt verwerkt en beschikbaar is om te downloaden.transcript.readyWordt geactiveerd wanneer het AI-transcript voor een opname is verwerkt.Mislukte leveringen opnieuw proberen met exponentieel uitstel gedurende maximaal 24 uur. Na de laatste poging wordt het evenement verplaatst naar een wachtrij met dode letters die je vanaf de console opnieuw kunt spelen.
De huidige stabiele versie is v1. Belangrijke wijzigingen worden verzonden onder een nieuw voorvoegsel (/v2/, enz.) — nooit binnen een bestaande versie. Verouderde versies blijven minimaal 18 maanden beschikbaar nadat een opvolger is uitgebracht, met zes maanden e-mailwaarschuwing vóór zonsondergang.
First-party SDK's zijn beschikbaar voor Node.js, Python, Go en Ruby. Elk wordt geleverd met getypte clients, logica voor opnieuw proberen en een verifyWebhook() helper.
Alle aanvragen maken gebruik van Bearer-token-authenticatie. Genereer een API-sleutel in de Ajoxi-console en geef deze vervolgens bij elk verzoek door als `Authorization: Bearer AJX_LIVE_XXXXX`. Gebruik een aparte `AJX_TEST_…` sleutel voor sandboxverkeer; de testomgeving is geïsoleerd en plaatst nooit echte oproepen.
Ja. Gesprekken die met toetsen in de testmodus worden geplaatst, worden via onze simulator gerouteerd in plaats van via het live netwerk van vervoerders - perfect voor CI-pijplijnen en belastingtests. Testmodusverzoeken worden niet in rekening gebracht op uw minutenlimiet en bellen nooit naar een echte telefoon.
100 verzoeken per seconde bij het standaardabonnement, onbeperkt bij enterprise. Elk antwoord bevat de headers 'X-RateLimit-Limit', 'X-RateLimit-Remaining' en 'X-RateLimit-Reset', zodat u uw verkeer nauwkeurig kunt volgen. Wanneer u de limiet overschrijdt, ontvangt u een 429 met een `Retry-After`-waarde.
Elk webhookverzoek bevat een `X-Ajoxi-Signature`-header. Bereken HMAC-SHA256 via de onbewerkte aanvraagtekst met behulp van uw webhookgeheim en vergelijk vervolgens de twee waarden constant-time. SDK-clients (Node, Python, Go, Ruby) worden geleverd met een `verifyWebhook()`-helper die dit voor u afhandelt.
We breken nooit een stabiele API-versie. Brekende wijzigingen worden verzonden onder een nieuw versiepad (bijvoorbeeld `/v2/`). Verouderde versies blijven minimaal 18 maanden live nadat een opvolger is uitgebracht, en u ontvangt vóór zonsondergang minimaal 6 maanden e-mailwaarschuwingen.
Momenteel niet. De API is REST + JSON met optionele door de server verzonden gebeurtenissen voor het streamen van eindpunten zoals live transcripties. Als GraphQL een specifieke workflow voor u wil deblokkeren, dien dan een verzoek in via uw accountteam. Wij volgen de vraag en stellen dienovereenkomstig prioriteiten.
Draai een sandbox-sleutel aan, installeer een SDK en plaats uw eerste programmeerbare oproep vóór de lunch.