Twórz przepływy pracy komunikacyjne na poziomie operatorskim dzięki naszemu RESTful API. JSON przez HTTPS, uwierzytelnianie tokenu okaziciela i webhooki w czasie rzeczywistym.
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"
}Wszystkie żądania są uwierzytelniane za pomocą tokenu okaziciela w pliku Authorization chodnikowiec. Wygeneruj klucze z zakładki API swojej konsoli Ajoxi — użyj AJX_LIVE_… dla ruchu produkcyjnego i AJX_TEST_… do piaskownicy.
curl https://api.ajoxi.com/v1/calls \
-H "Authorization: Bearer AJX_LIVE_XXXXX"Umieszczaj, wyświetlaj, przekazuj i odbieraj połączenia głosowe.
/v1/callsLista wszystkich połączeń z podziałem na strony kursora i filtrami dat.
/v1/callsZainicjuj nowe połączenie wychodzące lub uruchom kampanię dialera.
/v1/calls/{id}Pobierz pojedyncze połączenie według identyfikatora z pełnymi metadanymi.
/v1/calls/{id}/transferPrzenieś aktywne połączenie do innego agenta lub numeru wewnętrznego.
Wyszukuj, udostępniaj, przenoś i zwalniaj numery telefonów.
/v1/numbersWyszukaj dostępne numery lokalne, bezpłatne lub międzynarodowe.
/v1/numbersPodaj nowy numer na swoim koncie.
/v1/numbers/{id}Zaktualizuj routing, identyfikator rozmówcy lub konfigurację SMS-ów dla numeru.
/v1/numbers/{id}Zwolnij numer z powrotem do puli. Nieodwracalny.
Wysyłaj i odbieraj SMS-y, MMS-y oraz historię rozmów.
/v1/messagesWyświetl listę wiadomości, filtruj według kierunku, kanału lub rozmowy.
/v1/messagesWyślij SMS lub MMS. Obsługuje załączniki i szablony multimedialne.
Uzyskaj dostęp do nagrań rozmów, transkrypcji i spostrzeżeń generowanych przez sztuczną inteligencję.
/v1/recordingsWyświetlaj nagrania rozmów z opcjonalnymi filtrami daty i agenta.
/v1/recordings/{id}Pobierz pojedyncze nagranie z transkrypcją i podsumowaniem AI.
/v1/transcripts/{id}Pobierz pełny zapis rozmowy lub nagrania.
Subskrybuj wydarzenia na platformie w czasie rzeczywistym.
/v1/webhooksLista skonfigurowanych subskrypcji webhook.
/v1/webhooksSubskrybuj jedno lub więcej wydarzeń (połączenie.start, wiadomość.odebrana).
/v1/webhooks/{id}Usuń subskrypcję elementu webhook.
Każda odpowiedź na błąd zwraca JSON z rozszerzeniem error.code I error.message. Kod stanu HTTP pasuje do kategorii.
Konta standardowe są ograniczone do 100 żądań na sekundę na klucz API. Plany Enterprise nie mają stałego limitu — skalujemy się wraz z Twoim ruchem. Każda odpowiedź zawiera trzy nagłówki ograniczające szybkość transmisji:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 87
X-RateLimit-Reset: 1715800000Po przekroczeniu limitu otrzymasz odpowiedź 429 z a Retry-After nagłówek w ciągu kilku sekund. Klienci SDK automatycznie implementują wykładnicze wycofywanie względem tych nagłówków.
Punkty końcowe listy domyślnie zwracają maksymalnie 50 elementów na stronę (można skonfigurować do 200 za pośrednictwem ?limit=200). Każda odpowiedź zawiera next_cursor — przekaż go z powrotem jako ?cursor=… aby pobrać następną stronę. Gdy next_cursor ma wartość null, dotarłeś do końca.
{
"data": [ ... ],
"next_cursor": "Y3Vyc29yX2FmMmI...",
"has_more": true
}Subskrybuj wydarzenia na platformie za pośrednictwem podpisanych postów HTTPS. Każde żądanie webhooka zawiera plik X-Ajoxi-Signature nagłówek — zweryfikuj go jako HMAC-SHA256 w nieprzetworzonej treści żądania, używając sekretu webhooka.
call.startedWywoływany, gdy zaczyna dzwonić połączenie przychodzące lub wychodzące.call.answeredWywoływany, gdy połączenie zostanie odebrane przez recepcjonistę będącego człowiekiem lub sztuczną inteligencją.call.completedZwolniony po zakończeniu połączenia. Ładunek obejmuje czas trwania, adres URL nagrania i ostateczną dyspozycję.message.receivedUruchamiany, gdy przychodząca wiadomość SMS lub MMS dotrze na podany numer.message.deliveredWywoływane, gdy wiadomość wychodząca zostanie potwierdzona przez operatora.recording.readyUruchamiane, gdy nagranie rozmowy jest przetwarzane i dostępne do pobrania.transcript.readyUruchamiane po zakończeniu przetwarzania transkrypcji AI nagrania.W przypadku nieudanych dostaw ponów próbę z wykładniczym wycofywaniem do 24 godzin. Po ostatniej próbie wydarzenie zostaje przeniesione do kolejki niewysłanych wiadomości, którą możesz odtworzyć z konsoli.
Obecna stabilna wersja to v1. Przełomowe zmiany są dostarczane pod nowym prefiksem (/v2/itp.) — nigdy w istniejącej wersji. Przestarzałe wersje pozostają dostępne przez co najmniej 18 miesięcy po wydaniu następcy, z 6-miesięcznym ostrzeżeniem e-mailem przed wygaśnięciem.
Własne zestawy SDK są dostępne dla Node.js, Python, Go i Ruby. Każdy z nich jest dostarczany z wpisanymi klientami, logiką ponawiania prób i plikiem verifyWebhook() pomocnik.
Wszystkie żądania używają uwierzytelniania tokenu okaziciela. Wygeneruj klucz API w konsoli Ajoxi, a następnie przy każdym żądaniu przekaż go jako `Autoryzacja: Bearer AJX_LIVE_XXXXX`. Użyj osobnego klucza `AJX_TEST_…` dla ruchu w piaskownicy — środowisko testowe jest izolowane i nigdy nie wykonuje prawdziwych wywołań.
Tak. Połączenia nawiązywane za pomocą klawiszy trybu testowego są kierowane przez nasz symulator zamiast przez aktywną sieć operatora — idealne rozwiązanie do potoków CI i testowania obciążenia. Żądania w trybie testowym nie naliczają limitu minut i nigdy nie dzwonią z prawdziwego telefonu.
100 żądań na sekundę w planie standardowym, bez ograniczeń w przypadku przedsiębiorstw. Każda odpowiedź zawiera nagłówki „X-RateLimit-Limit”, „X-RateLimit-Remaining” i „X-RateLimit-Reset”, dzięki czemu możesz dokładnie kontrolować ruch. Po przekroczeniu limitu otrzymasz komunikat 429 z wartością „Ponów próbę”.
Każde żądanie webhooka zawiera nagłówek „X-Ajoxi-Signature”. Oblicz wartość HMAC-SHA256 na podstawie nieprzetworzonej treści żądania, korzystając z sekretu elementu webhook, a następnie porównaj obie wartości w czasie stałym. Klienci SDK (Node, Python, Go, Ruby) są dostarczani z pomocnikiem `verifyWebhook()`, który obsługuje to za Ciebie.
Nigdy nie psujemy stabilnej wersji API. Istotne zmiany są dostarczane w nowej ścieżce wersji (np. `/v2/`). Przestarzałe wersje pozostają aktywne przez co najmniej 18 miesięcy po dostarczeniu następcy, a przed wygaśnięciem wersji otrzymasz e-mail z ostrzeżeniami przez co najmniej 6 miesięcy.
Nie obecnie. Interfejs API to REST + JSON z opcjonalnymi zdarzeniami wysyłanymi przez serwer do przesyłania strumieniowego punktów końcowych, takich jak transkrypcje na żywo. Jeśli GraphQL mógłby odblokować dla Ciebie określony przepływ pracy, złóż wniosek za pośrednictwem zespołu ds. obsługi klienta — śledzimy zapotrzebowanie i odpowiednio ustalamy priorytety.
Uruchom klucz piaskownicy, zainstaluj pakiet SDK i wykonaj pierwsze programowalne połączenie przed lunchem.