API v2
Używaj REST API w wersji v2 do zarządzania agentami, przesyłania strumieniowego czatu, obsługi konwersacji, informacji zwrotnej, źródeł, kontaktów, leadów i ustawień.
API v2 to ustrukturyzowane REST API do zarządzania agentami i tworzenia niestandardowych rozwiązań czatu. Dodaje ono zarządzanie agentami, przesyłanie strumieniowe czatu, historię konwersacji, informację zwrotną o wiadomościach, kontakty, leady, źródła, ustawienia oraz punkty końcowe trenowania.
Dostęp do API wymaga planu Hobby lub wyższego z aktywnymi rozliczeniami.
Bazowy adres URL
https://your-domain.com/api/v2
Uwierzytelnianie
Z wyjątkiem kontroli stanu usługi, wysyłaj klucz API swojego obszaru roboczego jako token typu bearer:
Authorization: Bearer YOUR_API_KEY
Twórz i unieważniaj klucze API w sekcji Ustawienia > Klucze API.
Format odpowiedzi
Większość odpowiedzi w przypadku powodzenia zwraca obiekt zasobu albo otoczkę data:
{
"data": []
}
Punkty końcowe zwracające listy stosują paginację kursorową:
{
"data": [],
"pagination": {
"cursor": null,
"hasMore": false,
"total": 0
}
}
Błędy wykorzystują ustrukturyzowany obiekt error:
{
"error": {
"code": "VALIDATION_INVALID_BODY",
"message": "Invalid request body"
}
}
Każda odpowiedź v2 zawiera nagłówek x-request-id. Podaj go w kontakcie z pomocą techniczną w sprawie żądania API.
Zakres konwersacji
Punkty końcowe do odczytu konwersacji domyślnie używają source=api_v2. Ustaw source=widget, aby zwrócić konwersacje z widżetu i Playgroundu; wiersze z Playgroundu są zapisywane ze źródłem widget. Ustaw source=all, aby zwrócić konwersacje z API v2, widżetu i Playgroundu. Wyniki zawsze pozostają ograniczone do agenta uwierzytelnionego konta. Nieprawidłowa wartość source lub podanie więcej niż jednego parametru zapytania source skutkuje błędem 400 VALIDATION_INVALID_BODY. Kontynuacja czatu, ponawianie odpowiedzi, informacja zwrotna, lista wiadomości oraz odczyty dla poszczególnych użytkowników pozostają ograniczone do konwersacji API v2.
Stan usługi
GET /api/v2/health
Kontrola stanu usługi nie wymaga uwierzytelnienia.
Sukces: 200 OK
{
"status": "ok",
"timestamp": 1784332800
}
timestamp to bieżący znacznik czasu Unix w sekundach.
Czat
POST /api/v2/agents/{agentId}/chat
Żądanie:
{
"message": "What plans do you offer?",
"conversationId": "optional-existing-conversation-id",
"userId": "optional-user-id",
"stream": true
}
| Pole | Wymagane | Uwagi |
|---|---|---|
message | Tak | Od 1 do 32 000 znaków. |
conversationId | Nie | Kontynuuje konwersację API v2. Nieznane identyfikatory skutkują błędem 404. |
userId | Nie | Stabilny identyfikator użytkownika końcowego, służący do grupowania konwersacji API. Dozwolone są litery, cyfry, ., _ i -. |
stream | Nie | Domyślnie true. Ustaw false, aby otrzymać jedną odpowiedź JSON. |
Odpowiedzi strumieniowe wykorzystują zdarzenia Server-Sent Events. Strumień zawiera zdarzenia message-start, text-start, text-delta, text-end, message-metadata, finish oraz [DONE]. Błąd strumienia lub hooka kończącego emituje zdarzenie error z error.code ustawionym na CHAT_STREAMING_ERROR; ten kod dotyczy wyłącznie protokołu SSE i jest niezależny od ustrukturalnego katalogu błędów REST. message-metadata zawiera identyfikator wiadomości asystenta, jeśli zapis się powiódł, a także identyfikator konwersacji, identyfikator użytkownika, przyczynę zakończenia oraz zużycie. Jego pole messageId ma wartość null, gdy żadna wiadomość asystenta nie została zapisana. Gdy odpowiedź zatrzymuje się na akcji po stronie klienta, strumień emituje także zdarzenie tool-call z { "id", "name", "arguments" }; prześlij wynik do endpointu tool-result, aby wznowić konwersację — odpowiedź na to żądanie strumieniuje kontynuację.
Odpowiedzi bez przesyłania strumieniowego zwracają:
{
"data": {
"id": "123",
"role": "assistant",
"parts": [{ "type": "text", "text": "..." }],
"pendingToolCall": null,
"metadata": {
"userMessageId": "122",
"conversationId": "abc123",
"userId": "user_123",
"finishReason": "stop",
"usage": { "credits": 1 }
}
}
}
W odpowiedziach bez przesyłania strumieniowego wartości data.id oraz metadata.userMessageId to liczbowe identyfikatory wiadomości zserializowane jako ciągi znaków, lub null, gdy odpowiadająca wiadomość nie została zapisana. metadata.userId to podany lub zapisany identyfikator użytkownika, albo null. pendingToolCall ma wartość null, chyba że odpowiedź została wstrzymana na wywołaniu narzędzia po stronie klienta; wówczas zawiera { "id", "name", "arguments" } dla endpointu wyników narzędzi.
Podsumowanie punktów końcowych
| Metoda | Punkt końcowy | Opis | Odniesienie |
|---|---|---|---|
| GET | /api/v2/health | Sprawdzenie stanu usługi API. | Stan usługi |
| GET | /api/v2/agents | Lista agentów. | Agenci i ustawienia |
| POST | /api/v2/agents | Tworzenie agenta. | Agenci i ustawienia |
| GET | /api/v2/agents/{agentId} | Pobieranie agenta. | Agenci i ustawienia |
| PATCH | /api/v2/agents/{agentId} | Aktualizacja nazwy lub adresu URL agenta. | Agenci i ustawienia |
| DELETE | /api/v2/agents/{agentId} | Usuwanie agenta. | Agenci i ustawienia |
| POST | /api/v2/agents/{agentId}/chat | Wysyłanie wiadomości czatu. | Czat |
| GET | /api/v2/agents/{agentId}/conversations | Lista konwersacji według źródła. | Konwersacje |
| GET | /api/v2/agents/{agentId}/conversations/export | Eksportowanie konwersacji wraz z wiadomościami. | Konwersacje |
| GET | /api/v2/agents/{agentId}/conversations/{conversationId} | Pobieranie jednej konwersacji według źródła. | Konwersacje |
| GET | /api/v2/agents/{agentId}/conversations/{conversationId}/messages | Lista wiadomości w konwersacji API v2. | Konwersacje |
| POST | /api/v2/agents/{agentId}/conversations/{conversationId}/retry | Ponowienie odpowiedzi asystenta API v2. | Konwersacje |
| POST | /api/v2/agents/{agentId}/conversations/{conversationId}/tool-result | Przesłanie wyniku narzędzia po stronie klienta. | Konwersacje |
| PATCH | /api/v2/agents/{agentId}/conversations/{conversationId}/messages/{messageId}/feedback | Ustawianie lub czyszczenie informacji zwrotnej o wiadomości asystenta. | Konwersacje |
| GET | /api/v2/agents/{agentId}/users/{userId}/conversations | Lista konwersacji API v2 dla użytkownika końcowego. | Konwersacje |
| GET | /api/v2/agents/{agentId}/sources | Lista źródeł trenowania. | Źródła i trenowanie |
| POST | /api/v2/agents/{agentId}/sources/text | Dodawanie źródła tekstowego. | Źródła i trenowanie |
| POST | /api/v2/agents/{agentId}/sources/qna | Dodawanie źródła pytań i odpowiedzi. | Źródła i trenowanie |
| POST | /api/v2/agents/{agentId}/sources/url | Dodawanie lub ponowne trenowanie jednego źródła URL. | Źródła i trenowanie |
| POST | /api/v2/agents/{agentId}/sources/file/upload-url | Tworzenie podpisanych adresów URL do bezpośredniego przesyłania plików. | Źródła i trenowanie |
| POST | /api/v2/agents/{agentId}/sources/file | Rejestrowanie przesłanych plików i rozpoczęcie przetwarzania. | Źródła i trenowanie |
| DELETE | /api/v2/agents/{agentId}/sources/{documentId} | Usuwanie źródła. | Źródła i trenowanie |
| GET | /api/v2/agents/{agentId}/contacts | Lista kontaktów. | Kontakty |
| POST | /api/v2/agents/{agentId}/contacts | Tworzenie lub aktualizacja jednego kontaktu na podstawie identyfikatora zewnętrznego. | Kontakty |
| POST | /api/v2/agents/{agentId}/contacts/import | Zbiorcze tworzenie lub aktualizacja kontaktów. | Kontakty |
| GET | /api/v2/agents/{agentId}/leads | Lista zebranych leadów. | Kontakty i leady |
| GET/PATCH | /api/v2/agents/{agentId}/settings/ai | Odczyt lub aktualizacja ustawień AI. | Agenci i ustawienia |
| GET/PATCH | /api/v2/agents/{agentId}/settings/design | Odczyt lub aktualizacja ustawień wyglądu. | Agenci i ustawienia |
| GET/PATCH | /api/v2/agents/{agentId}/settings/security | Odczyt lub aktualizacja ustawień zabezpieczeń. | Agenci i ustawienia |
| GET/PATCH | /api/v2/agents/{agentId}/settings/notifications | Odczyt lub aktualizacja ustawień powiadomień. | Agenci i ustawienia |
| GET/PATCH | /api/v2/agents/{agentId}/settings/training | Odczyt lub aktualizacja ustawień trenowania. | Agenci i ustawienia |
| GET | /api/v2/agents/{agentId}/channels/instagram | Pobieranie połączenia z Instagramem, automatyzacji i starterów konwersacji. | Kanał Instagram |
| GET/PATCH | /api/v2/agents/{agentId}/channels/instagram/automations/{key} | Odczyt lub aktualizacja jednej automatyzacji Instagram. | Kanał Instagram |
| GET/PATCH | /api/v2/agents/{agentId}/channels/instagram/conversation-starters | Odczyt lub aktualizacja starterów konwersacji na Instagramie. | Kanał Instagram |
| GET | /api/v2/agents/{agentId}/train | Pobieranie stanu trenowania. | Źródła i trenowanie |
| POST | /api/v2/agents/{agentId}/train | Rozpoczęcie ponownego trenowania źródeł internetowych. | Źródła i trenowanie |
Informacja zwrotna
Użyj informacji zwrotnej, aby oznaczyć wiadomości asystenta API v2 jako positive, negative lub null. Schemat żądania, odpowiedź oraz zachowanie w przypadku błędów opisano w sekcji Konwersacje, wiadomości i informacje zwrotne.
Paginacja
Traktuj kursory jako nieprzejrzyste tokeny zwracane przez API. W kolejnym żądaniu prześlij wartość pagination.cursor bez zmian; nie konstruuj jej ani nie dekoduj.
| Parametr | Uwagi |
|---|---|
limit | Domyślnie 20. Musi to być liczba całkowita od 1 do 100, chyba że dany punkt końcowy dokumentuje niższą wartość maksymalną; eksport konwersacji ma maksimum równe 20. |
cursor | Nieprzejrzysty kursor zwrócony przez poprzednią stronę wyników. Nieprawidłowe kursory skutkują błędem 400 VALIDATION_INVALID_BODY. |
Kontakty akceptują dodatkowo parametr search. Leady akceptują inkluzywne filtry dat i godzin w formacie ISO 8601: createdAfter oraz createdBefore. Źródła akceptują sourceType z wartościami web_crawl, file_upload, text_snippet lub qna_entry.
Format kursora jest wewnętrznym szczegółem implementacji. Klienci muszą traktować każdy kursor jako nieprzejrzysty i przesyłać go bez zmian, bez konstruowania ani dekodowania.
Najczęstsze błędy
| Kod | Znaczenie |
|---|---|
AUTH_INVALID_API_KEY | Nie udało się zweryfikować klucza API typu Bearer. |
SUBSCRIPTION_PLAN_REQUIRED | Plan obszaru roboczego nie obejmuje dostępu do API. |
AGENT_NOT_FOUND | Agent nie istnieje lub nie należy do konta powiązanego z kluczem API. |
VALIDATION_INVALID_BODY | Treść żądania, wartość ścieżki, parametr zapytania, limit lub cursor nie przeszły walidacji. |
Pełny wykaz wszystkich 27 zadeklarowanych kodów, statusów HTTP, wyzwalaczy oraz kodów zarezerwowanych znajdziesz w pełnym katalogu błędów API v2.
Materiały źródłowe
- Katalog błędów
- Agenci i ustawienia
- Konwersacje, wiadomości, ponowienia prób i informacje zwrotne
- Źródła i trenowanie
- Kontakty i leady
- Kanał Instagram