Talqui’s authentication system allows developers and operators to interact with both the REST API and the RTM API using three primary authentication methods. Each of these methods offers different levels of access and is designed to suit various use cases, such as operations on behalf of users, plugins, or other system entities. The system provides flexibility by supporting multiple authentication profiles, ensuring security and control over the data exchanged with the platform.The three main authentication methods are: authentication on behalf of an operator using JWT Tokens, authentication on behalf of plugins using plugin tokens, and authentication on behalf of plugin connection. These methods allow you to manage access in a controlled manner, ensuring that each request has the appropriate scope, whether for an individual operator, an extension installed on the platform, or an specific tenant connection.Talqui uses JWT Tokens and a custom made Basic Auth as the foundation for its authentication system. The exchange of information is handled securely in compliance with best practices, ensuring that authentication data is transmitted in an encrypted form and that each request has the appropriate scope for the required operation.
The most conventional authentication method in Talqui is using JWT Tokens, where an operator connects on behalf of one or more tenants (customers or workgroups within the system). When authenticating as an operator, the system generates a JWT that grants the user access to all APIs and tenants they are associated with.During the authentication process, a JWT is issued to the operator, allowing them to make requests to the API on behalf of all tenants associated with their account. This JWT is then used to access Talqui’s APIs, ony reaching the REST API ( RTM API it’s not allowed to that kind of authentication ). The token should be included in the authorization header of each request as follows:
Authorization: Bearer <your-jwt-token>
Once authenticated, the operator can retrieve the list of tenants they have access to through a specific endpoint, which returns the tenants associated with the JWT.
Talqui also supports authentication on behalf of plugins installed on tenants. A plugin is a system extension developed by third parties and installed on any tenant. Each plugin has a unique pluginID and pluginToken, which are used to authenticate with the API on behalf of the plugin.The plugin authentication flow follows the Basic Authentication standard, where the pluginID and pluginToken are used to generate authentication credentials. When a plugin is installed on a tenant, it gains access to the APIs on behalf of that tenant. The tenant administrator is responsible for installing plugins, and once the plugin is installed, the developer can make requests to the API on behalf of that tenant.Plugin authentication allows the developer to access data from all tenants that have installed the plugin. To authenticate, the plugin must include the pluginID and pluginToken in the authorization header as follows:
Additionally, to monitor which tenants have installed your plugin, you can consult a specific endpoint that tracks installations. For more details on this process, click here.
In some cases, when you are responsible for a plugin in Talqui, you may need to make API requests not just on behalf of the entire plugin but for a specific plugin connection. A plugin connection is an entity that is automatically generated when a plugin is installed in a tenant. Each time a plugin is installed in a tenant, a new entry in Talqui’s system is created, resulting in a plugin connection object. This object also comes with its own plugin connection token.When making API requests on behalf of a plugin connection, you use the pluginConnectionID and pluginConnectionToken in a Basic Authentication method. This method allows you to authenticate for that specific connection and make requests to Talqui’s APIs. The key difference here is that any request made using the plugin connection credentials will return data only for the specific tenant where the plugin is installed.This method provides a strict relationship between the plugin and the tenant, ensuring that API requests will only retrieve data from the specific tenant where the plugin is connected. This can be useful for plugin developers who need to isolate data to a single tenant or integrate tightly with specific tenant environments.The plugin connection authentication works similarly to the plugin-level authentication, but it is scoped strictly to one tenant. You authenticate using the plugin connection ID and plugin connection token in the following format:
If you need to run Talqui inside another application and keep your users logged in without a second sign-in, use the single-use id-token flow described in Embedded Authentication.
⌘I
{"docsConfig":{"theme":"almond","$schema":"https://mintlify.com/docs.json","name":"Talqui Developer Hub","colors":{"primary":"#007AFF","light":"#007AFF","dark":"#007AFF"},"logo":{"light":"https://mintcdn.com/talqui/-o_W3kkyV31zP2HR/logo/light.svg?fit=max\u0026auto=format\u0026n=-o_W3kkyV31zP2HR\u0026q=85\u0026s=08a1879dfb3c84a2ab53e079381472fb","dark":"https://mintcdn.com/talqui/-o_W3kkyV31zP2HR/logo/dark.svg?fit=max\u0026auto=format\u0026n=-o_W3kkyV31zP2HR\u0026q=85\u0026s=c97578e560d45a7becd0b5cb52f42b42","href":"https://talqui.chat"},"favicon":"https://mintcdn.com/talqui/-o_W3kkyV31zP2HR/favicon.png?fit=max\u0026auto=format\u0026n=-o_W3kkyV31zP2HR\u0026q=85\u0026s=9d0c08e88f3b71cf1890754d0e71a192","navbar":{"primary":{"type":"button","label":"Open App","href":"https://app.talqui.chat/?utm_source=docs.talqui.chat\u0026utm_medium=referral\u0026utm_campaign=developer_hub\u0026utm_content=navbar_open_app"}},"footer":{"links":[{"header":"Talqui","items":[{"label":"Talqui Website","href":"https://talqui.chat/"},{"label":"Terms of Use","href":"https://talqui.chat/terms-of-service"},{"label":"Privacy Policy","href":"https://talqui.chat/privacy-policy"}]}]},"seo":{"metatags":{"og:image":"https://docs.talqui.chat/images/brand/og-image.png"}},"fonts":{"heading":{"family":"Talqui Proxima Nova","weight":600,"source":"fonts/proxima_nova_semibold.woff2","format":"woff2"},"body":{"family":"Talqui Proxima Nova","weight":400,"source":"fonts/proxima_nova_regular.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"talqui","hasAudioNarration":false,"actualSubdomain":"talqui","customDomains":["docs.talqui.chat"],"gitSource":{"type":"github","owner":"talqui-chat","repo":"talqui-docs-mintilify","deployBranch":"master","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ad6ac8714ff976c7d908ff5","collectionId":"c0611b17-0154-4352-a45a-dd499f34fee2","liveDeploymentHistoryId":"6ad6ac8714ff976c7d908ff5","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ad6c173533169dff4ed503f","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"API","count":100},{"language":"default","tag":"Services API","count":74},{"language":"default","tag":"Developers","count":27},{"language":"default","tag":"Guides","count":27},{"language":"default","tag":"Helpdesk API","count":24},{"language":"default","tag":"Campaigns","count":19},{"language":"default","tag":"Plugins","count":17},{"language":"default","tag":"Sessions","count":14},{"language":"default","tag":"Contacts","count":12},{"language":"default","tag":"Platform","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"ul.sidebar-group:has(>li[data-group-tag])+ul.sidebar-group:has(>li[data-group-tag]){margin-top:0!important}#footer>div{padding-top:2.5rem!important;padding-bottom:2.5rem!important;gap:1.5rem!important}@media (min-width:768px){#footer div:has(>a[href^=http]):not(:has(div)){justify-content:flex-end!important}}html:not(.dark) #almond-background-color{background-color:#f2f4f8!important}"},{"filePath":"fonts.css","content":"@font-face{font-family:\"Talqui Proxima Nova\";src:url(/fonts/proxima_nova_light.woff2) format(\"woff2\");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:\"Talqui Proxima Nova\";src:url(/fonts/proxima_nova_light_italic.woff2) format(\"woff2\");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:\"Talqui Proxima Nova\";src:url(/fonts/proxima_nova_regular.woff2) format(\"woff2\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"Talqui Proxima Nova\";src:url(/fonts/proxima_nova_regular_italic.woff2) format(\"woff2\");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:\"Talqui Proxima Nova\";src:url(/fonts/proxima_nova_semibold.woff2) format(\"woff2\");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:\"Talqui Proxima Nova\";src:url(/fonts/proxima_nova_semibold_italic.woff2) format(\"woff2\");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:\"Talqui Proxima Nova\";src:url(/fonts/proxima_nova_bold.woff2) format(\"woff2\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Talqui Proxima Nova\";src:url(/fonts/proxima_nova_bold_italic.woff) format(\"woff\");font-weight:700;font-style:italic;font-display:swap}"}],"page":{"pagePath":"guides/introduction/authentication","slug":"/guides/introduction/authentication","pageMetadata":{"title":"Authentication","description":null,"href":"/guides/introduction/authentication"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,hr:`hr`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`introduction`,children:`Introduction`}),`\n`,_jsxs(_components.p,{children:[`Talqui’s authentication system allows developers and operators to interact with both the `,_jsx(_components.strong,{children:`REST API`}),` and the `,_jsx(_components.strong,{children:`RTM API`}),` using three primary authentication methods. Each of these methods offers different levels of access and is designed to suit various use cases, such as operations on behalf of users, plugins, or other system entities. The system provides flexibility by supporting multiple authentication profiles, ensuring security and control over the data exchanged with the platform.`]}),`\n`,_jsxs(_components.p,{children:[`The three main authentication methods are: `,_jsx(_components.strong,{children:`authentication on behalf of an operator`}),` using `,_jsx(_components.strong,{children:`JWT Tokens`}),`, `,_jsx(_components.strong,{children:`authentication on behalf of plugins`}),` using `,_jsx(_components.strong,{children:`plugin tokens`}),`, and `,_jsx(_components.strong,{children:`authentication on behalf of plugin connection`}),`. These methods allow you to manage access in a controlled manner, ensuring that each request has the appropriate scope, whether for an individual operator, an extension installed on the platform, or an specific tenant connection.`]}),`\n`,_jsxs(_components.p,{children:[`Talqui uses `,_jsx(_components.strong,{children:`JWT Tokens`}),` and a custom made `,_jsx(_components.strong,{children:`Basic Auth`}),` as the foundation for its authentication system. The exchange of information is handled securely in compliance with best practices, ensuring that authentication data is transmitted in an encrypted form and that each request has the appropriate scope for the required operation.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`authentication-on-behalf-of-an-operator`,children:`Authentication on Behalf of an Operator`}),`\n`,_jsxs(_components.p,{children:[`The most conventional authentication method in Talqui is using `,_jsx(_components.strong,{children:`JWT Tokens`}),`, where an operator connects on behalf of one or more `,_jsx(_components.strong,{children:`tenants`}),` (customers or workgroups within the system). When authenticating as an operator, the system generates a `,_jsx(_components.strong,{children:`JWT`}),` that grants the user access to all APIs and tenants they are associated with.`]}),`\n`,_jsxs(_components.p,{children:[`During the authentication process, a `,_jsx(_components.strong,{children:`JWT`}),` is issued to the operator, allowing them to make requests to the API on behalf of all tenants associated with their account. This `,_jsx(_components.strong,{children:`JWT`}),` is then used to access Talqui’s APIs, ony reaching the `,_jsx(_components.strong,{children:`REST API`}),` ( `,_jsx(_components.em,{children:`RTM API it’s not allowed to that kind of authentication`}),` ). The token should be included in the authorization header of each request as follows:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Authorization: Bearer \u003cyour-jwt-token>`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Once authenticated, the operator can retrieve the list of tenants they have access to through a specific endpoint, which returns the tenants associated with the JWT.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --location`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.talqui.chat/tenants'`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`--header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: Bearer \u003cYOUR_AUTH_TOKEN>'`})]}),`\n`]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`authentication-on-behalf-of-a-plugin`,children:`Authentication on Behalf of a Plugin`}),`\n`,_jsxs(_components.p,{children:[`Talqui also supports authentication on behalf of `,_jsx(_components.strong,{children:`plugins`}),` installed on tenants. A plugin is a system extension developed by third parties and installed on any tenant. Each plugin has a unique `,_jsx(_components.strong,{children:`pluginID`}),` and `,_jsx(_components.strong,{children:`pluginToken`}),`, which are used to authenticate with the API on behalf of the plugin.`]}),`\n`,_jsxs(_components.p,{children:[`The plugin authentication flow follows the `,_jsx(_components.strong,{children:`Basic Authentication`}),` standard, where the `,_jsx(_components.strong,{children:`pluginID`}),` and `,_jsx(_components.strong,{children:`pluginToken`}),` are used to generate authentication credentials. When a plugin is installed on a tenant, it gains access to the APIs on behalf of that tenant. The tenant administrator is responsible for installing plugins, and once the plugin is installed, the developer can make requests to the API on behalf of that tenant.`]}),`\n`,_jsxs(_components.p,{children:[`Plugin authentication allows the developer to access data from all tenants that have installed the plugin. To authenticate, the plugin must include the `,_jsx(_components.strong,{children:`pluginID`}),` and `,_jsx(_components.strong,{children:`pluginToken`}),` in the authorization header as follows:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Authorization: Plugin base64(pluginID:pluginToken)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Additionally, to monitor which tenants have installed your plugin, you can consult a specific endpoint that tracks installations. For more details on this process, `,_jsx(_components.a,{href:`https://documenter.getpostman.com/view/31241842/2s9YXpWeTg#e385ec30-d076-4c8b-823e-2e2e4f6253ac`,children:`click here`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`authentication-on-behalf-of-a-plugin-connection`,children:`Authentication on Behalf of a Plugin Connection`}),`\n`,_jsxs(_components.p,{children:[`In some cases, when you are responsible for a plugin in Talqui, you may need to make API requests not just on behalf of the entire plugin but for a specific `,_jsx(_components.strong,{children:`plugin connection`}),`. A `,_jsx(_components.strong,{children:`plugin connection`}),` is an entity that is automatically generated when a plugin is installed in a tenant. Each time a plugin is installed in a tenant, a new entry in Talqui’s system is created, resulting in a `,_jsx(_components.strong,{children:`plugin connection`}),` object. This object also comes with its own `,_jsx(_components.strong,{children:`plugin connection token`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`When making API requests on behalf of a `,_jsx(_components.strong,{children:`plugin connection`}),`, you use the `,_jsx(_components.strong,{children:`pluginConnectionID`}),` and `,_jsx(_components.strong,{children:`pluginConnectionToken`}),` in a `,_jsx(_components.strong,{children:`Basic Authentication`}),` method. This method allows you to authenticate for that specific connection and make requests to Talqui’s APIs. The key difference here is that any request made using the `,_jsx(_components.strong,{children:`plugin connection`}),` credentials will return data only for the specific tenant where the plugin is installed.`]}),`\n`,_jsxs(_components.p,{children:[`This method provides a strict relationship between the `,_jsx(_components.strong,{children:`plugin`}),` and the `,_jsx(_components.strong,{children:`tenant`}),`, ensuring that API requests will only retrieve data from the specific tenant where the plugin is connected. This can be useful for plugin developers who need to isolate data to a single tenant or integrate tightly with specific tenant environments.`]}),`\n`,_jsxs(_components.p,{children:[`The `,_jsx(_components.strong,{children:`plugin connection`}),` authentication works similarly to the plugin-level authentication, but it is scoped strictly to one tenant. You authenticate using the `,_jsx(_components.strong,{children:`plugin connection ID`}),` and `,_jsx(_components.strong,{children:`plugin connection token`}),` in the following format:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Authorization: PluginConnection base64(pluginConnectionID:pluginConnectionToken)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`embedding-talqui-in-another-application`,children:`Embedding Talqui in another application`}),`\n`,_jsxs(_components.p,{children:[`If you need to run Talqui inside another application and keep your users logged in without a second sign-in, use the single-use `,_jsx(_components.strong,{children:`id-token`}),` flow described in `,_jsx(_components.a,{href:`/guides/introduction/authentication/embedded`,children:`Embedded Authentication`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Authentication","description":null,"href":"/guides/introduction/authentication"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Introduction","slug":"introduction","depth":2,"children":[]},{"title":"Authentication on Behalf of an Operator","slug":"authentication-on-behalf-of-an-operator","depth":2,"children":[]},{"title":"Authentication on Behalf of a Plugin","slug":"authentication-on-behalf-of-a-plugin","depth":2,"children":[]},{"title":"Authentication on Behalf of a Plugin Connection","slug":"authentication-on-behalf-of-a-plugin-connection","depth":2,"children":[]},{"title":"Embedding Talqui in another application","slug":"embedding-talqui-in-another-application","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"talqui","siteName":"Talqui Developer Hub","title":"Authentication - Talqui Developer Hub","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-20T01:18:55.421Z","originalFileLocation":"guides/introduction/authentication.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Talqui Developer Hub\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authentication - Talqui Developer Hub\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Talqui Developer Hub\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.talqui.chat/guides/introduction/authentication\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.talqui.chat/images/brand/og-image.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Authentication - Talqui Developer Hub\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.talqui.chat/images/brand/og-image.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/talqui/9vDs-tCOYyoh0OOY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Talqui Developer Hub\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#007AFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.talqui.chat/guides/introduction/authentication\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/guides/introduction/authentication.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.talqui.chat/#organization\",\"name\":\"Talqui Developer Hub\",\"url\":\"https://docs.talqui.chat\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/talqui/-o_W3kkyV31zP2HR/logo/light.svg?fit=max\u0026auto=format\u0026n=-o_W3kkyV31zP2HR\u0026q=85\u0026s=08a1879dfb3c84a2ab53e079381472fb\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.talqui.chat#website\",\"name\":\"Talqui Developer Hub\",\"url\":\"https://docs.talqui.chat\",\"publisher\":{\"@id\":\"https://docs.talqui.chat/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.talqui.chat/guides/introduction/authentication#webpage\",\"url\":\"https://docs.talqui.chat/guides/introduction/authentication\",\"name\":\"Authentication\",\"dateModified\":\"2026-10-20T01:18:55.421Z\",\"isPartOf\":{\"@id\":\"https://docs.talqui.chat#website\"},\"breadcrumb\":{\"@id\":\"https://docs.talqui.chat/guides/introduction/authentication#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.talqui.chat/guides/introduction/authentication#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Introduction\",\"item\":\"https://docs.talqui.chat/guides/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authentication\",\"item\":\"https://docs.talqui.chat/guides/introduction/authentication\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.talqui.chat/guides/introduction/authentication#article\",\"headline\":\"Authentication\",\"name\":\"Authentication\",\"url\":\"https://docs.talqui.chat/guides/introduction/authentication\",\"mainEntityOfPage\":{\"@id\":\"https://docs.talqui.chat/guides/introduction/authentication#webpage\"},\"image\":\"https://docs.talqui.chat/images/brand/og-image.png\",\"dateModified\":\"2026-10-20T01:18:55.421Z\",\"publisher\":{\"@id\":\"https://docs.talqui.chat/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.talqui.chat#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Talqui Developer Hub\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Talqui Developer Hub","nav":{"global":null,"tabs":[{"tab":"Getting started","groups":[{"group":"Welcome","pages":[{"title":"Welcome to the Talqui Developer Hub","sidebarTitle":"Welcome","mode":"wide","href":""},{"title":"Platform changes","href":"/changelog"}]},{"group":"Introduction","pages":[{"title":"Introduction","sidebarTitle":"Overview","href":"/guides/introduction"},{"title":"Quickstart","description":null,"href":"/guides/introduction/quick-start"},{"group":"Authentication","root":{"title":"Authentication","href":"/guides/introduction/authentication"},"pages":[{"title":"Embedded Authentication (id-token)","description":null,"href":"/guides/introduction/authentication/embedded"}]}]}]},{"tab":"Developers","pages":[{"title":"Developers","href":"/guides"}]},{"tab":"API","pages":[{"title":"API","href":"/references/rtm-api/v1"}]}]},"title":"Authentication - Talqui Developer Hub","buildId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","deploymentId":"dpl_cadrRc5H9XQiJQbDFN5mcYRs2PAj","dynamics":[],"chunks":[]}