Adres bazowy
Uwierzytelnianie
Każde żądanie musi zawierać klucz API organizacji w nagłówkuX-API-Key.
Klucze tworzysz i unieważniasz w panelu: kliknij swoje konto w lewym dolnym rogu paska bocznego, a potem Brosbots API.
ID agenta
Wszędzie, gdzie ścieżka zawiera{agent_id}, możesz podać publiczne ID
agenta, np. agent_7fK2mQ9xLp3RtV8wYb1N (znajdziesz je w edytorze agenta,
obok jego nazwy - kliknięcie kopiuje), albo jego numer. Oba wskazują tego
samego agenta. W odpowiedziach pole workflow_id jest numerem.
Adresy z tej dokumentacji (
/agents, /campaigns, /integrations,
/triggers, /usage, /reports) zastąpiły wcześniejsze, np.
/workflow/{workflow_id}/calls czy /organizations/usage/.... Wcześniejsze
adresy nadal działają bez zmian, więc istniejące integracje nie wymagają
poprawek. Nowe buduj na adresach z tej dokumentacji. Nazwy pól w treści
żądań i odpowiedzi (np. workflow_id, workflow_run_id) się nie zmieniły.Szybki start: wywołaj połączenie
Rozpocznij połączenie wychodzące istniejącym agentem.phone_number i
initial_context to pola obok siebie; zmienne z initial_context agent
widzi w promptach jako {{initial_context.<klucz>}}.
POST /agents/{agent_id}/conversations nie dzwoni. Tworzy tylko rekord
przebiegu dla rozmowy w przeglądarce (mode: webrtc, smallwebrtc) albo
czatu (chat).Odczyt rozmowy
Po zakończeniu rozmowy pobierz przebieg (zebrane dane, czas trwania, koszt, SMS-y, linki do plików):
Lista
GET /agents/{agent_id}/conversations zwraca dla każdej rozmowy
initial_context, gathered_context i duration_seconds, więc nie musisz
dociągać szczegółów każdej z nich. Linki do pobrania, logi i SMS-y zwraca
tylko widok pojedynczej rozmowy.
Transkrypcja
role to user (rozmówca) albo assistant (agent). Kolejne fragmenty tego
samego mówcy są połączone w jedną wypowiedź; start i end to znaczniki
czasu jej pierwszego i ostatniego fragmentu (plik nie zapisuje końca
wypowiedzi). download_url prowadzi do surowego pliku tekstowego, w którym
każdy fragment to osobna linia:
Nagranie
download_url (WAV), content_type i expires_at. expires_in to
czas życia linku w sekundach, od 60 do 86400 (domyślnie 3600). Oba endpointy
zwracają 404, dopóki rozmowa trwa i plik nie został zapisany, oraz gdy plik
usunęła polityka retencji.
Usuwanie rozmowy
204. Usunięcie jest nieodwracalne: nagranie i transkrypcja
znikają z magazynu plików, a z rozmowy - initial_context (w tym numer
telefonu), gathered_context, logi, SMS-y wysłane w trakcie rozmowy i zapisy
dostarczeń integracji. Rozmowa znika z historii, a endpointy przebiegu
zwracają dla niej 404. Czas trwania i koszt zostają w rozliczeniach
organizacji, bo wymagają tego przepisy księgowe.
Konwencje
- Ciała żądań i odpowiedzi są w JSON (
Content-Type: application/json). - Znaczniki czasu w ISO 8601 ze strefą.
- Listy stronicowane parametrami
page/limit; odpowiedź zawieratotal_count/total_pages. - Błędy używają standardowych kodów HTTP z ciałem JSON:
Limity
API nie ma dziś stałego limitu liczby zapytań na klucz. Kod429 zwracają
endpointy dzwoniące (POST /agents/{agent_id}/calls,
POST /triggers/{trigger_id}/calls), gdy wszystkie kanały wychodzące organizacji są
zajęte; nagłówek Retry-After podaje, ile sekund odczekać. Połączenie poza
godzinami 8:00-21:00 czasu odbiorcy kończy się kodem 409 z nagłówkiem
Retry-After i polem detail.retry_at. Numer z listy Nie dzwonić
organizacji kończy się kodem 403 z polem detail zaczynającym się od
do_not_call.
Obsługuj 429 ogólnie: czekaj tyle, ile mówi Retry-After, a gdy nagłówka
nie ma - ponawiaj z wykładniczym odstępem. Limit zapytań może zostać
wprowadzony w przyszłości.
Interaktywna dokumentacja
Zawsze aktualna, interaktywna referencja (Swagger UI):/api/v1/public-docs,
a surowa specyfikacja OpenAPI:
/api/v1/public-openapi.json.