Prebuilt browser-side experiences you drop into your UI as an iframe or direct link. Mint a session from your backend, the component talks to Kaunt with a scoped token - your API key never reaches the browser.
// 1. Server: mint a short-lived session
POST /v1/tenants/{tenantId}/embedded-components/sessions
{ component: "documentai-feedback-agent", accessMode: "iframe" }
// 2. Browser: embed the iframe
<iframe src={session.url} />
That's the integration. The component handles auth via a JWT token handshake — revoke any session with DELETE …/sessions/{id}.
Your shell hosts the component. Kaunt's host serves it. No bundling, no SDK churn.
Each session carries the exact permissions you mint into it — never broader, never the browser's call, revocable anytime.
Improvements to the agent and UX reach your users without a frontend release on your side.
Each embedded component packages a complete user task — interaction, validation, preview, audit — behind one iframe. You provide context; the component handles the work. One example is the Document AI Feedback Agent, which turns plain-language requests into previewable rule proposals.
userId you mint into the session lands on every artifact the component produces.Every component is anchored to a specific Kaunt resource and a specific end user — both set server-side when you mint the session. Nothing else is in reach. Today that resource can be a documentId; future components will bind to other resource types using the same model.
userId you mint into the session lands on every artifact the component produces.The same session - create endpoint, the same JWT handshake, and the same iframe contract powers every embedded component. Switching components is a matter of changing the component identifier and the data payload - the integration code you write today doesn't move.
Building a non-browser surface instead? Call the Kaunt API directly.
Three commitments make embedded components safe to drop into a SaaS shell — even when the surrounding application is built by someone else.
You mint sessions from your backend with your Kaunt API key. The browser only ever sees a JWT scoped to one session — no key, no rotation drama.
Each token is bound to one document, one user, the scopes you granted, and the origins you allow — checked both by the component and the components host's CSP.
Sessions expire automatically (typically one hour). Revoke any active session with DELETE /sessions/{id} — the next request gets 401 and the component posts session-revoked.
Each component bundles the surface area that's tedious or risky to rebuild — auth, error events, layout, audit, region routing — behind one consistent API.
session-revoked error eventsMint a session, drop an iframe, ship the feature. Your users get an agent grounded on the document in front of them — without you owning the UI.