สร้างเวิร์กโฟลว์การสื่อสารระดับผู้ให้บริการด้วย RESTful API ของเรา JSON บน HTTPS, การตรวจสอบสิทธิ์โทเค็น Bearer และ 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"
}คำขอทั้งหมดรับรองความถูกต้องด้วยโทเค็นผู้ถือใน Authorization ส่วนหัว สร้างคีย์จากแท็บ API ของคอนโซล Ajoxi ของคุณ — ใช้ AJX_LIVE_… สำหรับปริมาณการผลิตและ AJX_TEST_… สำหรับแซนด์บ็อกซ์
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"โทรออก แสดงรายการ โอนสาย และรับสายสนทนา
/v1/callsแสดงรายการการโทรทั้งหมดด้วยการแบ่งหน้าเคอร์เซอร์และตัวกรองวันที่
/v1/callsเริ่มต้นการโทรออกใหม่หรือเรียกใช้แคมเปญผู้โทรออก
/v1/calls/{id}รับการโทรครั้งเดียวด้วย ID พร้อมข้อมูลเมตาแบบเต็ม
/v1/calls/{id}/transferโอนสายที่ใช้งานอยู่ไปยังตัวแทนหรือส่วนขยายอื่น
ค้นหา จัดเตรียม โอน และปล่อยหมายเลขโทรศัพท์
/v1/numbersค้นหาหมายเลขท้องถิ่น หมายเลขโทรฟรี หรือหมายเลขต่างประเทศ
/v1/numbersจัดเตรียมหมายเลขใหม่ลงในบัญชีของคุณ
/v1/numbers/{id}อัปเดตการกำหนดค่าการกำหนดเส้นทาง หมายเลขผู้โทร หรือ SMS บนหมายเลข
/v1/numbers/{id}ปล่อยเบอร์กลับลงสระ กลับไม่ได้
ส่งและรับ SMS, MMS และประวัติการสนทนา
/v1/messagesแสดงรายการข้อความ กรองตามเส้นทาง ช่องทาง หรือการสนทนา
/v1/messagesส่ง SMS หรือ MMS รองรับไฟล์แนบและเทมเพลตสื่อ
เข้าถึงการบันทึกการโทร ข้อความถอดเสียง และข้อมูลเชิงลึกที่สร้างโดย AI
/v1/recordingsแสดงรายการบันทึกการโทรพร้อมตัวกรองวันที่และตัวแทนเสริม
/v1/recordings/{id}รับการบันทึกรายการเดียวพร้อมข้อความถอดเสียงและข้อมูลสรุป AI
/v1/transcripts/{id}รับข้อความถอดเสียงแบบเต็มสำหรับการโทรหรือการบันทึก
สมัครสมาชิกกิจกรรมแพลตฟอร์มแบบเรียลไทม์
/v1/webhooksแสดงรายการการสมัครใช้งาน Webhook ที่กำหนดค่าไว้
/v1/webhooksสมัครสมาชิกหนึ่งเหตุการณ์ขึ้นไป (call.start, message.received)
/v1/webhooks/{id}ลบการสมัครสมาชิก webhook
ทุกการตอบสนองข้อผิดพลาดจะส่งคืน JSON ด้วย error.code และ error.message. รหัสสถานะ HTTP ตรงกับหมวดหมู่
บัญชีมาตรฐานจำกัดอยู่ที่ 100 คำขอต่อวินาทีต่อคีย์ API แผนระดับองค์กรไม่มีขีดจำกัด — เราปรับขนาดไปพร้อมกับการรับส่งข้อมูลของคุณ ทุกการตอบกลับจะมีส่วนหัวของอัตราจำกัดสามหัวข้อ:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000เมื่อเกินขีดจำกัด คุณจะได้รับการตอบกลับ 429 ด้วย a Retry-After ส่วนหัวในไม่กี่วินาที ไคลเอนต์ SDK ใช้การแบ็คออฟแบบเอ็กซ์โปเนนเชียลกับส่วนหัวเหล่านี้โดยอัตโนมัติ
จุดสิ้นสุดของรายการส่งคืนได้สูงสุด 50 รายการต่อหน้าตามค่าเริ่มต้น (กำหนดค่าได้สูงสุด 200 รายการผ่าน ?limit=200). คำตอบแต่ละรายการประกอบด้วยก next_cursor — ส่งมันกลับเป็น ?cursor=… เพื่อดึงข้อมูลหน้าถัดไป เมื่อไร next_cursor เป็นโมฆะ คุณมาถึงจุดสิ้นสุดแล้ว
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}สมัครสมาชิกกิจกรรมแพลตฟอร์มผ่าน HTTPS POST ที่ลงนามแล้ว ทุกคำขอของ webhook จะมีไฟล์ X-Ajoxi-Signature ส่วนหัว — ตรวจสอบว่าเป็น HMAC-SHA256 บนเนื้อหาคำขอดิบโดยใช้ความลับของเว็บฮุคของคุณ
call.startedเริ่มทำงานเมื่อมีสายเรียกเข้าหรือโทรออกเริ่มดังขึ้นcall.answeredเริ่มทำงานเมื่อมีการรับสายโดยมนุษย์หรือพนักงานต้อนรับ AIcall.completedเริ่มทำงานเมื่อวางสาย เพย์โหลดประกอบด้วยระยะเวลา URL การบันทึก และการจัดการขั้นสุดท้ายmessage.receivedเริ่มทำงานเมื่อมี SMS หรือ MMS ขาเข้ามาถึงหมายเลขที่จัดเตรียมไว้message.deliveredเริ่มทำงานเมื่อข้อความขาออกได้รับการยืนยันจากผู้ให้บริการขนส่งrecording.readyเริ่มทำงานเมื่อมีการประมวลผลการบันทึกการโทรและพร้อมให้ดาวน์โหลดtranscript.readyเริ่มทำงานเมื่อ AI Transcript สำหรับการบันทึกเสร็จสิ้นการประมวลผลการนำส่งที่ล้มเหลวจะลองอีกครั้งโดยมีการแบ็คออฟแบบเอ็กซ์โปเนนเชียลเป็นเวลาสูงสุด 24 ชั่วโมง หลังจากพยายามครั้งสุดท้าย กิจกรรมจะถูกย้ายไปยังคิวที่เสียซึ่งคุณสามารถเล่นซ้ำได้จากคอนโซล
เวอร์ชันเสถียรปัจจุบันคือ v1. การเปลี่ยนแปลงที่ทำลายล้างจะจัดส่งภายใต้คำนำหน้าใหม่ (/v2/ฯลฯ) — ไม่เคยอยู่ในเวอร์ชันที่มีอยู่ เวอร์ชันที่เลิกใช้งานแล้วจะยังคงใช้งานได้เป็นเวลาอย่างน้อย 18 เดือนหลังจากจัดส่งรุ่นต่อ โดยมีคำเตือนทางอีเมล 6 เดือนก่อนพระอาทิตย์ตกดิน
SDK บุคคลที่หนึ่งพร้อมใช้งานสำหรับ Node.js, Python, Go และ Ruby แต่ละรายการมาพร้อมกับไคลเอนต์ที่พิมพ์ ตรรกะการลองใหม่ และ verifyWebhook() ผู้ช่วย
คำขอทั้งหมดใช้การตรวจสอบสิทธิ์ Bearer-token สร้างคีย์ API ในคอนโซล Ajoxi จากนั้นส่งต่อเป็น `การอนุญาต: ผู้ถือ AJX_LIVE_XXXXX` ในทุกคำขอ ใช้คีย์ `AJX_TEST_…` แยกต่างหากสำหรับการรับส่งข้อมูลแซนด์บ็อกซ์ - สภาพแวดล้อมการทดสอบจะถูกแยกออกและไม่เคยทำการโทรจริง
ใช่. การโทรที่วางไว้ด้วยคีย์โหมดทดสอบจะถูกส่งผ่านโปรแกรมจำลองของเราแทนเครือข่ายผู้ให้บริการถ่ายทอดสด ซึ่งเหมาะสำหรับไปป์ไลน์ CI และการทดสอบโหลด คำขอโหมดทดสอบจะไม่เรียกเก็บเงินจากค่าเผื่อนาทีของคุณและจะไม่ส่งเสียงโทรศัพท์จริง
100 คำขอต่อวินาทีในแผนมาตรฐาน ไม่จำกัดบนองค์กร การตอบกลับแต่ละครั้งจะมีส่วนหัว `X-RateLimit-Limit`, `X-RateLimit-Remaining` และ `X-RateLimit-Reset` เพื่อให้คุณสามารถกำหนดอัตราการรับส่งข้อมูลได้อย่างแม่นยำ เมื่อคุณเกินขีดจำกัด คุณจะได้รับ 429 ที่มีค่า "ลองใหม่หลังจาก"
คำขอเว็บฮุคทุกรายการจะมีส่วนหัว `X-Ajoxi-Signature` คำนวณ HMAC-SHA256 บนเนื้อหาคำขอดิบโดยใช้ข้อมูลลับของเว็บฮุค จากนั้นเปรียบเทียบค่าเวลาคงที่ทั้งสองค่า ไคลเอนต์ SDK (Node, Python, Go, Ruby) มาพร้อมกับตัวช่วย `verifyWebhook()` ที่จัดการสิ่งนี้ให้กับคุณ
เราไม่เคยทำลายเวอร์ชัน API ที่เสถียร การเปลี่ยนแปลงที่ไม่สมบูรณ์จะจัดส่งภายใต้เส้นทางเวอร์ชันใหม่ (เช่น `/v2/`) เวอร์ชันที่เลิกใช้งานแล้วจะยังคงใช้งานได้เป็นเวลาอย่างน้อย 18 เดือนหลังจากจัดส่งรุ่นต่อ และคุณจะได้รับคำเตือนทางอีเมลอย่างน้อย 6 เดือนก่อนพระอาทิตย์ตกดิน
ไม่ใช่ในปัจจุบัน API คือ REST + JSON พร้อมเหตุการณ์ที่เซิร์ฟเวอร์ส่งซึ่งเป็นตัวเลือกสำหรับการสตรีมจุดสิ้นสุด เช่น การถอดเสียงสด หาก GraphQL จะปลดบล็อกขั้นตอนการทำงานเฉพาะสำหรับคุณ ให้ยื่นคำขอผ่านทีมบัญชีของคุณ — เราจะติดตามความต้องการและจัดลำดับความสำคัญตามนั้น
หมุนคีย์แซนด์บ็อกซ์ ติดตั้ง SDK และวางการโทรที่ตั้งโปรแกรมได้ครั้งแรกก่อนรับประทานอาหารกลางวัน