Xây dựng quy trình giao tiếp cấp nhà cung cấp dịch vụ với API RESTful của chúng tôi. JSON qua HTTPS, xác thực mã thông báo Bearer và webhooks theo thời gian thực.
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"
}Tất cả các yêu cầu đều xác thực bằng mã thông báo Bearer trong Authorization tiêu đề. Tạo khóa từ tab API của bảng điều khiển Ajoxi của bạn - sử dụng AJX_LIVE_… cho giao thông sản xuất và AJX_TEST_… cho hộp cát.
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"Đặt, liệt kê, chuyển và truy xuất các cuộc gọi thoại.
/v1/callsLiệt kê tất cả các cuộc gọi với phân trang con trỏ và bộ lọc ngày.
/v1/callsBắt đầu cuộc gọi đi mới hoặc kích hoạt chiến dịch quay số.
/v1/calls/{id}Truy xuất một cuộc gọi bằng ID với siêu dữ liệu đầy đủ.
/v1/calls/{id}/transferChuyển cuộc gọi đang hoạt động sang một đại lý hoặc số máy nhánh khác.
Tìm kiếm, cung cấp, chuyển và giải phóng số điện thoại.
/v1/numbersTìm kiếm các số địa phương, số điện thoại miễn phí hoặc quốc tế có sẵn.
/v1/numbersCung cấp một số mới vào tài khoản của bạn.
/v1/numbers/{id}Cập nhật cấu hình định tuyến, ID người gọi hoặc SMS trên một số.
/v1/numbers/{id}Phát hành một số trở lại hồ bơi. Không thể đảo ngược.
Gửi và nhận SMS, MMS và lịch sử hội thoại.
/v1/messagesLiệt kê tin nhắn, lọc theo hướng, kênh hoặc cuộc trò chuyện.
/v1/messagesGửi tin nhắn SMS hoặc MMS. Hỗ trợ các tệp đính kèm và mẫu phương tiện.
Truy cập bản ghi cuộc gọi, bản ghi và thông tin chi tiết do AI tạo.
/v1/recordingsLiệt kê các bản ghi cuộc gọi với các bộ lọc ngày và tác nhân tùy chọn.
/v1/recordings/{id}Truy xuất một bản ghi có bản ghi và bản tóm tắt AI.
/v1/transcripts/{id}Truy xuất bản ghi đầy đủ cho cuộc gọi hoặc ghi âm.
Đăng ký các sự kiện nền tảng thời gian thực.
/v1/webhooksLiệt kê các đăng ký webhook được định cấu hình.
/v1/webhooksĐăng ký một hoặc nhiều sự kiện (call.start, message.received).
/v1/webhooks/{id}Xóa đăng ký webhook.
Mọi phản hồi lỗi đều trả về JSON kèm theo error.code Và error.message. Mã trạng thái HTTP phù hợp với danh mục.
Tài khoản tiêu chuẩn được giới hạn ở mức 100 yêu cầu mỗi giây cho mỗi khóa API. Các gói doanh nghiệp không có giới hạn cố định — chúng tôi mở rộng quy mô theo lưu lượng truy cập của bạn. Mỗi phản hồi bao gồm ba tiêu đề giới hạn tỷ lệ:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000Khi vượt quá giới hạn, bạn nhận được phản hồi 429 với Retry-After tiêu đề tính bằng giây. Máy khách SDK tự động triển khai thời gian chờ theo cấp số nhân đối với các tiêu đề này.
Theo mặc định, điểm cuối của danh sách trả về tối đa 50 mục trên mỗi trang (có thể định cấu hình tối đa 200 thông qua ?limit=200). Mỗi phản hồi bao gồm một next_cursor - chuyển nó trở lại dưới dạng ?cursor=… để truy xuất trang tiếp theo. Khi next_cursor là null, bạn đã đi đến cuối.
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}Đăng ký các sự kiện nền tảng thông qua các POST HTTPS đã ký. Mỗi yêu cầu webhook đều bao gồm một X-Ajoxi-Signature tiêu đề — xác minh nó là HMAC-SHA256 trên nội dung yêu cầu thô bằng cách sử dụng bí mật webhook của bạn.
call.startedĐược kích hoạt khi cuộc gọi đến hoặc đi bắt đầu đổ chuông.call.answeredĐược kích hoạt khi nhân viên lễ tân hoặc AI trả lời cuộc gọi.call.completedĐược kích hoạt khi cuộc gọi kết thúc. Tải trọng bao gồm thời lượng, URL ghi và cách xử lý cuối cùng.message.receivedĐược kích hoạt khi có tin nhắn SMS hoặc MMS gửi đến đến số được cung cấp.message.deliveredĐược kích hoạt khi một tin nhắn gửi đi được xác nhận là do nhà cung cấp dịch vụ gửi.recording.readyĐược kích hoạt khi bản ghi cuộc gọi được xử lý và có sẵn để tải xuống.transcript.readyĐược kích hoạt khi bản ghi AI của bản ghi đã xử lý xong.Việc giao hàng không thành công sẽ thử lại với thời gian chờ theo cấp số nhân trong tối đa 24 giờ. Sau lần thử cuối cùng, sự kiện sẽ được chuyển sang hàng đợi thư chết mà bạn có thể phát lại từ bảng điều khiển.
Phiên bản ổn định hiện tại là v1. Các thay đổi vi phạm được gửi theo tiền tố mới (/v2/, v.v.) - không bao giờ nằm trong phiên bản hiện có. Các phiên bản không được dùng nữa vẫn khả dụng trong ít nhất 18 tháng sau khi phiên bản kế nhiệm xuất xưởng, kèm theo cảnh báo qua email 6 tháng trước khi kết thúc.
SDK của bên thứ nhất có sẵn cho Node.js, Python, Go và Ruby. Mỗi tàu đều có các máy khách đã nhập, thử lại logic và một verifyWebhook() người giúp đỡ.
Tất cả các yêu cầu đều sử dụng xác thực mã thông báo Bearer. Tạo khóa API trong bảng điều khiển Ajoxi, sau đó chuyển khóa đó dưới dạng `Ủy quyền: Bearer AJX_LIVE_XXXXX` cho mọi yêu cầu. Sử dụng khóa `AJX_TEST_…` riêng cho lưu lượng hộp cát — môi trường thử nghiệm bị cô lập và không bao giờ thực hiện các cuộc gọi thực.
Đúng. Các cuộc gọi được thực hiện bằng phím chế độ thử nghiệm sẽ được định tuyến thông qua trình mô phỏng của chúng tôi thay vì mạng của nhà cung cấp dịch vụ trực tiếp — hoàn hảo cho đường ống CI và thử nghiệm tải. Các yêu cầu ở chế độ thử nghiệm không tính phí theo số phút cho phép của bạn và không bao giờ đổ chuông đến điện thoại thật.
100 yêu cầu mỗi giây đối với gói tiêu chuẩn, không giới hạn đối với doanh nghiệp. Mỗi phản hồi bao gồm các tiêu đề `X-RateLimit-Limit`, `X-RateLimit-Remaining` và `X-RateLimit-Reset` để bạn có thể điều chỉnh tốc độ lưu lượng truy cập của mình một cách chính xác. Khi bạn vượt quá giới hạn, bạn sẽ nhận được 429 với giá trị `Thử lại sau`.
Mọi yêu cầu webhook đều bao gồm tiêu đề `X-Ajoxi-Signature`. Tính toán HMAC-SHA256 trên nội dung yêu cầu thô bằng bí mật webhook của bạn, sau đó so sánh hai giá trị theo thời gian không đổi. Các ứng dụng khách SDK (Node, Python, Go, Ruby) đi kèm với trình trợ giúp `verifyWebhook()` xử lý việc này cho bạn.
Chúng tôi không bao giờ phá vỡ phiên bản API ổn định. Các thay đổi lớn được gửi theo đường dẫn phiên bản mới (ví dụ: `/v2/`). Các phiên bản không được dùng nữa vẫn tồn tại trong ít nhất 18 tháng sau khi phiên bản kế nhiệm xuất xưởng và bạn nhận được cảnh báo qua email ít nhất 6 tháng trước khi hết phiên bản.
Không phải hiện tại. API là REST + JSON với các Sự kiện do máy chủ gửi tùy chọn để truyền trực tuyến các điểm cuối như bản ghi trực tiếp. Nếu GraphQL bỏ chặn một quy trình làm việc cụ thể cho bạn, hãy gửi yêu cầu thông qua nhóm tài khoản của bạn - chúng tôi theo dõi nhu cầu và ưu tiên phù hợp.
Tạo khóa hộp cát, cài đặt SDK và thực hiện cuộc gọi có thể lập trình đầu tiên của bạn trước bữa trưa.