# Choose an integration (/en/docs/developers/agent/embed/overview)



Choose where conversations appear, then decide who builds the interface. PraxisKit, iframe, and Hosted provide chat interfaces. Use the API when your application supplies its own interface.

## Compare integrations [#compare]

| Method        | Where users chat               | What you build                                   | Appearance settings                                     | Get started                                                       |
| ------------- | ------------------------------ | ------------------------------------------------ | ------------------------------------------------------- | ----------------------------------------------------------------- |
| Kit component | Inside your web page           | Host token endpoint and component initialization | `setOptions` in host code                               | [Embed in a web page](/en/docs/developers/agent/embed/quickstart) |
| iframe        | An isolated frame in your page | Host token endpoint and one script tag           | Saved in the Dashboard; script can override layout      | [Embed with one line](/en/docs/developers/agent/embed/iframe)     |
| Hosted        | A separate Praxis chat page    | Host authentication, link issuance, and redirect | Shares saved iframe appearance; displays as a full page | [Open hosted chat](/en/docs/developers/agent/embed/hosted)        |
| API           | Your website, app, or service  | Session and event handling, plus any interface   | Your application controls it                            | [Run your first agent](/en/docs/developers/agent/quickstart)      |

## Choose for your task [#choose]

Choose Kit to configure the component in code, control when it opens, or connect it to page interactions. Kit is a Web Component that you can also mount in a React application. Your host code supplies its interface options.

Choose iframe to insert a ready-made chat interface and maintain its appearance in the Dashboard. “One line” refers to the loader script. You still implement the backend token endpoint for signed-in users. A bare iframe address does not authenticate a user.

Choose Hosted when a button should open a separate chat page. Your backend creates a short-lived link for the current user, then redirects their browser immediately. You do not install a component on your page. Obtain a fresh link for each entry; never share a user's link as a public entry point.

Choose the API for an existing chat interface or a client outside the browser. The product quickstart runs a session from your backend. Before exposing it to end users, follow the token guide to isolate each user's access.

## Prepare identity and configuration [#prepare]

Signed-in integrations require a service agent, a saved embed policy, and a backend that authenticates host users. Keep the API key on that backend. The browser receives only the current end user's embed token. Changing the interface should not change the stable identifier you assign to that user.

For public question-answering without login, Kit supports anonymous visitors through a publishable key. Kit obtains the anonymous token. Anonymous identity does not replace account authentication or authorize access to orders. See [Embed tokens and users](/en/docs/developers/agent/embed/tokens#anonymous).

Embed policies and persistent appearance can currently only be configured in the Dashboard. Kit instance appearance is configured in host code. Complete a real conversation with one integration before adding context, tools, or themes.

## Next steps [#next]

* [Embed in a web page](/en/docs/developers/agent/embed/quickstart): issue tokens, mount the component, and verify two users.
* [Embed tokens and users](/en/docs/developers/agent/embed/tokens): choose identity and handle refresh and revocation.
* [Agent API reference](/en/docs/api/native/agent): look up session and event operations.
* [Cookbook](/en/docs/cookbook): explore complete application scenarios.
