RESTful API'miz ile operatör düzeyinde iletişim iş akışları oluşturun. HTTPS üzerinden JSON, Taşıyıcı belirteci kimlik doğrulaması ve gerçek zamanlı web kancaları.
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üm istekler, bir Taşıyıcı belirteciyle kimlik doğrulaması yapar. Authorization başlık. Ajoxi konsolunuzun API sekmesinden anahtarlar oluşturun - şunu kullanın: AJX_LIVE_… üretim trafiği için ve AJX_TEST_… sanal alan için.
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"Sesli aramaları yapın, listeleyin, aktarın ve alın.
/v1/callsİmleç sayfalandırması ve tarih filtreleriyle tüm aramaları listeleyin.
/v1/callsYeni bir giden arama başlatın veya bir çevirici kampanyasını tetikleyin.
/v1/calls/{id}Tam meta verilerle kimliğe göre tek bir çağrı alın.
/v1/calls/{id}/transferEtkin bir çağrıyı başka bir temsilciye veya dahili numaraya aktarın.
Telefon numaralarını arayın, temel hazırlığını yapın, taşıyın ve yayınlayın.
/v1/numbersMevcut yerel, ücretsiz veya uluslararası numaraları arayın.
/v1/numbersHesabınıza yeni bir numara sağlayın.
/v1/numbers/{id}Bir numaranın yönlendirmesini, arayan kimliğini veya SMS yapılandırmasını güncelleyin.
/v1/numbers/{id}Havuza bir numara bırakın. Geri döndürülemez.
SMS, MMS ve konuşma geçmişini gönderin ve alın.
/v1/messagesMesajları listeleyin, yöne, kanala veya konuşmaya göre filtreleyin.
/v1/messagesSMS veya MMS gönderin. Medya eklerini ve şablonlarını destekler.
Arama kayıtlarına, transkriptlere ve yapay zeka tarafından oluşturulan içgörülere erişin.
/v1/recordingsİsteğe bağlı tarih ve temsilci filtreleriyle çağrı kayıtlarını listeleyin.
/v1/recordings/{id}Transkript ve AI özetiyle tek bir kayıt alın.
/v1/transcripts/{id}Bir çağrı veya kayıt için tam metni alın.
Gerçek zamanlı platform etkinliklerine abone olun.
/v1/webhooksYapılandırılmış web kancası aboneliklerini listeleyin.
/v1/webhooksBir veya daha fazla etkinliğe abone olun (çağrı.başlat, mesaj.alındı).
/v1/webhooks/{id}Webhook aboneliğini kaldırın.
Her hata yanıtı JSON'u bir değerle döndürür. error.code Ve error.message. HTTP durum kodu kategoriyle eşleşiyor.
Standart hesaplar, API anahtarı başına saniyede 100 istekle sınırlıdır. Kurumsal planların sabit bir sınırı yoktur; trafiğinize göre ölçekleniriz. Her yanıt üç hız sınırı başlığı içerir:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000Limit aşıldığında 429 yanıtı alırsınız. Retry-After saniyeler içinde başlık. SDK istemcileri bu üstbilgilere karşı otomatik olarak üstel geri çekilme uygular.
Liste uç noktaları, varsayılan olarak sayfa başına en fazla 50 öğe döndürür (aracılığıyla 200'e kadar yapılandırılabilir) ?limit=200). Her yanıt bir içerir next_cursor - olarak geri ilet ?cursor=… Sonraki sayfayı almak için Ne zaman next_cursor null ise sona ulaştınız.
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}İmzalı HTTPS POST'ları aracılığıyla platform etkinliklerine abone olun. Her webhook isteği şunları içerir: X-Ajoxi-Signature başlık — webhook sırrınızı kullanarak ham istek gövdesi üzerinden HMAC-SHA256 olduğunu doğrulayın.
call.startedGelen veya giden bir çağrı çalmaya başladığında tetiklenir.call.answeredBir çağrı bir insan veya yapay zeka resepsiyon görevlisi tarafından yanıtlandığında tetiklenir.call.completedBir çağrı sona erdiğinde tetiklenir. Yük; süreyi, kayıt URL'sini ve son durumu içerir.message.receivedHazırlanan bir numaraya gelen bir SMS veya MMS ulaştığında tetiklenir.message.deliveredGiden mesajın operatör tarafından iletildiği onaylandığında tetiklenir.recording.readyBir çağrı kaydı işlendiğinde ve indirilmeye hazır olduğunda tetiklenir.transcript.readyBir kaydın AI transkriptinin işlenmesi tamamlandığında tetiklenir.Başarısız teslimatlar, 24 saate kadar üstel geri çekilmeyle yeniden denenir. Son denemeden sonra etkinlik, konsoldan tekrar oynatabileceğiniz bir teslim edilmeyecekler sırasına taşınır.
Şu anki kararlı sürüm v1. Son değişiklikler yeni bir önek altında gönderilir (/v2/, vb.) — asla mevcut bir sürümün içinde yer almaz. Kullanımdan kaldırılan sürümler, yeni sürüm piyasaya sürüldükten sonra en az 18 ay süreyle kullanılabilir durumda kalır ve gün batımından önce 6 ay e-posta uyarısı verilir.
Node.js, Python, Go ve Ruby için birinci taraf SDK'lar mevcuttur. Her biri, yazılan istemciler, yeniden deneme mantığı ve bir verifyWebhook() yardımcı.
Tüm istekler Taşıyıcı belirteci kimlik doğrulamasını kullanır. Ajoxi konsolunda bir API anahtarı oluşturun ve ardından her istekte bunu "Yetkilendirme: Taşıyıcı AJX_LIVE_XXXXX" olarak iletin. Korumalı alan trafiği için ayrı bir `AJX_TEST_…` anahtarı kullanın; test ortamı yalıtılmıştır ve hiçbir zaman gerçek aramalar yapmaz.
Evet. Test modu tuşlarıyla yapılan çağrılar, canlı operatör ağı yerine simülatörümüz aracılığıyla yönlendirilir; CI ardışık düzenleri ve yük testi için mükemmeldir. Test modu istekleri, dakika ödeneğinize göre faturalandırılmaz ve asla gerçek bir telefonu çalmaz.
Standart planda saniyede 100 istek, kurumsal planda sınırsız. Her yanıt, trafiğinizin hızını doğru bir şekilde ayarlayabilmeniz için "X-RateLimit-Limit", "X-RateLimit-Remaining" ve "X-RateLimit-Reset" başlıklarını içerir. Limiti aştığınızda 'Sonra Yeniden Dene' değeriyle birlikte 429 alırsınız.
Her webhook isteği bir 'X-Ajoxi-Signature' başlığı içerir. Webhook sırrınızı kullanarak HMAC-SHA256'yı ham istek gövdesi üzerinde hesaplayın, ardından iki değeri sabit zamanlı olarak karşılaştırın. SDK istemcileri (Node, Python, Go, Ruby), bunu sizin için halledecek bir "verifyWebhook()" yardımcısıyla birlikte gelir.
Kararlı bir API sürümünü asla bozmayız. Son değişiklikler yeni bir sürüm yolu altında gönderilir (ör. `/v2/`). Kullanımdan kaldırılan sürümler, yeni sürüm piyasaya sürüldükten sonra en az 18 ay boyunca yayında kalır ve herhangi bir gün batımından önce en az 6 ay boyunca e-posta uyarıları alırsınız.
Şu anda değil. API, canlı transkriptler gibi uç noktaların akışını sağlamak için isteğe bağlı Sunucu Tarafından Gönderilen Olaylara sahip REST + JSON'dur. GraphQL sizin için belirli bir iş akışının engelini kaldıracaksa hesap ekibiniz aracılığıyla bir talepte bulunun; talebi takip edip buna göre öncelik veriyoruz.
Bir korumalı alan anahtarını açın, bir SDK yükleyin ve ilk programlanabilir aramanızı öğle yemeğinden önce yapın.