Chat-widget
Všechny koncové body, které vložený chat widget využívá na webových stránkách zákazníků.
Tato skupina sdružuje všechny veřejné endpointy, které používá vložený chat widget na webech zákazníků: kontrolu dostupnosti (`GET /api/public/widget/health`), načtení veřejné konfigurace widgetu (`GET /api/public/widget/config/:widget_code`) a také odesílání zpráv a historii (`POST /api/public/widget/message`, `GET /api/public/widget/history`). Sdílení domén je spravováno při vytváření widgetu službou Zentor; pro to neexistuje žádné rozhraní nastavení v tenant dashboardu. Při neschváleném původu může dojít k chybovému kódu `WIDGET_ORIGIN_DENIED`. Samotné vytváření widgetu je vyhrazeno hlavnímu administrátorovi, zatímco tenant obdrží hotový vkládací kód.
Obecný systém vývojářských API klíčů neexistuje. `health` a `config` jsou dostupné bez autentizace, protože jsou určeny pro inicializaci widgetu v prohlížeči. `message` a `history` naopak vyžadují hlavičku `X-Widget-Token` a jsou navíc kontrolovány proti serverové allowlistě původů. Embed token se při vytváření widgetu jednorázově zobrazí v čistém textu a nesmí se objevit ve veřejných repozitářích, snímcích obrazovky podpory nebo logách prohlížeče.
Každá detailní stránka této skupiny popisuje jednotlivě metodu, cestu, autentizaci, idempotenci a dokumentované chybové kódy daného endpointu. Úspěšné volání jednoho endpointu automaticky nedokazuje, že by jiný endpoint stejné skupiny také proběhl úspěšně – zejména zelená kontrola `health` nepotvrzuje ani platný widget, ani schválený původ, ani dostupnost poskytovatele AI.
Potvrzený celoplatformní limit API je 2 000 požadavků během 15 minut. Odlišný limit pro jednotlivý widget endpoint je uveden pouze tehdy, pokud je pro tento endpoint výslovně doložen. `message` není idempotentní; klient nesmí automaticky opakovat nejasně přerušené odesílání, aniž by předtím zkontroloval, zda byla první zpráva již zpracována.
Technická kontrola této skupiny se opírá o registr v `app/frontend/src/content/api-reference/groups/widget.ts` a související backendové trasy. Každá detailní stránka označuje, zda byla testována úspěšná cesta, negativní cesta nebo pouze kódová analogie – toto rozlišení platí pro celou skupinu a nesmí být nahrazeno paušálními prohlášeními o úspěchu.