The Erdo TypeScript SDK enables you to integrate Erdo’s AI agents directly into your applications. Whether you’re building a Next.js app, a Node.js backend, or a React frontend, the SDK provides everything you need to message agents and render their results.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Erdo Docs","colors":{"primary":"#008b1d","light":"#84bf88","dark":"#007c10"},"logo":{"light":"https://mintcdn.com/erdoai/a0Yf-u_wE-IxMDL6/logo/light.png?fit=max\u0026auto=format\u0026n=a0Yf-u_wE-IxMDL6\u0026q=85\u0026s=87480ed4521e74bd7996b5c35e23c346","dark":"https://mintcdn.com/erdoai/a0Yf-u_wE-IxMDL6/logo/dark.png?fit=max\u0026auto=format\u0026n=a0Yf-u_wE-IxMDL6\u0026q=85\u0026s=0db855b87e16887e9aeb3059fbf75f99"},"favicon":"https://mintcdn.com/erdoai/O_YT_Nxge5MHHZ8y/favicon.png?fit=max\u0026auto=format\u0026n=O_YT_Nxge5MHHZ8y\u0026q=85\u0026s=88f0d650ce929194af21b33be4594ecd","navbar":{"links":[{"href":"https://erdo.ai","label":"Platform"}],"primary":{"type":"button","label":"Get Started","href":"https://erdo.ai/signup"}},"footer":{"socials":{"github":"https://github.com/erdoai","linkedin":"https://linkedin.com/company/erdo-ai"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"erdoai","hasAudioNarration":false,"actualSubdomain":"erdoai","customDomains":["docs.erdo.ai"],"gitSource":{"type":"github","owner":"erdoai","repo":"erdo","deployBranch":"main","contentDirectory":"docs-public","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aecb047d226238b4601eb7a","collectionId":"4290f67d-be1c-4f57-b38b-c9020293bd0b","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aecb047d226238b4601eb7a"},"entitlements":{},"buildId":"6aee6f1e4a852725e6e3776f","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API Reference","count":610},{"language":"default","tag":"Developers","count":359},{"language":"default","tag":"Product","count":71},{"language":"default","tag":"Features","count":56},{"language":"default","tag":"Platform API","count":47},{"language":"default","tag":"Get started","count":8},{"language":"default","tag":"Connect Erdo","count":7},{"language":"default","tag":"TypeScript SDK","count":5},{"language":"default","tag":"Build apps","count":1},{"language":"default","tag":"Python SDK","count":1}]},"assistantConfig":{},"basePath":"","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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"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":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"ts-sdk/overview","slug":"/ts-sdk/overview","pageMetadata":{"title":"TypeScript SDK Overview","description":"Integrate Erdo AI agents into your TypeScript/JavaScript applications","href":"/ts-sdk/overview"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Integrate Erdo AI agents into your TypeScript/JavaScript applications\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"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`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`1`,id:`typescript-sdk-overview`,children:`TypeScript SDK Overview`}),`\n`,_jsx(_components.p,{children:`The Erdo TypeScript SDK enables you to integrate Erdo’s AI agents directly into your applications. Whether you’re building a Next.js app, a Node.js backend, or a React frontend, the SDK provides everything you need to message agents and render their results.`}),`\n`,_jsx(Heading,{level:`2`,id:`packages`,children:`Packages`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Package`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`@erdoai/server`})}),_jsx(_components.td,{children:`Server-side client for tokens, threads and messaging`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`@erdoai/ui`})}),_jsx(_components.td,{children:`React components for rendering agent results`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`installation`,children:`Installation`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`npm`,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`npm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` install`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @erdoai/server`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @erdoai/ui`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`yarn`,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`yarn`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @erdoai/server`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @erdoai/ui`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`pnpm`,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`pnpm`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` add`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @erdoai/server`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` @erdoai/ui`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`quick-start`,children:`Quick Start`}),`\n`,_jsx(Heading,{level:`3`,id:`1-create-an-api-token`,children:`1. Create an API Token`}),`\n`,_jsxs(_components.p,{children:[`Get your API token from the `,_jsx(_components.a,{href:`https://erdo.ai/settings/api-token`,children:`Erdo dashboard`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`2-send-a-message-to-an-agent`,children:`2. Send a Message to an Agent`}),`\n`,_jsx(_components.p,{children:`Agents run inside threads. Your server mints a scoped token for an external user, then uses it to create a thread and send messages.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`15`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`15`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@erdoai/server'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` server`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` authToken:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`ERDO_AUTH_TOKEN`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` server`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` externalUserId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'server-job'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` expiresInSeconds:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 3600`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` thread`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createThread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Analysis'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendMessageAndWait`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`thread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'What were our top products last month?'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Received'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`events`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'events'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`3-stream-results`,children:`3. Stream Results`}),`\n`,_jsx(_components.p,{children:`For real-time updates, use streaming:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` thread`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createThread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Analysis'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`for`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` event`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` of`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`thread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Analyze our sales data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` switch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'content'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'New content:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` break`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'status'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Status:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` break`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` case`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'done'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Complete!'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` break`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`4-render-results-in-react`,children:`4. Render Results in React`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Never expose your API key to the browser. Use one of two secure patterns: `,_jsx(_components.strong,{children:`ephemeral tokens`}),` or `,_jsx(_components.strong,{children:`proxy streaming`}),`.`]})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Option A: Ephemeral Tokens (Recommended)`})}),`\n`,_jsx(_components.p,{children:`Your backend creates a short-lived, scoped token. The frontend uses it to stream directly from the Erdo API.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`tsx`,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:`tsx`,children:_jsxs(_components.code,{language:`tsx`,numberOfLines:`14`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// app/api/authorize/route.ts (SERVER)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@erdoai/server'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`authToken:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`ERDO_AUTH_TOKEN`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` POST`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`userId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Add your own RBAC logic here`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`tokenId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`expiresAt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` externalUserId:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` userId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` expiresInSeconds:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 3600`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`tokenId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`expiresAt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`28`,language:`tsx`,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:`tsx`,children:_jsxs(_components.code,{language:`tsx`,numberOfLines:`28`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// app/page.tsx (CLIENT)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'use client'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Content`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@erdoai/ui'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ChatInterface`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`setContents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` useState`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`([]);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` handleSubmit`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`query`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 1. Get ephemeral token from your backend`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'/api/authorize'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` method:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'POST'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` body:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` JSON`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`stringify`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`userId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'user_123'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }),`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`then`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`r`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` r`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`());`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 2. Send the message to a thread; the SDK streams directly from the Erdo API`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` thread`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createThread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Analysis'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` event`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` of`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`thread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` query`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })) {`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // 3. Render results (see integration docs for the full streaming example)`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` };`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` {`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`contents`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`map`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`item`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`i`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#4EC9B0`},children:`Content`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` key`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`i`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` content`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`item`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` />`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` );`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Option B: Proxy Streaming`})}),`\n`,_jsx(_components.p,{children:`Your backend proxies the stream. The API key never leaves your server.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`23`,language:`tsx`,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:`tsx`,children:_jsxs(_components.code,{language:`tsx`,numberOfLines:`23`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// app/api/messages/route.ts (SERVER)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '@erdoai/server'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` server`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`authToken:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` process`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`ERDO_AUTH_TOKEN`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`export`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` POST`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`userId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`threadId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`content`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`json`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` server`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createToken`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`externalUserId:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` userId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`token`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` stream`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ReadableStream`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` async`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` start`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`controller`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` for`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` event`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` of`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`threadId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` })) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` controller`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`enqueue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` TextEncoder`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`encode`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`data: \"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`JSON`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`stringify`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\n\\\\n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`));`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` controller`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`close`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`stream`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` headers:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Content-Type'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'text/event-stream'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/ts-sdk/integration`,children:`Integration Patterns`}),` for complete examples of both approaches.`]}),`\n`,_jsx(Heading,{level:`2`,id:`use-cases`,children:`Use Cases`}),`\n`,_jsx(Heading,{level:`3`,id:`embed-data-analysis`,children:`Embed Data Analysis`}),`\n`,_jsx(_components.p,{children:`Add AI-powered data analysis to your existing application:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// User asks a question in your app`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` thread`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createThread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Analysis'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendMessageAndWait`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`thread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` userQuestion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Render charts and insights`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`ai-tool-in-chat-applications`,children:`AI Tool in Chat Applications`}),`\n`,_jsx(_components.p,{children:`Use Erdo as a tool alongside your LLM for data-intensive queries:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// When your LLM detects a data question, delegate to Erdo`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`isDataQuestion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`userMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` thread`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createThread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Analysis'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendMessageAndWait`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`thread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` userMessage`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` // Return rich visualizations to the user`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`automated-reporting`,children:`Automated Reporting`}),`\n`,_jsx(_components.p,{children:`Generate reports programmatically:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` thread`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createThread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`name:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Analysis'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` events`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` client`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendMessageAndWait`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`thread`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`content:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Generate a weekly sales report'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`environment-variables`,children:`Environment Variables`}),`\n`,_jsx(_components.p,{children:`Configure the SDK using environment variables:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Variable`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Default`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ERDO_AUTH_TOKEN`})}),_jsx(_components.td,{children:`Your Erdo API key`}),_jsx(_components.td,{children:`Required`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ERDO_ENDPOINT`})}),_jsx(_components.td,{children:`API endpoint`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`https://api.erdo.ai`})})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`typescript`,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:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Uses environment variables automatically`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` client`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` ErdoClient`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next Steps`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ts-sdk/client`,children:`Client Reference`}),` - Detailed API documentation`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ts-sdk/ui-components`,children:`UI Components`}),` - React component reference`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/ts-sdk/integration`,children:`Integration Patterns`}),` - Vercel AI SDK, Next.js patterns`]}),`\n`]})]})}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":"TypeScript SDK Overview","description":"Integrate Erdo AI agents into your TypeScript/JavaScript applications","href":"/ts-sdk/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"TypeScript SDK Overview","slug":"typescript-sdk-overview","depth":1,"children":[]},{"title":"Packages","slug":"packages","depth":2,"children":[]},{"title":"Installation","slug":"installation","depth":2,"children":[]},{"title":"Quick Start","slug":"quick-start","depth":2,"children":[{"title":"1. Create an API Token","slug":"1-create-an-api-token","depth":3,"children":[]},{"title":"2. Send a Message to an Agent","slug":"2-send-a-message-to-an-agent","depth":3,"children":[]},{"title":"3. Stream Results","slug":"3-stream-results","depth":3,"children":[]},{"title":"4. Render Results in React","slug":"4-render-results-in-react","depth":3,"children":[]}]},{"title":"Use Cases","slug":"use-cases","depth":2,"children":[{"title":"Embed Data Analysis","slug":"embed-data-analysis","depth":3,"children":[]},{"title":"AI Tool in Chat Applications","slug":"ai-tool-in-chat-applications","depth":3,"children":[]},{"title":"Automated Reporting","slug":"automated-reporting","depth":3,"children":[]}]},{"title":"Environment Variables","slug":"environment-variables","depth":2,"children":[]},{"title":"Next Steps","slug":"next-steps","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"erdoai","siteName":"Erdo Docs","title":"TypeScript SDK Overview - Erdo Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-05T13:09:14.981Z","originalFileLocation":"ts-sdk/overview.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=\"description\" content=\"Integrate Erdo AI agents into your TypeScript/JavaScript applications\">\u003cmeta data-mint-head name=\"application-name\" content=\"Erdo Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/erdoai/bTYd8fHnLhJ4GdqC/_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/erdoai/bTYd8fHnLhJ4GdqC/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/erdoai/bTYd8fHnLhJ4GdqC/_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/erdoai/bTYd8fHnLhJ4GdqC/_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/erdoai/bTYd8fHnLhJ4GdqC/_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/erdoai/bTYd8fHnLhJ4GdqC/_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/erdoai/bTYd8fHnLhJ4GdqC/_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/erdoai/bTYd8fHnLhJ4GdqC/_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/erdoai/bTYd8fHnLhJ4GdqC/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"TypeScript SDK Overview - Erdo Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Integrate Erdo AI agents into your TypeScript/JavaScript applications\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Erdo Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.erdo.ai/ts-sdk/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://erdoai.mintlify.site/_mintlify/api/og/v2?division=TypeScript+SDK\u0026amp;title=TypeScript+SDK+Overview\u0026amp;description=Integrate+Erdo+AI+agents+into+your+TypeScript%2FJavaScript+applications\u0026amp;theme=19c963d80c676f95ec8599a1\u0026amp;signature=1ede3bd5e6ec34210dc8da71b8548e23398663147e4cdcdd458a33866051fc18\">\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=\"TypeScript SDK Overview - Erdo Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Integrate Erdo AI agents into your TypeScript/JavaScript applications\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://erdoai.mintlify.site/_mintlify/api/og/v2?division=TypeScript+SDK\u0026amp;title=TypeScript+SDK+Overview\u0026amp;description=Integrate+Erdo+AI+agents+into+your+TypeScript%2FJavaScript+applications\u0026amp;theme=19c963d80c676f95ec8599a1\u0026amp;signature=1ede3bd5e6ec34210dc8da71b8548e23398663147e4cdcdd458a33866051fc18\">\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/erdoai/bTYd8fHnLhJ4GdqC/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Erdo Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#008b1d\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.erdo.ai/ts-sdk/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/ts-sdk/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.erdo.ai/#organization\",\"name\":\"Erdo Docs\",\"url\":\"https://docs.erdo.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/erdoai/a0Yf-u_wE-IxMDL6/logo/light.png?fit=max\u0026auto=format\u0026n=a0Yf-u_wE-IxMDL6\u0026q=85\u0026s=87480ed4521e74bd7996b5c35e23c346\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.erdo.ai#website\",\"name\":\"Erdo Docs\",\"url\":\"https://docs.erdo.ai\",\"publisher\":{\"@id\":\"https://docs.erdo.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.erdo.ai/ts-sdk/overview#webpage\",\"url\":\"https://docs.erdo.ai/ts-sdk/overview\",\"name\":\"TypeScript SDK Overview\",\"description\":\"Integrate Erdo AI agents into your TypeScript/JavaScript applications\",\"dateModified\":\"2026-11-05T13:09:14.981Z\",\"isPartOf\":{\"@id\":\"https://docs.erdo.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.erdo.ai/ts-sdk/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.erdo.ai/ts-sdk/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Erdo Docs\",\"item\":\"https://docs.erdo.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TypeScript SDK Overview\",\"item\":\"https://docs.erdo.ai/ts-sdk/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.erdo.ai/ts-sdk/overview#article\",\"headline\":\"TypeScript SDK Overview\",\"name\":\"TypeScript SDK Overview\",\"description\":\"Integrate Erdo AI agents into your TypeScript/JavaScript applications\",\"url\":\"https://docs.erdo.ai/ts-sdk/overview\",\"mainEntityOfPage\":{\"@id\":\"https://docs.erdo.ai/ts-sdk/overview#webpage\"},\"dateModified\":\"2026-11-05T13:09:14.981Z\",\"publisher\":{\"@id\":\"https://docs.erdo.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.erdo.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Erdo Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Erdo Docs","nav":{"global":null,"tabs":[{"tab":"Product","pages":[{"title":"Product","href":"/introduction"}]},{"tab":"Developers","groups":[{"group":"Platform API","pages":[{"title":"REST API","href":"/api/overview"},{"title":"Realtime updates","href":"/api/realtime"},{"title":"Scoped API Keys","href":"/api/scoped-keys"},{"title":"Manager accounts","href":"/manager-accounts"},{"title":"Email a Maurice proposal and Order","href":"/maurice-order-email"},{"title":"Custom domains","href":"/custom-domains"},{"title":"Email sending domains","href":"/sending-domains"},{"title":"Integration connect links","href":"/connect-links"},{"title":"Which account a connection uses","href":"/connection-accounts"},{"title":"Approvals","href":"/approvals"},{"title":"Ad accounts","href":"/ad-accounts"},{"title":"Paid-media campaign lifecycle","href":"/paid-media"},{"title":"Audience readiness","href":"/audiences"},{"title":"Negative keyword coverage","href":"/negative-coverage"},{"title":"Audience observation and targeting","href":"/audience-mode"},{"title":"Retargeting readiness","href":"/retargeting"},{"title":"Search campaign setup","href":"/search-campaign-setup"},{"title":"How Erdo bids","href":"/bidding"},{"title":"Org history","href":"/history"},{"title":"The review queue","href":"/review-queue"},{"title":"Page analytics","href":"/page-analytics"},{"title":"Page tracking","href":"/page-tracking"},{"title":"Evals","href":"/evals"},{"title":"Investigation assessment","href":"/investigation"},{"title":"Event pipelines","href":"/event-pipelines"},{"title":"Lead identity","href":"/lead-identity"},{"title":"Delete a lead","href":"/delete-a-lead"},{"title":"Resolve refused submissions","href":"/capture-resolution"},{"title":"Lead details","href":"/lead-details"},{"title":"Lead next action","href":"/lead-next-action"},{"title":"Lead reachability","href":"/lead-reachability"},{"title":"Strategies","href":"/strategies"},{"title":"Workstreams","href":"/workstreams"},{"title":"Workstream recommendations","href":"/recommendations"},{"title":"Growth reviews","href":"/growth-reviews"},{"title":"Decisions","href":"/decisions"},{"title":"Experiments","href":"/experiments"},{"title":"Your attention feed","href":"/attention"},{"title":"Page feedback","href":"/page-feedback"},{"title":"Engine autonomy","href":"/autonomy"},{"title":"Persona panel — the wind tunnel","href":"/persona-panel"},{"title":"Ad creative reviews","href":"/ad-critic"},{"title":"Page reviews — the critic on any URL","href":"/page-reviews"},{"title":"Bounded outreach","href":"/outreach"},{"title":"Cross-customer priors","href":"/cross-customer-priors"},{"title":"The wind tunnel","href":"/wind-tunnel"},{"title":"Judges and calibration","href":"/judges"}]},{"group":"API Reference","pages":[{"group":"API Reference","pages":[{"title":"ListActivityFeedAPI mirrors erdo_list_activity_feed: the unified, ranked,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/activity/feed","href":"/api-reference/listactivityfeedapi-mirrors-erdo_list_activity_feed:-the-unified-ranked"},{"title":"ListActivityHistoryAPI mirrors erdo_list_activity_history: the org's durable,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/activity/history","href":"/api-reference/listactivityhistoryapi-mirrors-erdo_list_activity_history:-the-orgs-durable"},{"title":"Lists the advertising accounts this organization's connected integrations can\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/ad-accounts","href":"/api-reference/lists-the-advertising-accounts-this-organizations-connected-integrations-can"},{"title":"GrantCreditsAPI mirrors erdo_admin_grant_credits. The billing service owns staff\nauthorization.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/admin/credits/grant","href":"/api-reference/grantcreditsapi-mirrors-erdo_admin_grant_credits-the-billing-service-owns-staffauthorization"},{"title":"ListApprovalPoliciesAPI lists standing policies for the active organization.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/approval-policies","href":"/api-reference/listapprovalpoliciesapi-lists-standing-policies-for-the-active-organization"},{"title":"CreateApprovalPolicyAPI creates a standing policy without executing the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/approval-policies","href":"/api-reference/createapprovalpolicyapi-creates-a-standing-policy-without-executing-the"},{"title":"DeleteApprovalPolicyAPI removes one standing policy in the active organization.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/approval-policies/{id}","href":"/api-reference/deleteapprovalpolicyapi-removes-one-standing-policy-in-the-active-organization"},{"title":"GetApprovalSettingsAPI mirrors erdo_get_approval_settings: read the caller's\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/approval-settings","href":"/api-reference/getapprovalsettingsapi-mirrors-erdo_get_approval_settings:-read-the-callers"},{"title":"SetApprovalSettingsAPI mirrors erdo_set_approval_settings: replace the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/approval-settings","href":"/api-reference/setapprovalsettingsapi-mirrors-erdo_set_approval_settings:-replace-the"},{"title":"ListApprovalsAPI mirrors erdo_list_approvals.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/approvals","href":"/api-reference/listapprovalsapi-mirrors-erdo_list_approvals"},{"title":"GetApprovalAPI mirrors erdo_get_approval: one request in full, the read a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/approvals/{id}","href":"/api-reference/getapprovalapi-mirrors-erdo_get_approval:-one-request-in-full-the-read-a"},{"title":"DecideApprovalAPI mirrors erdo_decide_approval.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/approvals/{id}/decide","href":"/api-reference/decideapprovalapi-mirrors-erdo_decide_approval"},{"title":"ListArtifactsAPI mirrors the erdo_list_artifacts MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/artifacts","href":"/api-reference/listartifactsapi-mirrors-the-erdo_list_artifacts-mcp-tool"},{"title":"GetArtifactAPI mirrors the erdo_get_artifact MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/artifacts/{artifactID}","href":"/api-reference/getartifactapi-mirrors-the-erdo_get_artifact-mcp-tool"},{"title":"AskDataQuestionAPI mirrors the erdo_ask_data_question MCP tool as a REST\nendpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/ask","href":"/api-reference/askdataquestionapi-mirrors-the-erdo_ask_data_question-mcp-tool-as-a-restendpoint"},{"title":"ListAttentionItemsAPI mirrors erdo_list_attention_items.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/attention","href":"/api-reference/listattentionitemsapi-mirrors-erdo_list_attention_items"},{"title":"RespondAttentionItemAPI mirrors erdo_respond_attention_item: answer a choice\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/attention/{itemID}/respond","href":"/api-reference/respondattentionitemapi-mirrors-erdo_respond_attention_item:-answer-a-choice"},{"title":"GetAutonomyGatesAPI mirrors erdo_get_autonomy_gates: read which risk classes\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/autonomy-gates","href":"/api-reference/getautonomygatesapi-mirrors-erdo_get_autonomy_gates:-read-which-risk-classes"},{"title":"SetAutonomyGatesAPI mirrors erdo_set_autonomy_gates: replace the org's\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/autonomy-gates","href":"/api-reference/setautonomygatesapi-mirrors-erdo_set_autonomy_gates:-replace-the-orgs"},{"title":"GetAutonomyModeAPI mirrors erdo_get_autonomy_mode: read the org's engine\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/autonomy-mode","href":"/api-reference/getautonomymodeapi-mirrors-erdo_get_autonomy_mode:-read-the-orgs-engine"},{"title":"SetAutonomyModeAPI mirrors erdo_set_autonomy_mode: set the org's engine\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/autonomy-mode","href":"/api-reference/setautonomymodeapi-mirrors-erdo_set_autonomy_mode:-set-the-orgs-engine"},{"title":"GetChannelStatusAPI mirrors erdo_channel_status: where the organization's\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/channels/status","href":"/api-reference/getchannelstatusapi-mirrors-erdo_channel_status:-where-the-organizations"},{"title":"CreditBalanceAPI returns the authenticated current organization's credit\nbalance.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/credits/balance","href":"/api-reference/creditbalanceapi-returns-the-authenticated-current-organizations-creditbalance"},{"title":"ManagerCreditFundingAPI reads whether this organization funds its managed\norganizations.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/credits/manager-funding","href":"/api-reference/managercreditfundingapi-reads-whether-this-organization-funds-its-managedorganizations"},{"title":"UpdateManagerCreditFundingAPI changes the current organization's manager funding\nsetting.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json patch /v1/credits/manager-funding","href":"/api-reference/updatemanagercreditfundingapi-changes-the-current-organizations-manager-fundingsetting"},{"title":"CreateCriticReviewAPI reviews typed advertising creative on demand. Findings\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/critic/reviews","href":"/api-reference/createcriticreviewapi-reviews-typed-advertising-creative-on-demand-findings"},{"title":"ListCrossCustomerPriorsAPI mirrors erdo_list_cross_customer_priors.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/cross-customer-priors","href":"/api-reference/listcrosscustomerpriorsapi-mirrors-erdo_list_cross_customer_priors"},{"title":"ListCustomDomainsAPI lists the caller org's custom page domains with live\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/custom-domains","href":"/api-reference/listcustomdomainsapi-lists-the-caller-orgs-custom-page-domains-with-live"},{"title":"CreateCustomDomainAPI registers a custom domain for the caller's org and\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/custom-domains","href":"/api-reference/createcustomdomainapi-registers-a-custom-domain-for-the-callers-org-and"},{"title":"DeleteCustomDomainAPI removes a custom domain registration (and its CDN\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/custom-domains/{domain}","href":"/api-reference/deletecustomdomainapi-removes-a-custom-domain-registration-and-its-cdn"},{"title":"SetCustomDomainHomeAPI changes what the domain root serves.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json patch /v1/custom-domains/{domain}/home","href":"/api-reference/setcustomdomainhomeapi-changes-what-the-domain-root-serves"},{"title":"SetCustomDomainManagerDefaultAPI marks a registered domain as the one the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json patch /v1/custom-domains/{domain}/manager-default","href":"/api-reference/setcustomdomainmanagerdefaultapi-marks-a-registered-domain-as-the-one-the"},{"title":"TransferCustomDomainAPI moves a custom domain to another organization the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/custom-domains/{domain}/transfer","href":"/api-reference/transfercustomdomainapi-moves-a-custom-domain-to-another-organization-the"},{"title":"GatherDatasetContextAPI mirrors the erdo_gather_dataset_context MCP tool as a\nREST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/dataset-context","href":"/api-reference/gatherdatasetcontextapi-mirrors-the-erdo_gather_dataset_context-mcp-tool-as-arest-endpoint"},{"title":"GetDatasetNotificationAPI reports who is emailed when new rows land in a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/dataset-notifications","href":"/api-reference/getdatasetnotificationapi-reports-who-is-emailed-when-new-rows-land-in-a"},{"title":"SetDatasetNotificationAPI replaces the email recipients and optional durable\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/dataset-notifications","href":"/api-reference/setdatasetnotificationapi-replaces-the-email-recipients-and-optional-durable"},{"title":"Lists what already happens to new rows in a dataset: every declaration on it,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/dataset-row-actions","href":"/api-reference/lists-what-already-happens-to-new-rows-in-a-dataset:-every-declaration-on-it"},{"title":"Declares what happens when new rows land in a dataset: invoke an action on\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/dataset-row-actions","href":"/api-reference/declares-what-happens-when-new-rows-land-in-a-dataset:-invoke-an-action-on"},{"title":"Renders the email a declaration would produce for one sample row and delivers\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/dataset-row-actions/test-send","href":"/api-reference/renders-the-email-a-declaration-would-produce-for-one-sample-row-and-delivers"},{"title":"ListDatasetsAPI mirrors the erdo_list_datasets MCP tool as a REST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets","href":"/api-reference/listdatasetsapi-mirrors-the-erdo_list_datasets-mcp-tool-as-a-rest-endpoint"},{"title":"CreateDatasetAPI creates a new empty dataset.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets-create","href":"/api-reference/createdatasetapi-creates-a-new-empty-dataset"},{"title":"EnsureDatasetAPI creates, reuses, or explicitly adopts the one dataset for a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets-ensure","href":"/api-reference/ensuredatasetapi-creates-reuses-or-explicitly-adopts-the-one-dataset-for-a"},{"title":"ListDatasetPurposesAPI mirrors the erdo_list_dataset_purposes MCP tool as a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets-purposes","href":"/api-reference/listdatasetpurposesapi-mirrors-the-erdo_list_dataset_purposes-mcp-tool-as-a"},{"title":"SearchDatasetsAPI mirrors the erdo_search_datasets MCP tool as a REST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets-search","href":"/api-reference/searchdatasetsapi-mirrors-the-erdo_search_datasets-mcp-tool-as-a-rest-endpoint"},{"title":"UploadDatasetFileAPI mirrors the erdo_upload_dataset_file MCP tool as a REST\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets-upload","href":"/api-reference/uploaddatasetfileapi-mirrors-the-erdo_upload_dataset_file-mcp-tool-as-a-rest"},{"title":"GetDatasetSchemaAPI mirrors the erdo_get_dataset_schema MCP tool as a REST\nendpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetID}/schema","href":"/api-reference/getdatasetschemaapi-mirrors-the-erdo_get_dataset_schema-mcp-tool-as-a-restendpoint"},{"title":"DeleteDatasetAPI deletes a dataset by slug.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/datasets/{datasetSlug}","href":"/api-reference/deletedatasetapi-deletes-a-dataset-by-slug"},{"title":"FetchDatasetContentsAPI mirrors the erdo_fetch_dataset_contents MCP tool as a\nREST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/fetch","href":"/api-reference/fetchdatasetcontentsapi-mirrors-the-erdo_fetch_dataset_contents-mcp-tool-as-arest-endpoint"},{"title":"ListDatasetFiltersAPI mirrors the erdo_list_dataset_filters MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/filters","href":"/api-reference/listdatasetfiltersapi-mirrors-the-erdo_list_dataset_filters-mcp-tool"},{"title":"CreateDatasetFilterAPI mirrors the erdo_add_dataset_filter MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/filters","href":"/api-reference/createdatasetfilterapi-mirrors-the-erdo_add_dataset_filter-mcp-tool"},{"title":"DeleteDatasetFilterAPI mirrors the erdo_remove_dataset_filter MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/datasets/{datasetSlug}/filters/{filterID}","href":"/api-reference/deletedatasetfilterapi-mirrors-the-erdo_remove_dataset_filter-mcp-tool"},{"title":"ListLeadMergeCandidatesAPI mirrors the erdo_list_lead_merge_candidates MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/lead-candidates","href":"/api-reference/listleadmergecandidatesapi-mirrors-the-erdo_list_lead_merge_candidates-mcp-tool"},{"title":"ResolveLeadCaptureAPI previews or records an audited disposition of a refused\ncapture.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/lead-captures/{captureID}/resolve","href":"/api-reference/resolveleadcaptureapi-previews-or-records-an-audited-disposition-of-a-refusedcapture"},{"title":"MaintainLeadIdentityAPI is the REST surface for previewing and performing a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/lead-identity/maintain","href":"/api-reference/maintainleadidentityapi-is-the-rest-surface-for-previewing-and-performing-a"},{"title":"ListLeadReachabilityAPI mirrors the erdo_list_lead_reachability MCP tool:\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/lead-reachability","href":"/api-reference/listleadreachabilityapi-mirrors-the-erdo_list_lead_reachability-mcp-tool:"},{"title":"GetLeadAPI mirrors the erdo_get_lead MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/leads/{leadRef}","href":"/api-reference/getleadapi-mirrors-the-erdo_get_lead-mcp-tool"},{"title":"DeleteLeadAPI removes one lead from Erdo: its row and identity, its\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/datasets/{datasetSlug}/leads/{leadRef}","href":"/api-reference/deleteleadapi-removes-one-lead-from-erdo:-its-row-and-identity-its"},{"title":"MergeLeadsAPI makes two lead identities one lead: the absorbed identity points\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/leads/{leadRef}/merge","href":"/api-reference/mergeleadsapi-makes-two-lead-identities-one-lead:-the-absorbed-identity-points"},{"title":"GetLeadNextActionsAPI mirrors the erdo_get_lead_next_actions MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/leads/{leadRef}/next-actions","href":"/api-reference/getleadnextactionsapi-mirrors-the-erdo_get_lead_next_actions-mcp-tool"},{"title":"RecordLeadNextActionAPI records a person's hold, close or start on one lead.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/leads/{leadRef}/next-actions","href":"/api-reference/recordleadnextactionapi-records-a-persons-hold-close-or-start-on-one-lead"},{"title":"EvaluateLeadNextActionAPI mirrors the erdo_evaluate_lead_next_action MCP\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/leads/{leadRef}/next-actions/evaluate","href":"/api-reference/evaluateleadnextactionapi-mirrors-the-erdo_evaluate_lead_next_action-mcp"},{"title":"ResolveLeadHandoffAPI records the sales desk marking a handoff done or not\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/leads/{leadRef}/next-actions/handoff","href":"/api-reference/resolveleadhandoffapi-records-the-sales-desk-marking-a-handoff-done-or-not"},{"title":"ResumeLeadNextActionsAPI hands a lead the desk snoozed (held) or stopped\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/leads/{leadRef}/next-actions/resume","href":"/api-reference/resumeleadnextactionsapi-hands-a-lead-the-desk-snoozed-held-or-stopped"},{"title":"UndoLeadNextActionAPI takes back an approval that has not been carried out\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/leads/{leadRef}/next-actions/undo","href":"/api-reference/undoleadnextactionapi-takes-back-an-approval-that-has-not-been-carried-out"},{"title":"GetLeadTimelineAPI mirrors the erdo_get_lead_timeline MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/leads/{leadRef}/timeline","href":"/api-reference/getleadtimelineapi-mirrors-the-erdo_get_lead_timeline-mcp-tool"},{"title":"List explicit user grants on a dataset in the active organization.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/permissions/users","href":"/api-reference/list-explicit-user-grants-on-a-dataset-in-the-active-organization"},{"title":"Set an explicit user grant and return the persisted grant. Ownership is\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/datasets/{datasetSlug}/permissions/users/{userID}","href":"/api-reference/set-an-explicit-user-grant-and-return-the-persisted-grant-ownership-is"},{"title":"Remove an explicit user grant and verify its absence. Inherited access may\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/datasets/{datasetSlug}/permissions/users/{userID}","href":"/api-reference/remove-an-explicit-user-grant-and-verify-its-absence-inherited-access-may"},{"title":"RunQueryAPI mirrors the erdo_run_query MCP tool as a REST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/query","href":"/api-reference/runqueryapi-mirrors-the-erdo_run_query-mcp-tool-as-a-rest-endpoint"},{"title":"QueryDataNaturalLanguageAPI mirrors the erdo_query_data MCP tool as a REST\nendpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/query-nl","href":"/api-reference/querydatanaturallanguageapi-mirrors-the-erdo_query_data-mcp-tool-as-a-restendpoint"},{"title":"GetDatasetRefreshAPI mirrors the erdo_get_dataset_refresh MCP tool. A dataset\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/refresh","href":"/api-reference/getdatasetrefreshapi-mirrors-the-erdo_get_dataset_refresh-mcp-tool-a-dataset"},{"title":"ConfigureDatasetRefreshAPI mirrors the erdo_configure_dataset_refresh MCP\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/datasets/{datasetSlug}/refresh","href":"/api-reference/configuredatasetrefreshapi-mirrors-the-erdo_configure_dataset_refresh-mcp"},{"title":"RunDatasetRefreshAPI mirrors the erdo_run_dataset_refresh MCP tool: it runs\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/refresh/run","href":"/api-reference/rundatasetrefreshapi-mirrors-the-erdo_run_dataset_refresh-mcp-tool:-it-runs"},{"title":"ListDatasetRevisionsAPI mirrors the erdo_list_dataset_revisions MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/datasets/{datasetSlug}/revisions","href":"/api-reference/listdatasetrevisionsapi-mirrors-the-erdo_list_dataset_revisions-mcp-tool"},{"title":"WriteDatasetRowsAPI writes/upserts rows to a dataset.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/rows","href":"/api-reference/writedatasetrowsapi-writesupserts-rows-to-a-dataset"},{"title":"DeleteDatasetRowsAPI deletes rows from a dataset.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/datasets/{datasetSlug}/rows","href":"/api-reference/deletedatasetrowsapi-deletes-rows-from-a-dataset"},{"title":"UpdateDatasetSchemaAPI updates a dataset's schema (add/remove/rename columns,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/datasets/{datasetSlug}/schema","href":"/api-reference/updatedatasetschemaapi-updates-a-datasets-schema-addremoverename-columns"},{"title":"ListDecisionsAPI mirrors erdo_list_decisions.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/decisions","href":"/api-reference/listdecisionsapi-mirrors-erdo_list_decisions"},{"title":"DecisionScorecardAPI mirrors erdo_decision_scorecard: raw aggregates with their\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/decisions-scorecard","href":"/api-reference/decisionscorecardapi-mirrors-erdo_decision_scorecard:-raw-aggregates-with-their"},{"title":"GetDecisionAPI mirrors erdo_get_decision: one decision in full — the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/decisions/{decisionSlug}","href":"/api-reference/getdecisionapi-mirrors-erdo_get_decision:-one-decision-in-full-—-the"},{"title":"RetireDecisionAPI mirrors erdo_retire_decision.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/decisions/{decisionSlug}/retire","href":"/api-reference/retiredecisionapi-mirrors-erdo_retire_decision"},{"title":"ListEmailsAPI mirrors erdo_list_emails. Filters ride the query string, except\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/emails","href":"/api-reference/listemailsapi-mirrors-erdo_list_emails-filters-ride-the-query-string-except"},{"title":"ListEmailsPostAPI is the POST body form of the list endpoint. It exists for\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/emails-query","href":"/api-reference/listemailspostapi-is-the-post-body-form-of-the-list-endpoint-it-exists-for"},{"title":"GetEmailAPI mirrors erdo_get_email, returning one message with both bodies as\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/emails/{emailID}","href":"/api-reference/getemailapi-mirrors-erdo_get_email-returning-one-message-with-both-bodies-as"},{"title":"GetEvalLeaderboardAPI mirrors erdo_get_eval_leaderboard.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/evals/leaderboard/{suiteSlug}","href":"/api-reference/getevalleaderboardapi-mirrors-erdo_get_eval_leaderboard"},{"title":"ListEvalRunsAPI mirrors erdo_list_eval_runs.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/evals/runs","href":"/api-reference/listevalrunsapi-mirrors-erdo_list_eval_runs"},{"title":"GetEvalRunAPI mirrors erdo_get_eval_run.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/evals/runs/{runID}","href":"/api-reference/getevalrunapi-mirrors-erdo_get_eval_run"},{"title":"ListEvalSuitesAPI mirrors erdo_list_eval_suites.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/evals/suites","href":"/api-reference/listevalsuitesapi-mirrors-erdo_list_eval_suites"},{"title":"CreateEvalSuiteAPI mirrors erdo_create_eval_suite.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/evals/suites","href":"/api-reference/createevalsuiteapi-mirrors-erdo_create_eval_suite"},{"title":"GetEvalSuiteAPI mirrors erdo_get_eval_suite.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/evals/suites/{suiteSlug}","href":"/api-reference/getevalsuiteapi-mirrors-erdo_get_eval_suite"},{"title":"UpdateEvalSuiteAPI mirrors erdo_update_eval_suite. Only provided fields change.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/evals/suites/{suiteSlug}","href":"/api-reference/updateevalsuiteapi-mirrors-erdo_update_eval_suite-only-provided-fields-change"},{"title":"AddEvalCaseAPI mirrors erdo_add_eval_case.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/evals/suites/{suiteSlug}/cases","href":"/api-reference/addevalcaseapi-mirrors-erdo_add_eval_case"},{"title":"UpdateEvalCaseAPI mirrors erdo_update_eval_case.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/evals/suites/{suiteSlug}/cases/{caseName}","href":"/api-reference/updateevalcaseapi-mirrors-erdo_update_eval_case"},{"title":"RemoveEvalCaseAPI mirrors erdo_remove_eval_case.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/evals/suites/{suiteSlug}/cases/{caseName}","href":"/api-reference/removeevalcaseapi-mirrors-erdo_remove_eval_case"},{"title":"RunEvalSuiteAPI mirrors erdo_run_eval_suite.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/evals/suites/{suiteSlug}/run","href":"/api-reference/runevalsuiteapi-mirrors-erdo_run_eval_suite"},{"title":"GetEvalWidgetCanaryAPI reads the deployed-experience widget canary for the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/evals/widget-canary","href":"/api-reference/getevalwidgetcanaryapi-reads-the-deployed-experience-widget-canary-for-the"},{"title":"ConfigureEvalWidgetCanaryAPI designates an existing widget in the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/evals/widget-canary","href":"/api-reference/configureevalwidgetcanaryapi-designates-an-existing-widget-in-the"},{"title":"ListEventPipelinesAPI mirrors erdo_list_event_pipelines.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/event-pipelines","href":"/api-reference/listeventpipelinesapi-mirrors-erdo_list_event_pipelines"},{"title":"CreateEventPipelineAPI mirrors erdo_create_event_pipeline. Creation is where\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/event-pipelines","href":"/api-reference/createeventpipelineapi-mirrors-erdo_create_event_pipeline-creation-is-where"},{"title":"GetEventPipelineAPI mirrors erdo_get_event_pipeline (slug or uuid).\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/event-pipelines/{pipelineSlug}","href":"/api-reference/geteventpipelineapi-mirrors-erdo_get_event_pipeline-slug-or-uuid"},{"title":"UpdateEventPipelineAPI mirrors erdo_update_event_pipeline. Fields merge over\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/event-pipelines/{pipelineSlug}","href":"/api-reference/updateeventpipelineapi-mirrors-erdo_update_event_pipeline-fields-merge-over"},{"title":"ListEventPipelineExecutionsAPI mirrors erdo_list_event_pipeline_executions.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/event-pipelines/{pipelineSlug}/executions","href":"/api-reference/listeventpipelineexecutionsapi-mirrors-erdo_list_event_pipeline_executions"},{"title":"MarkEventPipelineExecutionsHandledAPI records that pipeline failures have been\ndealt with.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/event-pipelines/{pipelineSlug}/executions/handled","href":"/api-reference/markeventpipelineexecutionshandledapi-records-that-pipeline-failures-have-beendealt-with"},{"title":"RotateEventPipelineSecretAPI mirrors erdo_rotate_event_pipeline_secret. The\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/event-pipelines/{pipelineSlug}/rotate-secret","href":"/api-reference/rotateeventpipelinesecretapi-mirrors-erdo_rotate_event_pipeline_secret-the"},{"title":"ListExperimentsAPI mirrors erdo_list_experiments.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/experiments","href":"/api-reference/listexperimentsapi-mirrors-erdo_list_experiments"},{"title":"CreateExperimentAPI mirrors erdo_create_experiment.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/experiments","href":"/api-reference/createexperimentapi-mirrors-erdo_create_experiment"},{"title":"GetExperimentAPI mirrors erdo_get_experiment (slug or uuid).\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/experiments/{experimentSlug}","href":"/api-reference/getexperimentapi-mirrors-erdo_get_experiment-slug-or-uuid"},{"title":"UpdateExperimentAPI mirrors erdo_update_experiment.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json patch /v1/experiments/{experimentSlug}","href":"/api-reference/updateexperimentapi-mirrors-erdo_update_experiment"},{"title":"RecordAllocationDecisionAPI mirrors erdo_record_allocation_decision: record\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/experiments/{experimentSlug}/allocation-decisions","href":"/api-reference/recordallocationdecisionapi-mirrors-erdo_record_allocation_decision:-record"},{"title":"DiagnoseExperimentAPI mirrors erdo_diagnose_experiment_personas: run\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/experiments/{experimentSlug}/diagnose","href":"/api-reference/diagnoseexperimentapi-mirrors-erdo_diagnose_experiment_personas:-run"},{"title":"ListExperimentObservationsAPI mirrors erdo_list_experiment_observations.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/experiments/{experimentSlug}/observations","href":"/api-reference/listexperimentobservationsapi-mirrors-erdo_list_experiment_observations"},{"title":"RunPersonaPanelAPI mirrors erdo_run_persona_panel: start a persona panel\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/experiments/{experimentSlug}/panel","href":"/api-reference/runpersonapanelapi-mirrors-erdo_run_persona_panel:-start-a-persona-panel"},{"title":"GetExperimentPolicyAPI mirrors erdo_get_experiment_policy — the decision\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/experiments/{experimentSlug}/policy","href":"/api-reference/getexperimentpolicyapi-mirrors-erdo_get_experiment_policy-—-the-decision"},{"title":"RunTournamentAPI mirrors erdo_run_pairwise_tournament: rank an experiment's\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/experiments/{experimentSlug}/tournament","href":"/api-reference/runtournamentapi-mirrors-erdo_run_pairwise_tournament:-rank-an-experiments"},{"title":"ListHeartbeatsAPI mirrors the erdo_list_heartbeats MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/heartbeats","href":"/api-reference/listheartbeatsapi-mirrors-the-erdo_list_heartbeats-mcp-tool"},{"title":"CreateHeartbeatAPI mirrors the erdo_create_heartbeat MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/heartbeats","href":"/api-reference/createheartbeatapi-mirrors-the-erdo_create_heartbeat-mcp-tool"},{"title":"UpdateHeartbeatAPI mirrors the erdo_update_heartbeat MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json patch /v1/heartbeats/{heartbeatID}","href":"/api-reference/updateheartbeatapi-mirrors-the-erdo_update_heartbeat-mcp-tool"},{"title":"ListHeartbeatExecutionsAPI mirrors the erdo_list_heartbeat_executions MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/heartbeats/{heartbeatID}/executions","href":"/api-reference/listheartbeatexecutionsapi-mirrors-the-erdo_list_heartbeat_executions-mcp-tool"},{"title":"RunHeartbeatAPI mirrors the erdo_run_heartbeat MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/heartbeats/{heartbeatID}/run","href":"/api-reference/runheartbeatapi-mirrors-the-erdo_run_heartbeat-mcp-tool"},{"title":"SetHeartbeatStateAPI mirrors the erdo_set_heartbeat_state MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/heartbeats/{heartbeatID}/state","href":"/api-reference/setheartbeatstateapi-mirrors-the-erdo_set_heartbeat_state-mcp-tool"},{"title":"UploadImageAPI mirrors the erdo_upload_image MCP tool as a REST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/images/upload","href":"/api-reference/uploadimageapi-mirrors-the-erdo_upload_image-mcp-tool-as-a-rest-endpoint"},{"title":"SearchIntegrationAppsAPI mirrors the erdo_search_integration_apps MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/integration-apps","href":"/api-reference/searchintegrationappsapi-mirrors-the-erdo_search_integration_apps-mcp-tool"},{"title":"ListConnectLinksAPI mirrors erdo_list_integration_connect_links.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/integration-connect-links","href":"/api-reference/listconnectlinksapi-mirrors-erdo_list_integration_connect_links"},{"title":"CreateConnectLinkAPI mirrors erdo_create_integration_connect_link.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integration-connect-links","href":"/api-reference/createconnectlinkapi-mirrors-erdo_create_integration_connect_link"},{"title":"RevokeConnectLinkAPI mirrors erdo_revoke_integration_connect_link.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integration-connect-links/{id}/revoke","href":"/api-reference/revokeconnectlinkapi-mirrors-erdo_revoke_integration_connect_link"},{"title":"CreateIntegrationDatasetAPI mirrors erdo_create_integration_dataset.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integration-datasets","href":"/api-reference/createintegrationdatasetapi-mirrors-erdo_create_integration_dataset"},{"title":"ConfigureIntegrationDatasetAPI updates an existing integration dataset's\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integration-datasets/{datasetID}/configure","href":"/api-reference/configureintegrationdatasetapi-updates-an-existing-integration-datasets"},{"title":"ListIntegrationsAPI mirrors the erdo_list_integrations MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/integrations","href":"/api-reference/listintegrationsapi-mirrors-the-erdo_list_integrations-mcp-tool"},{"title":"ConnectIntegrationAPI mirrors the erdo_connect_integration MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integrations-connect","href":"/api-reference/connectintegrationapi-mirrors-the-erdo_connect_integration-mcp-tool"},{"title":"CheckIntegrationConnectionAPI mirrors the erdo_check_integration_connection MCP\ntool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/integrations-connect/{app}","href":"/api-reference/checkintegrationconnectionapi-mirrors-the-erdo_check_integration_connection-mcptool"},{"title":"DeleteIntegrationAPI removes a connected integration: the credential row is\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/integrations/{integrationID}","href":"/api-reference/deleteintegrationapi-removes-a-connected-integration:-the-credential-row-is"},{"title":"GetConnectionScopeAPI mirrors the erdo_get_connection_scope MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/integrations/{integrationID}/connection-scope","href":"/api-reference/getconnectionscopeapi-mirrors-the-erdo_get_connection_scope-mcp-tool"},{"title":"SetConnectionScopeAPI mirrors the erdo_set_connection_scope MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integrations/{integrationID}/connection-scope","href":"/api-reference/setconnectionscopeapi-mirrors-the-erdo_set_connection_scope-mcp-tool"},{"title":"SetIntegrationIdentityAPI writes a connection's stored account identity\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integrations/{integrationID}/identity","href":"/api-reference/setintegrationidentityapi-writes-a-connections-stored-account-identity"},{"title":"SetIntegrationManagedAccessAPI starts or stops providing a connection to the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integrations/{integrationID}/managed-access","href":"/api-reference/setintegrationmanagedaccessapi-starts-or-stops-providing-a-connection-to-the"},{"title":"SetIntegrationMemberAccessAPI sets whether teammates who reach a shared\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/integrations/{integrationID}/member-access","href":"/api-reference/setintegrationmemberaccessapi-sets-whether-teammates-who-reach-a-shared"},{"title":"DiscoverIntegrationTablesAPI mirrors erdo_discover_integration_tables.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/integrations/{integrationRef}/tables","href":"/api-reference/discoverintegrationtablesapi-mirrors-erdo_discover_integration_tables"},{"title":"AssessInvestigationAPI assesses one data question from evidence the caller\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/investigations","href":"/api-reference/assessinvestigationapi-assesses-one-data-question-from-evidence-the-caller"},{"title":"BacktestJudgeAPI mirrors erdo_backtest_judge: run a judge over the org's live\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/judge-backtests","href":"/api-reference/backtestjudgeapi-mirrors-erdo_backtest_judge:-run-a-judge-over-the-orgs-live"},{"title":"JudgeCalibrationAPI mirrors erdo_judge_calibration.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/judge-calibration","href":"/api-reference/judgecalibrationapi-mirrors-erdo_judge_calibration"},{"title":"ListKnowledgeAPI mirrors the erdo_list_knowledge MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/knowledge","href":"/api-reference/listknowledgeapi-mirrors-the-erdo_list_knowledge-mcp-tool"},{"title":"CreateKnowledgeAPI mirrors the erdo_create_knowledge MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/knowledge","href":"/api-reference/createknowledgeapi-mirrors-the-erdo_create_knowledge-mcp-tool"},{"title":"SearchKnowledgeAPI mirrors the erdo_search_knowledge MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/knowledge-search","href":"/api-reference/searchknowledgeapi-mirrors-the-erdo_search_knowledge-mcp-tool"},{"title":"GetKnowledgeAPI mirrors the typed Knowledge read used by the app and MCP\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/knowledge/{knowledgeObjectID}","href":"/api-reference/getknowledgeapi-mirrors-the-typed-knowledge-read-used-by-the-app-and-mcp"},{"title":"DeleteKnowledgeAPI mirrors the erdo_delete_knowledge MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/knowledge/{knowledgeObjectID}","href":"/api-reference/deleteknowledgeapi-mirrors-the-erdo_delete_knowledge-mcp-tool"},{"title":"UpdateKnowledgeAPI mirrors the canonical typed Knowledge action. The action\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/knowledge/{knowledgeObjectID}/actions","href":"/api-reference/updateknowledgeapi-mirrors-the-canonical-typed-knowledge-action-the-action"},{"title":"SetKnowledgeVisibilityAPI mirrors the erdo_set_knowledge_visibility MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json patch /v1/knowledge/{knowledgeObjectID}/visibility","href":"/api-reference/setknowledgevisibilityapi-mirrors-the-erdo_set_knowledge_visibility-mcp-tool"},{"title":"ListKnowledgeAssetsAPI mirrors erdo_list_knowledge_assets.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/knowledge/{objectID}/attachments","href":"/api-reference/listknowledgeassetsapi-mirrors-erdo_list_knowledge_assets"},{"title":"AttachKnowledgeAssetAPI mirrors the erdo_attach_knowledge_asset MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/knowledge/{objectID}/attachments","href":"/api-reference/attachknowledgeassetapi-mirrors-the-erdo_attach_knowledge_asset-mcp-tool"},{"title":"ListKVStoresAPIv1 mirrors the erdo_list_kv_stores MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/kv","href":"/api-reference/listkvstoresapiv1-mirrors-the-erdo_list_kv_stores-mcp-tool"},{"title":"CreateKVStoreAPIv1 mirrors the erdo_create_kv_store MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/kv","href":"/api-reference/createkvstoreapiv1-mirrors-the-erdo_create_kv_store-mcp-tool"},{"title":"GetKVItemAPIv1 mirrors the erdo_get_kv_item MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/kv/{slug}/items/{key}","href":"/api-reference/getkvitemapiv1-mirrors-the-erdo_get_kv_item-mcp-tool"},{"title":"SetKVItemAPIv1 mirrors the erdo_set_kv_item MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/kv/{slug}/items/{key}","href":"/api-reference/setkvitemapiv1-mirrors-the-erdo_set_kv_item-mcp-tool"},{"title":"DeleteKVItemAPIv1 mirrors the erdo_delete_kv_item MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/kv/{slug}/items/{key}","href":"/api-reference/deletekvitemapiv1-mirrors-the-erdo_delete_kv_item-mcp-tool"},{"title":"ListLeadNextActionsAPI mirrors the erdo_list_lead_next_actions MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/lead-next-actions","href":"/api-reference/listleadnextactionsapi-mirrors-the-erdo_list_lead_next_actions-mcp-tool"},{"title":"GetLeadPlaybookAPI mirrors the erdo_get_lead_playbook MCP tool. An\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/lead-playbook","href":"/api-reference/getleadplaybookapi-mirrors-the-erdo_get_lead_playbook-mcp-tool-an"},{"title":"PutLeadPlaybookAPI saves the playbook text, reads it into the typed\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/lead-playbook","href":"/api-reference/putleadplaybookapi-saves-the-playbook-text-reads-it-into-the-typed"},{"title":"PutLeadPlaybookHandoffAlertAPI changes only who is emailed about a handoff\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/lead-playbook/handoff-alert","href":"/api-reference/putleadplaybookhandoffalertapi-changes-only-who-is-emailed-about-a-handoff"},{"title":"ReadLeadPlaybookAPI mirrors the erdo_read_lead_playbook MCP tool: the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/lead-playbook/read-back","href":"/api-reference/readleadplaybookapi-mirrors-the-erdo_read_lead_playbook-mcp-tool:-the"},{"title":"ListLeadPlaybookRevisionsAPI mirrors the erdo_list_lead_playbook_revisions\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/lead-playbook/revisions","href":"/api-reference/listleadplaybookrevisionsapi-mirrors-the-erdo_list_lead_playbook_revisions"},{"title":"GetLeadPlaybookRevisionAPI mirrors the erdo_get_lead_playbook_revision MCP\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/lead-playbook/revisions/{revision}","href":"/api-reference/getleadplaybookrevisionapi-mirrors-the-erdo_get_lead_playbook_revision-mcp"},{"title":"AdoptManagedOrganizationAPI brings an EXISTING org under the caller's manager\norg. Consent\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/managed-organization-adoptions","href":"/api-reference/adoptmanagedorganizationapi-brings-an-existing-org-under-the-callers-managerorg-consent"},{"title":"ManagerPerformanceAPI mirrors erdo_get_manager_performance.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/managed-organization-performance","href":"/api-reference/managerperformanceapi-mirrors-erdo_get_manager_performance"},{"title":"ListManagedOrganizationsAPI mirrors erdo_list_managed_organizations.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/managed-organizations","href":"/api-reference/listmanagedorganizationsapi-mirrors-erdo_list_managed_organizations"},{"title":"CreateManagedOrganizationAPI mirrors erdo_create_managed_organization.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/managed-organizations","href":"/api-reference/createmanagedorganizationapi-mirrors-erdo_create_managed_organization"},{"title":"RevokeManagedOrganizationAPI mirrors erdo_revoke_managed_organization (managed\norg named by slug).\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/managed-organizations/{orgSlug}","href":"/api-reference/revokemanagedorganizationapi-mirrors-erdo_revoke_managed_organization-managedorg-named-by-slug"},{"title":"GetManagedOrganizationAdsContainerAPI reports the Google Ads container a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/managed-organizations/{orgSlug}/ads-container","href":"/api-reference/getmanagedorganizationadscontainerapi-reports-the-google-ads-container-a"},{"title":"ProvisionManagedOrganizationAdsContainerAPI gives a managed org its own Google\nAds container in\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/managed-organizations/{orgSlug}/ads-container","href":"/api-reference/provisionmanagedorganizationadscontainerapi-gives-a-managed-org-its-own-googleads-container-in"},{"title":"SetManagedOrganizationFeatureFlagAPI turns a feature flag on for a managed org\nyou operate, as an\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/managed-organizations/{orgSlug}/feature-flags/{key}","href":"/api-reference/setmanagedorganizationfeatureflagapi-turns-a-feature-flag-on-for-a-managed-orgyou-operate-as-an"},{"title":"ClearManagedOrganizationFeatureFlagAPI removes the override set above, so the\nmanaged org resolves\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/managed-organizations/{orgSlug}/feature-flags/{key}","href":"/api-reference/clearmanagedorganizationfeatureflagapi-removes-the-override-set-above-so-themanaged-org-resolves"},{"title":"CreateManagedOrganizationHandoffTokenAPI mints a one-time token that offers an\nOWNERLESS managed\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/managed-organizations/{orgSlug}/handoff-tokens","href":"/api-reference/createmanagedorganizationhandofftokenapi-mints-a-one-time-token-that-offers-anownerless-managed"},{"title":"AddManagedOrganizationMemberAPI adds a human member to a managed org by email\n(role member or\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/managed-organizations/{orgSlug}/members","href":"/api-reference/addmanagedorganizationmemberapi-adds-a-human-member-to-a-managed-org-by-emailrole-member-or"},{"title":"CreateManagerKeyAPI creates or rotates the manager credential. The raw key is\nreturned exactly once.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/manager-key","href":"/api-reference/createmanagerkeyapi-creates-or-rotates-the-manager-credential-the-raw-key-isreturned-exactly-once"},{"title":"SendMauriceOrderEmailAPI sends Maurice's fixed billing-order message. The\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/maurice-order-emails","href":"/api-reference/sendmauriceorderemailapi-sends-maurices-fixed-billing-order-message-the"},{"title":"SearchMCPToolsAPI mirrors erdo_search_tools. It finds a registered MCP tool\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/mcp/tools","href":"/api-reference/searchmcptoolsapi-mirrors-erdo_search_tools-it-finds-a-registered-mcp-tool"},{"title":"ListMCPToolsetsAPI mirrors erdo_list_toolsets. It describes the MCP catalog.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/mcp/toolsets","href":"/api-reference/listmcptoolsetsapi-mirrors-erdo_list_toolsets-it-describes-the-mcp-catalog"},{"title":"MeAPI returns the authenticated user and their currently-active org (the one\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/me","href":"/api-reference/meapi-returns-the-authenticated-user-and-their-currently-active-org-the-one"},{"title":"GetBusinessProfileAPI mirrors erdo_get_business_profile. The tax id is never\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/org/business-profile","href":"/api-reference/getbusinessprofileapi-mirrors-erdo_get_business_profile-the-tax-id-is-never"},{"title":"SetBusinessProfileAPI mirrors erdo_set_business_profile. PUT rather than\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/org/business-profile","href":"/api-reference/setbusinessprofileapi-mirrors-erdo_set_business_profile-put-rather-than"},{"title":"ListOrganizationsAPI lists the orgs the caller can enter, for `erdo org list`\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/organizations","href":"/api-reference/listorganizationsapi-lists-the-orgs-the-caller-can-enter-for-`erdo-org-list`"},{"title":"CreateOrganizationAPI creates a new top-level organization owned by the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/organizations","href":"/api-reference/createorganizationapi-creates-a-new-top-level-organization-owned-by-the"},{"title":"Get v1outreach batches","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/outreach-batches","href":"/api-reference/get-v1outreach-batches"},{"title":"Get v1outreach batches 1","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/outreach-batches/{batch}","href":"/api-reference/get-v1outreach-batches-1"},{"title":"Put v1outreach batches","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/outreach-batches/{batch}","href":"/api-reference/put-v1outreach-batches"},{"title":"Post v1outreach batches actions","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/outreach-batches/{batch}/actions","href":"/api-reference/post-v1outreach-batches-actions"},{"title":"Get v1outreach batches recipients","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/outreach-batches/{batch}/recipients","href":"/api-reference/get-v1outreach-batches-recipients"},{"title":"Get v1outreach consents","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/outreach-consents","href":"/api-reference/get-v1outreach-consents"},{"title":"Put v1outreach consents","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/outreach-consents","href":"/api-reference/put-v1outreach-consents"},{"title":"QueryPageAnalyticsAPI mirrors the erdo_page_analytics_query MCP tool: run a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/page-analytics/query","href":"/api-reference/querypageanalyticsapi-mirrors-the-erdo_page_analytics_query-mcp-tool:-run-a"},{"title":"RecordPageFeedbackAPI mirrors erdo_record_page_feedback: ingest one or more\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/page-feedback","href":"/api-reference/recordpagefeedbackapi-mirrors-erdo_record_page_feedback:-ingest-one-or-more"},{"title":"ListPageReviewsAPI mirrors erdo_list_page_reviews: past reviews newest first\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/page-reviews","href":"/api-reference/listpagereviewsapi-mirrors-erdo_list_page_reviews:-past-reviews-newest-first"},{"title":"CreatePageReviewAPI mirrors erdo_review_pages: start a review of one or more\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/page-reviews","href":"/api-reference/createpagereviewapi-mirrors-erdo_review_pages:-start-a-review-of-one-or-more"},{"title":"GetPageReviewAPI mirrors erdo_get_page_review: read a review's status and,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/page-reviews/{reviewID}","href":"/api-reference/getpagereviewapi-mirrors-erdo_get_page_review:-read-a-reviews-status-and"},{"title":"GetPageTrackingAPI mirrors the erdo_get_page_tracking MCP tool: read which\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/page-tracking","href":"/api-reference/getpagetrackingapi-mirrors-the-erdo_get_page_tracking-mcp-tool:-read-which"},{"title":"ListPagesAPI mirrors the erdo_list_pages MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/pages","href":"/api-reference/listpagesapi-mirrors-the-erdo_list_pages-mcp-tool"},{"title":"DeployPageAPI mirrors the erdo_deploy_page MCP tool. clone_from_page_id in\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/pages","href":"/api-reference/deploypageapi-mirrors-the-erdo_deploy_page-mcp-tool-clone_from_page_id-in"},{"title":"GetPageMonitoringAPI mirrors the erdo_get_page_monitoring MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/pages/monitoring/{pageID}","href":"/api-reference/getpagemonitoringapi-mirrors-the-erdo_get_page_monitoring-mcp-tool"},{"title":"SetPageMonitoringAPI mirrors the erdo_set_page_monitoring MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/pages/monitoring/{pageID}","href":"/api-reference/setpagemonitoringapi-mirrors-the-erdo_set_page_monitoring-mcp-tool"},{"title":"RestorePageAPI mirrors the erdo_restore_page MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/pages/restore/{pageID}","href":"/api-reference/restorepageapi-mirrors-the-erdo_restore_page-mcp-tool"},{"title":"ValidatePageAPI mirrors the erdo_validate_page MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/pages/validate","href":"/api-reference/validatepageapi-mirrors-the-erdo_validate_page-mcp-tool"},{"title":"UpdatePageAPI mirrors the erdo_update_page MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/pages/{pageID}","href":"/api-reference/updatepageapi-mirrors-the-erdo_update_page-mcp-tool"},{"title":"DeletePageAPI mirrors the erdo_delete_page MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/pages/{pageID}","href":"/api-reference/deletepageapi-mirrors-the-erdo_delete_page-mcp-tool"},{"title":"ListPaidMediaAudiencesAPI returns live provider evidence. status=partial or\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/paid-media/audiences","href":"/api-reference/listpaidmediaaudiencesapi-returns-live-provider-evidence-status=partial-or"},{"title":"ListPaidMediaCampaignsAPI lists the organization's owned Google Ads\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/paid-media/campaigns","href":"/api-reference/listpaidmediacampaignsapi-lists-the-organizations-owned-google-ads"},{"title":"SetPaidMediaAudienceModeAPI sets audience Observation or Targeting through\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/campaigns/{externalID}/audience-mode","href":"/api-reference/setpaidmediaaudiencemodeapi-sets-audience-observation-or-targeting-through"},{"title":"SetPaidMediaCampaignBiddingAPI sets campaign bidding through the same\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/campaigns/{externalID}/bidding","href":"/api-reference/setpaidmediacampaignbiddingapi-sets-campaign-bidding-through-the-same"},{"title":"SetPaidMediaCampaignBudgetAPI mirrors erdo_set_paid_media_campaign_budget:\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/campaigns/{externalID}/budget","href":"/api-reference/setpaidmediacampaignbudgetapi-mirrors-erdo_set_paid_media_campaign_budget:"},{"title":"SetPaidMediaCampaignConversionGoalsAPI mirrors\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/campaigns/{externalID}/conversion-goals","href":"/api-reference/setpaidmediacampaignconversiongoalsapi-mirrors"},{"title":"SetPaidMediaNegativeKeywordsAPI adds and removes campaign or ad-group\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/campaigns/{externalID}/negative-keywords","href":"/api-reference/setpaidmedianegativekeywordsapi-adds-and-removes-campaign-or-ad-group"},{"title":"SetPaidMediaCampaignNetworkSettingsAPI sets Search Partners and Display on\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/campaigns/{externalID}/network-settings","href":"/api-reference/setpaidmediacampaignnetworksettingsapi-sets-search-partners-and-display-on"},{"title":"SetPaidMediaCampaignStatusAPI mirrors erdo_set_paid_media_campaign_status:\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/campaigns/{externalID}/status","href":"/api-reference/setpaidmediacampaignstatusapi-mirrors-erdo_set_paid_media_campaign_status:"},{"title":"EnsurePaidMediaConversionActionAPI finds or approval-gates creation of a lead\nconversion action.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/conversion-actions","href":"/api-reference/ensurepaidmediaconversionactionapi-finds-or-approval-gates-creation-of-a-leadconversion-action"},{"title":"AuditPaidMediaNegativeCoverageAPI mirrors\nerdo_audit_paid_media_negative_coverage.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/paid-media/negative-coverage","href":"/api-reference/auditpaidmedianegativecoverageapi-mirrorserdo_audit_paid_media_negative_coverage"},{"title":"GroundPersonasAPI mirrors erdo_ground_personas: ground the org's persona\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/persona-grounding","href":"/api-reference/groundpersonasapi-mirrors-erdo_ground_personas:-ground-the-orgs-persona"},{"title":"ListPersonasAPI mirrors erdo_list_personas for selecting named agents.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/personas","href":"/api-reference/listpersonasapi-mirrors-erdo_list_personas-for-selecting-named-agents"},{"title":"ListProjectsAPI mirrors erdo_list_projects.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/projects","href":"/api-reference/listprojectsapi-mirrors-erdo_list_projects"},{"title":"CreateProjectAPI mirrors erdo_create_project.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/projects","href":"/api-reference/createprojectapi-mirrors-erdo_create_project"},{"title":"Lists this organization's lead sources: which sheet, webhook, import or ad\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/provider-lead-sources","href":"/api-reference/lists-this-organizations-lead-sources:-which-sheet-webhook-import-or-ad"},{"title":"Declares a lead source: where leads Erdo did not capture itself come from,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/provider-lead-sources","href":"/api-reference/declares-a-lead-source:-where-leads-erdo-did-not-capture-itself-come-from"},{"title":"Removes a lead source, by name or by provider and ad account. Leads already\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/provider-lead-sources","href":"/api-reference/removes-a-lead-source-by-name-or-by-provider-and-ad-account-leads-already"},{"title":"Lists the connection's lead gen forms for a LinkedIn ad account. Mirrors\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/provider-lead-sources/forms","href":"/api-reference/lists-the-connections-lead-gen-forms-for-a-linkedin-ad-account-mirrors"},{"title":"Imports one batch of a file (a header and at most 1,000 rows) into an import\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/provider-lead-sources/import","href":"/api-reference/imports-one-batch-of-a-file-a-header-and-at-most-1000-rows-into-an-import"},{"title":"RunQueriesAPI mirrors the erdo_run_queries MCP tool: several dataset reads\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/queries","href":"/api-reference/runqueriesapi-mirrors-the-erdo_run_queries-mcp-tool:-several-dataset-reads"},{"title":"CreateRealtimeTicketAPI creates a browser-origin-bound ticket for the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/realtime/tickets","href":"/api-reference/createrealtimeticketapi-creates-a-browser-origin-bound-ticket-for-the"},{"title":"ListReceivedEmailsAPI mirrors erdo_list_received_emails: the messages people\nhave sent back to\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/received-emails","href":"/api-reference/listreceivedemailsapi-mirrors-erdo_list_received_emails:-the-messages-peoplehave-sent-back-to"},{"title":"RenderChartAPI mirrors the erdo_render_chart MCP tool as a REST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/render/chart","href":"/api-reference/renderchartapi-mirrors-the-erdo_render_chart-mcp-tool-as-a-rest-endpoint"},{"title":"RenderTableAPI mirrors the erdo_render_table MCP tool as a REST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/render/table","href":"/api-reference/rendertableapi-mirrors-the-erdo_render_table-mcp-tool-as-a-rest-endpoint"},{"title":"ListReviewItemsAPI mirrors erdo_list_review_items.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/review-items","href":"/api-reference/listreviewitemsapi-mirrors-erdo_list_review_items"},{"title":"GetReviewItemAPI mirrors erdo_get_review_item.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/review-items/{id}","href":"/api-reference/getreviewitemapi-mirrors-erdo_get_review_item"},{"title":"DecideReviewItemAPI mirrors erdo_decide_review_item.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/review-items/{id}/decide","href":"/api-reference/decidereviewitemapi-mirrors-erdo_decide_review_item"},{"title":"ListAgentRunsAPI mirrors erdo_list_agent_runs.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/runs","href":"/api-reference/listagentrunsapi-mirrors-erdo_list_agent_runs"},{"title":"GetAgentRunAPIv1 mirrors erdo_get_agent_run.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/runs/{runID}","href":"/api-reference/getagentrunapiv1-mirrors-erdo_get_agent_run"},{"title":"Lists what an organization has declared to run on a schedule: each\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/scheduled-actions","href":"/api-reference/lists-what-an-organization-has-declared-to-run-on-a-schedule:-each"},{"title":"Declares work to run on a schedule: an ordered list of named steps, each an\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/scheduled-actions","href":"/api-reference/declares-work-to-run-on-a-schedule:-an-ordered-list-of-named-steps-each-an"},{"title":"ScreenshotAPI mirrors the erdo_screenshot MCP tool as a REST endpoint: capture\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/screenshot","href":"/api-reference/screenshotapi-mirrors-the-erdo_screenshot-mcp-tool-as-a-rest-endpoint:-capture"},{"title":"IOSScreenshotAPI mirrors the erdo_ios_screenshot MCP tool: capture a page on a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/screenshot/ios","href":"/api-reference/iosscreenshotapi-mirrors-the-erdo_ios_screenshot-mcp-tool:-capture-a-page-on-a"},{"title":"ScreenshotResultAPI polls an instructed capture started by ScreenshotAPI,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/screenshot/result","href":"/api-reference/screenshotresultapi-polls-an-instructed-capture-started-by-screenshotapi"},{"title":"ListSendingDomainsAPI lists the domains the caller org's outbound agent email\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/sending-domains","href":"/api-reference/listsendingdomainsapi-lists-the-domains-the-caller-orgs-outbound-agent-email"},{"title":"CreateSendingDomainAPI registers a sending domain for the caller's org and\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/sending-domains","href":"/api-reference/createsendingdomainapi-registers-a-sending-domain-for-the-callers-org-and"},{"title":"GetSendingDomainAPI reads one sending domain, named by the domain itself.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/sending-domains/{domain}","href":"/api-reference/getsendingdomainapi-reads-one-sending-domain-named-by-the-domain-itself"},{"title":"DeleteSendingDomainAPI removes a sending-domain registration, named by the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/sending-domains/{domain}","href":"/api-reference/deletesendingdomainapi-removes-a-sending-domain-registration-named-by-the"},{"title":"UpdateSendingDomainAPI edits a sending domain's identity settings — from\n","deprecated":null,"version":null,"openapi":"/api/openapi.json patch /v1/sending-domains/{domain}","href":"/api-reference/updatesendingdomainapi-edits-a-sending-domains-identity-settings-—-from"},{"title":"GetSendingThemeAPI reads the look the caller org's outbound mail renders in\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/sending-theme","href":"/api-reference/getsendingthemeapi-reads-the-look-the-caller-orgs-outbound-mail-renders-in"},{"title":"RefreshSendingThemeAPI derives the theme from the Brand Style record now and\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/sending-theme/refresh","href":"/api-reference/refreshsendingthemeapi-derives-the-theme-from-the-brand-style-record-now-and"},{"title":"ListThreadsAPI mirrors the erdo_list_threads MCP tool as a REST endpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/threads","href":"/api-reference/listthreadsapi-mirrors-the-erdo_list_threads-mcp-tool-as-a-rest-endpoint"},{"title":"CreateThreadAPI mirrors the erdo_create_thread MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/threads-create","href":"/api-reference/createthreadapi-mirrors-the-erdo_create_thread-mcp-tool"},{"title":"OpenDirectConversationAPI returns or creates the caller's direct conversation\nwith a persona.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/threads-direct","href":"/api-reference/opendirectconversationapi-returns-or-creates-the-callers-direct-conversationwith-a-persona"},{"title":"GetSeenThreadsAPI mirrors the authenticated thread seen-state read.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/threads-seen","href":"/api-reference/getseenthreadsapi-mirrors-the-authenticated-thread-seen-state-read"},{"title":"GetThreadAPI returns a thread and its participants.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/threads/{threadID}","href":"/api-reference/getthreadapi-returns-a-thread-and-its-participants"},{"title":"DeleteThreadAPI mirrors the erdo_delete_thread MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/threads/{threadID}","href":"/api-reference/deletethreadapi-mirrors-the-erdo_delete_thread-mcp-tool"},{"title":"CancelInvocationAPI requests cancellation of one invocation on a thread.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/threads/{threadID}/cancel-invocation","href":"/api-reference/cancelinvocationapi-requests-cancellation-of-one-invocation-on-a-thread"},{"title":"GetThreadCompletionStatusAPI returns the thread owner's latest durable\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/threads/{threadID}/completion-status","href":"/api-reference/getthreadcompletionstatusapi-returns-the-thread-owners-latest-durable"},{"title":"GetThreadMessagesAPI mirrors the erdo_get_thread_messages MCP tool as a REST\nendpoint.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/threads/{threadID}/messages","href":"/api-reference/getthreadmessagesapi-mirrors-the-erdo_get_thread_messages-mcp-tool-as-a-restendpoint"},{"title":"AddThreadParticipantAPI adds an org-enabled persona, or follows as the caller.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/threads/{threadID}/participants","href":"/api-reference/addthreadparticipantapi-adds-an-org-enabled-persona-or-follows-as-the-caller"},{"title":"RemoveThreadParticipantAPI removes a persona, or unfollows when the id is the\ncaller.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/threads/{threadID}/participants/{personaID}","href":"/api-reference/removethreadparticipantapi-removes-a-persona-or-unfollows-when-the-id-is-thecaller"},{"title":"MarkThreadSeenAPI marks a thread as seen by the current caller.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/threads/{threadID}/seen","href":"/api-reference/markthreadseenapi-marks-a-thread-as-seen-by-the-current-caller"},{"title":"SendMessageAPI mirrors the erdo_send_message MCP tool.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/threads/{threadID}/send","href":"/api-reference/sendmessageapi-mirrors-the-erdo_send_message-mcp-tool"},{"title":"ListTokensAPI lists the caller's API tokens. It never returns the token hash or\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/tokens","href":"/api-reference/listtokensapi-lists-the-callers-api-tokens-it-never-returns-the-token-hash-or"},{"title":"CreateTokenAPI mints a new API token for the caller. The raw token is returned\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/tokens","href":"/api-reference/createtokenapi-mints-a-new-api-token-for-the-caller-the-raw-token-is-returned"},{"title":"Revoke an API token, immediately and permanently.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/tokens/{tokenID}","href":"/api-reference/revoke-an-api-token-immediately-and-permanently"},{"title":"Replace an active API token atomically, without changing its grants.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/tokens/{tokenID}/rotate","href":"/api-reference/replace-an-active-api-token-atomically-without-changing-its-grants"},{"title":"ListVoiceAgentsAPI lists the organization's concierges — the managed voice\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/agents","href":"/api-reference/listvoiceagentsapi-lists-the-organizations-concierges-—-the-managed-voice"},{"title":"SetVoiceAgentRealtimeModelAPI chooses how a voice agent turns speech into a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/agents/{slug}/realtime-model","href":"/api-reference/setvoiceagentrealtimemodelapi-chooses-how-a-voice-agent-turns-speech-into-a"},{"title":"SetVoiceAgentSMSRepliesAPI turns a voice agent's answering of texts on or off.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/agents/{slug}/sms-replies","href":"/api-reference/setvoiceagentsmsrepliesapi-turns-a-voice-agents-answering-of-texts-on-or-off"},{"title":"SetVoiceAgentWhatsAppRepliesAPI turns a voice agent's answering on WhatsApp on\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/agents/{slug}/whatsapp-replies","href":"/api-reference/setvoiceagentwhatsapprepliesapi-turns-a-voice-agents-answering-on-whatsapp-on"},{"title":"GetVoiceBrandedCallingAPI mirrors erdo_voice_branded_calling_get: the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/branded-calling","href":"/api-reference/getvoicebrandedcallingapi-mirrors-erdo_voice_branded_calling_get:-the"},{"title":"SetVoiceBrandedCallingAPI mirrors erdo_voice_branded_calling_set: store the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/voice/branded-calling","href":"/api-reference/setvoicebrandedcallingapi-mirrors-erdo_voice_branded_calling_set:-store-the"},{"title":"GetVoiceBrandedCallingLOAAPI downloads the letter of authorization on file —\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/branded-calling/loa","href":"/api-reference/getvoicebrandedcallingloaapi-downloads-the-letter-of-authorization-on-file-—"},{"title":"SendVoiceBrandedCallingLOAAPI mirrors erdo_voice_branded_calling_loa: it\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/branded-calling/loa/send","href":"/api-reference/sendvoicebrandedcallingloaapi-mirrors-erdo_voice_branded_calling_loa:-it"},{"title":"ProvisionVoiceBrandedCallingAPI mirrors erdo_voice_branded_calling_provision:\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/branded-calling/provision","href":"/api-reference/provisionvoicebrandedcallingapi-mirrors-erdo_voice_branded_calling_provision:"},{"title":"GetVoiceCallerNameAPI mirrors erdo_voice_caller_name_get: the organization's\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/caller-name","href":"/api-reference/getvoicecallernameapi-mirrors-erdo_voice_caller_name_get:-the-organizations"},{"title":"ProvisionVoiceCallerNameAPI mirrors erdo_voice_caller_name_provision: it files\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/caller-name","href":"/api-reference/provisionvoicecallernameapi-mirrors-erdo_voice_caller_name_provision:-it-files"},{"title":"CheckVoiceCallerNameAPI mirrors erdo_voice_caller_name_check: a live lookup\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/caller-name/lookup","href":"/api-reference/checkvoicecallernameapi-mirrors-erdo_voice_caller_name_check:-a-live-lookup"},{"title":"ListVoiceCallsAPI mirrors erdo_voice_call_list. The filters, the since/until\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/calls","href":"/api-reference/listvoicecallsapi-mirrors-erdo_voice_call_list-the-filters-the-sinceuntil"},{"title":"ListVoiceCallsPostAPI is the POST body form of the list endpoint, for callers\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/calls","href":"/api-reference/listvoicecallspostapi-is-the-post-body-form-of-the-list-endpoint-for-callers"},{"title":"GetVoiceCallAPI mirrors erdo_voice_call_get, returning the displayable\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/calls/{callID}","href":"/api-reference/getvoicecallapi-mirrors-erdo_voice_call_get-returning-the-displayable"},{"title":"StartPersonCallAPI connects a person to a lead: Erdo rings the person's own\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/person-calls","href":"/api-reference/startpersoncallapi-connects-a-person-to-a-lead:-erdo-rings-the-persons-own"},{"title":"ListVoicePhoneNumbersAPI mirrors erdo_voice_phone_number_list: every number\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/phone-numbers","href":"/api-reference/listvoicephonenumbersapi-mirrors-erdo_voice_phone_number_list:-every-number"},{"title":"GetVoicePhoneNumberSMSAPI mirrors the single-number half of\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/phone-numbers/{number}/sms","href":"/api-reference/getvoicephonenumbersmsapi-mirrors-the-single-number-half-of"},{"title":"ProvisionVoicePhoneNumberSMSAPI mirrors erdo_voice_phone_number_sms_provision:\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/phone-numbers/{number}/sms","href":"/api-reference/provisionvoicephonenumbersmsapi-mirrors-erdo_voice_phone_number_sms_provision:"},{"title":"ProvisionVoicePhoneNumberWhatsAppAPI mirrors\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/phone-numbers/{number}/whatsapp","href":"/api-reference/provisionvoicephonenumberwhatsappapi-mirrors"},{"title":"ListVoiceSMSConversationsAPI mirrors erdo_voice_sms_conversation_list. The\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/sms-conversations","href":"/api-reference/listvoicesmsconversationsapi-mirrors-erdo_voice_sms_conversation_list-the"},{"title":"ListVoiceSMSConversationsPostAPI is the POST body form of the list endpoint,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/sms-conversations","href":"/api-reference/listvoicesmsconversationspostapi-is-the-post-body-form-of-the-list-endpoint"},{"title":"GetVoiceSMSConversationAPI mirrors erdo_voice_sms_conversation_get, returning\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/sms-conversations/{sessionID}","href":"/api-reference/getvoicesmsconversationapi-mirrors-erdo_voice_sms_conversation_get-returning"},{"title":"ListVoiceWhatsAppConversationsAPI mirrors erdo_voice_whatsapp_conversation_list.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/whatsapp-conversations","href":"/api-reference/listvoicewhatsappconversationsapi-mirrors-erdo_voice_whatsapp_conversation_list"},{"title":"ListVoiceWhatsAppConversationsPostAPI is the POST body form of the list\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/whatsapp-conversations","href":"/api-reference/listvoicewhatsappconversationspostapi-is-the-post-body-form-of-the-list"},{"title":"GetVoiceWhatsAppConversationAPI mirrors erdo_voice_whatsapp_conversation_get,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/whatsapp-conversations/{sessionID}","href":"/api-reference/getvoicewhatsappconversationapi-mirrors-erdo_voice_whatsapp_conversation_get"},{"title":"ListVoiceWidgetConversationsAPI mirrors erdo_voice_widget_conversation_list.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/voice/widget-conversations","href":"/api-reference/listvoicewidgetconversationsapi-mirrors-erdo_voice_widget_conversation_list"},{"title":"ListVoiceWidgetConversationsPostAPI is the POST body form of the list endpoint,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/widget-conversations","href":"/api-reference/listvoicewidgetconversationspostapi-is-the-post-body-form-of-the-list-endpoint"},{"title":"GetVoiceWidgetConversationAPI mirrors erdo_voice_widget_conversation_get,\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/widget-conversations/get","href":"/api-reference/getvoicewidgetconversationapi-mirrors-erdo_voice_widget_conversation_get"},{"title":"SetVoiceWidgetRealtimeModelAPI chooses the same for one widget's own voice\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/widgets/{widget}/realtime-model","href":"/api-reference/setvoicewidgetrealtimemodelapi-chooses-the-same-for-one-widgets-own-voice"},{"title":"SetVoiceWidgetStatusAPI turns a website concierge widget on or off. It is the\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/voice/widgets/{widget}/status","href":"/api-reference/setvoicewidgetstatusapi-turns-a-website-concierge-widget-on-or-off-it-is-the"},{"title":"ListWorkstreamsAPI mirrors erdo_list_workstreams.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/workstreams","href":"/api-reference/listworkstreamsapi-mirrors-erdo_list_workstreams"},{"title":"CreateWorkstreamAPI mirrors erdo_create_workstream.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/workstreams","href":"/api-reference/createworkstreamapi-mirrors-erdo_create_workstream"},{"title":"GetWorkstreamAPI mirrors erdo_get_workstream (slug or uuid).\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/workstreams/{workstreamSlug}","href":"/api-reference/getworkstreamapi-mirrors-erdo_get_workstream-slug-or-uuid"},{"title":"ArmWorkstreamLoopAPI mirrors erdo_arm_workstream_loop: schedule the recurring\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/workstreams/{workstreamSlug}/arm","href":"/api-reference/armworkstreamloopapi-mirrors-erdo_arm_workstream_loop:-schedule-the-recurring"},{"title":"ListWorkstreamEventsAPI mirrors erdo_list_workstream_events.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/workstreams/{workstreamSlug}/events","href":"/api-reference/listworkstreameventsapi-mirrors-erdo_list_workstream_events"},{"title":"AppendWorkstreamEventAPI mirrors erdo_append_workstream_event.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/workstreams/{workstreamSlug}/events","href":"/api-reference/appendworkstreameventapi-mirrors-erdo_append_workstream_event"},{"title":"SetWorkstreamExternalRefsAPI declares which provider-owned objects a\n","deprecated":null,"version":null,"openapi":"/api/openapi.json put /v1/workstreams/{workstreamSlug}/external-refs","href":"/api-reference/setworkstreamexternalrefsapi-declares-which-provider-owned-objects-a"},{"title":"ReadWorkstreamLedgerAPI mirrors erdo_read_workstream_ledger: the allocator's\n","deprecated":null,"version":null,"openapi":"/api/openapi.json get /v1/workstreams/{workstreamSlug}/ledger","href":"/api-reference/readworkstreamledgerapi-mirrors-erdo_read_workstream_ledger:-the-allocators"},{"title":"AddWorkstreamPhaseAPI mirrors erdo_add_workstream_phase.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/workstreams/{workstreamSlug}/phases","href":"/api-reference/addworkstreamphaseapi-mirrors-erdo_add_workstream_phase"},{"title":"ManageWorkstreamRecommendationsAPI records an opportunity and its requested next\nstep.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/workstreams/{workstreamSlug}/recommendations","href":"/api-reference/manageworkstreamrecommendationsapi-records-an-opportunity-and-its-requested-nextstep"},{"title":"AttachWorkstreamResourceAPI mirrors erdo_attach_workstream_resource.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json post /v1/workstreams/{workstreamSlug}/resources","href":"/api-reference/attachworkstreamresourceapi-mirrors-erdo_attach_workstream_resource"},{"title":"DetachWorkstreamResourceAPI mirrors erdo_attach_workstream_resource's\n","deprecated":null,"version":null,"openapi":"/api/openapi.json delete /v1/workstreams/{workstreamSlug}/resources","href":"/api-reference/detachworkstreamresourceapi-mirrors-erdo_attach_workstream_resources"},{"title":"UpdateWorkStateAPI mirrors erdo_update_work_state.\n","deprecated":null,"version":null,"openapi":"/api/openapi.json patch /v1/workstreams/{workstreamSlug}/state","href":"/api-reference/updateworkstateapi-mirrors-erdo_update_work_state"}]}]},{"group":"Build apps","pages":[{"title":"Build Apps on Erdo","href":"/apps/build-apps"}]},{"group":"Python SDK","pages":[{"title":"Python SDK — Invoke","description":"Execute agents programmatically with the Python SDK","href":"/sdk/invoke"}]},{"group":"TypeScript SDK","pages":[{"title":"TypeScript SDK Overview","href":"/ts-sdk/overview"},{"title":"Client Reference","description":"API reference for @erdoai/server","href":"/ts-sdk/client"},{"title":"UI Components","href":"/ts-sdk/ui-components"},{"title":"Integration Patterns","href":"/ts-sdk/integration"},{"title":"Vercel AI SDK Integration","href":"/ts-sdk/vercel-ai-sdk"}]}]}]},"basePath":"","title":"TypeScript SDK Overview - Erdo Docs","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":[],"chunks":[]}