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
}
PoleWymaganeUwagi
messageTakOd 1 do 32 000 znaków.
conversationIdNieKontynuuje konwersację API v2. Nieznane identyfikatory skutkują błędem 404.
userIdNieStabilny identyfikator użytkownika końcowego, służący do grupowania konwersacji API. Dozwolone są litery, cyfry, ., _ i -.
streamNieDomyś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

MetodaPunkt końcowyOpisOdniesienie
GET/api/v2/healthSprawdzenie stanu usługi API.Stan usługi
GET/api/v2/agentsLista agentów.Agenci i ustawienia
POST/api/v2/agentsTworzenie 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}/chatWysyłanie wiadomości czatu.Czat
GET/api/v2/agents/{agentId}/conversationsLista konwersacji według źródła.Konwersacje
GET/api/v2/agents/{agentId}/conversations/exportEksportowanie 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}/messagesLista wiadomości w konwersacji API v2.Konwersacje
POST/api/v2/agents/{agentId}/conversations/{conversationId}/retryPonowienie odpowiedzi asystenta API v2.Konwersacje
POST/api/v2/agents/{agentId}/conversations/{conversationId}/tool-resultPrzesłanie wyniku narzędzia po stronie klienta.Konwersacje
PATCH/api/v2/agents/{agentId}/conversations/{conversationId}/messages/{messageId}/feedbackUstawianie lub czyszczenie informacji zwrotnej o wiadomości asystenta.Konwersacje
GET/api/v2/agents/{agentId}/users/{userId}/conversationsLista konwersacji API v2 dla użytkownika końcowego.Konwersacje
GET/api/v2/agents/{agentId}/sourcesLista źródeł trenowania.Źródła i trenowanie
POST/api/v2/agents/{agentId}/sources/textDodawanie źródła tekstowego.Źródła i trenowanie
POST/api/v2/agents/{agentId}/sources/qnaDodawanie źródła pytań i odpowiedzi.Źródła i trenowanie
POST/api/v2/agents/{agentId}/sources/urlDodawanie lub ponowne trenowanie jednego źródła URL.Źródła i trenowanie
POST/api/v2/agents/{agentId}/sources/file/upload-urlTworzenie podpisanych adresów URL do bezpośredniego przesyłania plików.Źródła i trenowanie
POST/api/v2/agents/{agentId}/sources/fileRejestrowanie 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}/contactsLista kontaktów.Kontakty
POST/api/v2/agents/{agentId}/contactsTworzenie lub aktualizacja jednego kontaktu na podstawie identyfikatora zewnętrznego.Kontakty
POST/api/v2/agents/{agentId}/contacts/importZbiorcze tworzenie lub aktualizacja kontaktów.Kontakty
GET/api/v2/agents/{agentId}/leadsLista zebranych leadów.Kontakty i leady
GET/PATCH/api/v2/agents/{agentId}/settings/aiOdczyt lub aktualizacja ustawień AI.Agenci i ustawienia
GET/PATCH/api/v2/agents/{agentId}/settings/designOdczyt lub aktualizacja ustawień wyglądu.Agenci i ustawienia
GET/PATCH/api/v2/agents/{agentId}/settings/securityOdczyt lub aktualizacja ustawień zabezpieczeń.Agenci i ustawienia
GET/PATCH/api/v2/agents/{agentId}/settings/notificationsOdczyt lub aktualizacja ustawień powiadomień.Agenci i ustawienia
GET/PATCH/api/v2/agents/{agentId}/settings/trainingOdczyt lub aktualizacja ustawień trenowania.Agenci i ustawienia
GET/api/v2/agents/{agentId}/channels/instagramPobieranie 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-startersOdczyt lub aktualizacja starterów konwersacji na Instagramie.Kanał Instagram
GET/api/v2/agents/{agentId}/trainPobieranie stanu trenowania.Źródła i trenowanie
POST/api/v2/agents/{agentId}/trainRozpoczę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.

ParametrUwagi
limitDomyś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.
cursorNieprzejrzysty 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

KodZnaczenie
AUTH_INVALID_API_KEYNie udało się zweryfikować klucza API typu Bearer.
SUBSCRIPTION_PLAN_REQUIREDPlan obszaru roboczego nie obejmuje dostępu do API.
AGENT_NOT_FOUNDAgent nie istnieje lub nie należy do konta powiązanego z kluczem API.
VALIDATION_INVALID_BODYTreść żą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

Kolejne kroki