Bangun alur kerja komunikasi tingkat operator dengan RESTful API kami. JSON melalui HTTPS, autentikasi token pembawa, dan webhook waktu nyata.
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"
}Semua permintaan diautentikasi dengan token Pembawa di Authorization tajuk. Hasilkan kunci dari tab API konsol Ajoxi Anda — gunakan AJX_LIVE_… untuk lalu lintas produksi dan AJX_TEST_… untuk kotak pasir.
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"Tempatkan, daftar, transfer, dan ambil panggilan suara.
/v1/callsBuat daftar semua panggilan dengan pagination kursor dan filter tanggal.
/v1/callsMemulai panggilan keluar baru atau memicu kampanye dialer.
/v1/calls/{id}Ambil satu panggilan berdasarkan ID dengan metadata lengkap.
/v1/calls/{id}/transferTransfer panggilan aktif ke agen atau ekstensi lain.
Pencarian, penyediaan, port, dan rilis nomor telepon.
/v1/numbersCari nomor lokal, bebas pulsa, atau internasional yang tersedia.
/v1/numbersBerikan nomor baru ke akun Anda.
/v1/numbers/{id}Perbarui perutean, ID penelepon, atau konfigurasi SMS pada nomor.
/v1/numbers/{id}Lepaskan nomor kembali ke kolam. Tidak dapat diubah.
Kirim dan terima SMS, MMS, dan riwayat percakapan.
/v1/messagesBuat daftar pesan, filter berdasarkan arah, saluran, atau percakapan.
/v1/messagesKirim SMS atau MMS. Mendukung lampiran dan templat media.
Akses rekaman panggilan, transkrip, dan wawasan yang dihasilkan AI.
/v1/recordingsDaftar rekaman panggilan dengan filter tanggal dan agen opsional.
/v1/recordings/{id}Ambil satu rekaman dengan transkrip dan ringkasan AI.
/v1/transcripts/{id}Ambil transkrip lengkap untuk panggilan atau rekaman.
Berlangganan acara platform waktu nyata.
/v1/webhooksDaftar langganan webhook yang dikonfigurasi.
/v1/webhooksBerlangganan ke satu atau lebih acara (call.start, message.received).
/v1/webhooks/{id}Hapus langganan webhook.
Setiap respons kesalahan mengembalikan JSON dengan error.code Dan error.message. Kode status HTTP sesuai dengan kategori.
Akun standar dibatasi hingga 100 permintaan per detik per kunci API. Paket perusahaan tidak memiliki batasan tetap — kami menyesuaikan skala dengan lalu lintas Anda. Setiap respons mencakup tiga header batas kecepatan:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000Ketika batas terlampaui, Anda menerima respons 429 dengan a Retry-After tajuk dalam hitungan detik. Klien SDK menerapkan backoff eksponensial terhadap header ini secara otomatis.
Titik akhir daftar mengembalikan maksimal 50 item per halaman secara default (dapat dikonfigurasi hingga 200 melalui ?limit=200). Setiap respons mencakup a next_cursor — meneruskannya kembali sebagai ?cursor=… untuk mengambil halaman berikutnya. Kapan next_cursor adalah nol, Anda telah mencapai akhir.
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}Berlangganan acara platform melalui HTTPS POST yang ditandatangani. Setiap permintaan webhook menyertakan X-Ajoxi-Signature header — verifikasi sebagai HMAC-SHA256 pada isi permintaan mentah menggunakan rahasia webhook Anda.
call.startedDiaktifkan ketika panggilan masuk atau keluar mulai berdering.call.answeredDipicu ketika panggilan dijawab oleh manusia atau resepsionis AI.call.completedDipecat saat panggilan berakhir. Payload mencakup durasi, URL rekaman, dan disposisi akhir.message.receivedDiaktifkan ketika SMS atau MMS masuk tiba di nomor yang disediakan.message.deliveredDiaktifkan ketika pesan keluar dikonfirmasi telah dikirimkan oleh operator.recording.readyDiaktifkan saat rekaman panggilan diproses dan tersedia untuk diunduh.transcript.readyDiaktifkan ketika transkrip AI untuk rekaman telah selesai diproses.Pengiriman gagal coba lagi dengan backoff eksponensial hingga 24 jam. Setelah upaya terakhir, acara dipindahkan ke antrean surat mati yang dapat Anda putar ulang dari konsol.
Versi stabil saat ini adalah v1. Perubahan yang dapat menyebabkan gangguan dikirimkan dengan awalan baru (/v2/, dll.) — tidak pernah ada di dalam versi yang sudah ada. Versi yang tidak digunakan lagi tetap tersedia setidaknya selama 18 bulan setelah penggantinya dikirimkan, dengan peringatan email selama 6 bulan sebelum penghentian.
SDK pihak pertama tersedia untuk Node.js, Python, Go, dan Ruby. Masing-masing dikirimkan dengan klien yang diketik, logika percobaan ulang, dan a verifyWebhook() pembantu.
Semua permintaan menggunakan otentikasi token pembawa. Hasilkan kunci API di konsol Ajoxi, lalu teruskan sebagai `Otorisasi: Pembawa AJX_LIVE_XXXXX` pada setiap permintaan. Gunakan kunci `AJX_TEST_…` terpisah untuk lalu lintas sandbox — lingkungan pengujian terisolasi dan tidak pernah melakukan panggilan nyata.
Ya. Panggilan yang dilakukan dengan kunci mode pengujian dirutekan melalui simulator kami, bukan melalui jaringan operator langsung — sempurna untuk pipeline CI dan pengujian beban. Permintaan mode uji tidak dikenakan biaya sesuai menit yang Anda miliki dan tidak pernah menelepon telepon sungguhan.
100 permintaan per detik pada paket standar, tidak terbatas pada perusahaan. Setiap respons mencakup header `X-RateLimit-Limit`, `X-RateLimit-Remaining`, dan `X-RateLimit-Reset` sehingga Anda dapat mengatur kecepatan lalu lintas secara akurat. Ketika Anda melampaui batas, Anda menerima 429 dengan nilai `Coba Lagi-Setelah`.
Setiap permintaan webhook menyertakan header `X-Ajoxi-Signature`. Hitung HMAC-SHA256 pada isi permintaan mentah menggunakan rahasia webhook Anda, lalu bandingkan kedua nilai secara konstan. Klien SDK (Node, Python, Go, Ruby) dikirimkan dengan helper `verifyWebhook()` yang menangani hal ini untuk Anda.
Kami tidak pernah merusak versi API yang stabil. Perubahan yang dapat menyebabkan gangguan dikirimkan pada jalur versi baru (misalnya `/v2/`). Versi yang tidak digunakan lagi akan tetap aktif setidaknya selama 18 bulan setelah penggantinya dikirimkan, dan Anda menerima setidaknya 6 bulan peringatan email sebelum penghentian.
Tidak saat ini. API-nya adalah REST + JSON dengan Peristiwa Terkirim Server opsional untuk titik akhir streaming seperti transkrip langsung. Jika GraphQL akan membuka blokir alur kerja tertentu untuk Anda, ajukan permintaan melalui tim akun Anda — kami melacak permintaan dan memprioritaskannya.
Putar kunci sandbox, instal SDK, dan lakukan panggilan terprogram pertama Anda sebelum makan siang.