Base URL, authentication and conventions shared by every endpoint.
Base URL
All endpoints live under https://api.chattler.ai/v1. Only HTTPS is served.
Authentication
Every request needs an API key in the Authorization header with the Bearer scheme. The key is created in the Chattler app; see Get your API key.
Authorization: Bearer cht_live_<key_id>.<secret>
Keys are bound to one agent and carry a permission: read-only for the two GET endpoints, full for those plus the two POST chat endpoints.
Conventions
Request and response bodies are JSON (Content-Type: application/json), except the streaming endpoint, which answers text/event-stream.
Both chat endpoints require an Idempotency-Key header, 1-255 characters, unique per logical request. See Idempotency.
Every response carries X-Request-ID. The rate-limit headers X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset are present on JSON 200 responses and on 429; the SSE stream and other error responses do not carry them. See Rate limits.
Every failure is {"error": {"code", "message", "request_id"}}. See Errors.
Lists are {"data": [...], "next_cursor": "..." | null}; limit is 1-100, default 20.
Timestamps are ISO-8601 in UTC. Filters accept timezone-aware or naive values (naive is read as UTC); date_to is exclusive.
Try it in the playground
The endpoint pages have a playground. Paste a real key as the bearer token and use the agent id the key belongs to; requests go straight to https://api.chattler.ai and are billed like any other call.
Do not paste a full key into a shared screen or recording. Rotate it in the app if you did.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Chattler","description":"Chattler Agent API documentation","colors":{"primary":"#005EFF","light":"#5C93FF","dark":"#0047CC"},"logo":{"light":"https://mintcdn.com/chattler-ai/BDlyNIFVSTQEN7H5/images/logo-light.svg?fit=max\u0026auto=format\u0026n=BDlyNIFVSTQEN7H5\u0026q=85\u0026s=4a9db5d918302065d182f02fe1630470","dark":"https://mintcdn.com/chattler-ai/Msp34Ru1DagWXgdm/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=Msp34Ru1DagWXgdm\u0026q=85\u0026s=5cc72163380bbd587de312223e9b2677","href":"https://chattler.ai"},"favicon":"https://mintcdn.com/chattler-ai/Msp34Ru1DagWXgdm/images/favicon.ico?fit=max\u0026auto=format\u0026n=Msp34Ru1DagWXgdm\u0026q=85\u0026s=abc976430fcac85591b9558b64bb210c","api":{"params":{"expanded":"closed"},"playground":{"display":"interactive"},"examples":{"defaults":"all","languages":["curl","python","javascript"]}},"appearance":{"default":"system"},"navbar":{"links":[{"href":"https://app.chattler.ai","label":"Open the app"}],"primary":{"type":"button","label":"Get your API key","href":"https://app.chattler.ai"}},"footer":{"socials":{"website":"https://chattler.ai","telegram":"https://t.me/chattler"}},"search":{"prompt":"Search the Chattler API docs"},"seo":{"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude","cursor"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"chattler-ai","hasAudioNarration":false,"actualSubdomain":"chattler-ai","customDomains":["docs.chattler.ai"],"gitSource":{"type":"github","owner":"chattler","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aa9a388d78dc36b73403a8c","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"Փաստաթղթեր","count":8},{"language":"default","tag":"Ҳуҷҷатҳо","count":8},{"language":"default","tag":"Документация","count":8},{"language":"en","tag":"Documentation","count":8},{"language":"ar","tag":"التوثيق","count":8},{"language":"ru","tag":"Документация","count":8},{"language":"default","tag":"Ուղեցույցներ","count":5},{"language":"default","tag":"Дастурҳо","count":5},{"language":"default","tag":"Кулланмалар","count":5},{"language":"en","tag":"Guides","count":5},{"language":"ar","tag":"الأدلة","count":5},{"language":"ru","tag":"Руководства","count":5},{"language":"default","tag":"مرجع API","count":4},{"language":"default","tag":"Սկսել","count":3},{"language":"default","tag":"Оғози кор","count":3},{"language":"default","tag":"Эшне башлау","count":3},{"language":"en","tag":"Get Started","count":3},{"language":"ar","tag":"البداية","count":3},{"language":"ru","tag":"Начало работы","count":3},{"language":"en","tag":"API Reference","count":2},{"language":"ar","tag":"مرجع API","count":2},{"language":"ru","tag":"Справочник API","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"html[lang=\"ar\"] #content-area{direction:rtl;text-align:right}html[lang=\"ar\"] #content-area li{padding-left:0.375rem;padding-right:2rem}html[lang=\"ar\"] #content-area li::before{left:auto;right:0.5rem}html[lang=\"ar\"] #content-area pre,html[lang=\"ar\"] #content-area code,html[lang=\"ar\"] #content-area kbd,html[lang=\"ar\"] #content-area table{direction:ltr;text-align:left;unicode-bidi:isolate}[data-component-part=\"localization-select-trigger\"]{display:none}"}],"page":{"pagePath":"api-reference/introduction","slug":"/api-reference/introduction","pageMetadata":{"title":"Introduction","description":"Base URL, authentication and conventions shared by every endpoint.","href":"/api-reference/introduction"},"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: \"Base URL, authentication and conventions shared by every endpoint.\"\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`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`base-url`,children:`Base URL`}),`\n`,_jsxs(_components.p,{children:[`All endpoints live under `,_jsx(_components.code,{children:`https://api.chattler.ai/v1`}),`. Only HTTPS is served.`]}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsxs(_components.p,{children:[`Every request needs an API key in the `,_jsx(_components.code,{children:`Authorization`}),` header with the `,_jsx(_components.code,{children:`Bearer`}),` scheme. The key is created in the Chattler app; see `,_jsx(_components.a,{href:`/get-started/api-key`,children:`Get your API key`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`http`,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:`http`,children:_jsxs(_components.code,{language:`http`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`Authorization`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` Bearer cht_live_\u003ckey_id>.\u003csecret>`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Keys are bound to one agent and carry a permission: `,_jsx(_components.code,{children:`read-only`}),` for the two `,_jsx(_components.code,{children:`GET`}),` endpoints, `,_jsx(_components.code,{children:`full`}),` for those plus the two `,_jsx(_components.code,{children:`POST`}),` chat endpoints.`]}),`\n`,_jsx(Heading,{level:`2`,id:`conventions`,children:`Conventions`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Request and response bodies are JSON (`,_jsx(_components.code,{children:`Content-Type: application/json`}),`), except the streaming endpoint, which answers `,_jsx(_components.code,{children:`text/event-stream`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Both chat endpoints require an `,_jsx(_components.code,{children:`Idempotency-Key`}),` header, 1-255 characters, unique per logical request. See `,_jsx(_components.a,{href:`/guides/idempotency`,children:`Idempotency`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Every response carries `,_jsx(_components.code,{children:`X-Request-ID`}),`. The rate-limit headers `,_jsx(_components.code,{children:`X-RateLimit-Limit`}),`, `,_jsx(_components.code,{children:`X-RateLimit-Remaining`}),` and `,_jsx(_components.code,{children:`X-RateLimit-Reset`}),` are present on JSON `,_jsx(_components.code,{children:`200`}),` responses and on `,_jsx(_components.code,{children:`429`}),`; the SSE stream and other error responses do not carry them. See `,_jsx(_components.a,{href:`/guides/rate-limits`,children:`Rate limits`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Every failure is `,_jsx(_components.code,{children:`{\"error\": {\"code\", \"message\", \"request_id\"}}`}),`. See `,_jsx(_components.a,{href:`/guides/errors`,children:`Errors`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Lists are `,_jsx(_components.code,{children:`{\"data\": [...], \"next_cursor\": \"...\" | null}`}),`; `,_jsx(_components.code,{children:`limit`}),` is 1-100, default 20.`]}),`\n`,_jsxs(_components.li,{children:[`Timestamps are ISO-8601 in UTC. Filters accept timezone-aware or naive values (naive is read as UTC); `,_jsx(_components.code,{children:`date_to`}),` is exclusive.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`try-it-in-the-playground`,children:`Try it in the playground`}),`\n`,_jsxs(_components.p,{children:[`The endpoint pages have a playground. Paste a real key as the bearer token and use the agent id the key belongs to; requests go straight to `,_jsx(_components.code,{children:`https://api.chattler.ai`}),` and are billed like any other call.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not paste a `,_jsx(_components.code,{children:`full`}),` key into a shared screen or recording. Rotate it in the app if you did.`]})})]})}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":"Introduction","description":"Base URL, authentication and conventions shared by every endpoint.","href":"/api-reference/introduction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Base URL","slug":"base-url","depth":2,"children":[]},{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"Conventions","slug":"conventions","depth":2,"children":[]},{"title":"Try it in the playground","slug":"try-it-in-the-playground","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"chattler-ai","siteName":"Chattler","title":"Introduction - Chattler","navMaps":{"firstHrefInVersion":{"English":{"href":"/api-reference/introduction","matchLevel":0},"Русский":{"href":"/ru/api-reference/introduction","matchLevel":1},"Հայերեն":{"href":"/am/api-reference/introduction","matchLevel":1},"Тоҷикӣ":{"href":"/tj/api-reference/introduction","matchLevel":1},"Татарча":{"href":"/tt/api-reference/introduction","matchLevel":1},"العربية":{"href":"/ar/api-reference/introduction","matchLevel":1}},"firstHrefInLanguage":{"en":{"href":"/api-reference/introduction","matchLevel":0},"ru":{"href":"/ru/api-reference/introduction","matchLevel":1},"ar":{"href":"/ar/api-reference/introduction","matchLevel":1}}},"lastModified":"2026-09-15T19:59:21.686Z","originalFileLocation":"api-reference/introduction.mdx","locale":"en"},"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=\"Base URL, authentication and conventions shared by every endpoint.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Chattler\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/chattler-ai/QxEz_jIt5B5qpMZz/_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/chattler-ai/QxEz_jIt5B5qpMZz/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/chattler-ai/QxEz_jIt5B5qpMZz/_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/chattler-ai/QxEz_jIt5B5qpMZz/_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/chattler-ai/QxEz_jIt5B5qpMZz/_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/chattler-ai/QxEz_jIt5B5qpMZz/_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/chattler-ai/QxEz_jIt5B5qpMZz/_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/chattler-ai/QxEz_jIt5B5qpMZz/_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/chattler-ai/QxEz_jIt5B5qpMZz/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Introduction - Chattler\">\u003cmeta data-mint-head property=\"og:description\" content=\"Base URL, authentication and conventions shared by every endpoint.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Chattler\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.chattler.ai/api-reference/introduction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://chattler-ai.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Introduction\u0026amp;description=Base+URL%2C+authentication+and+conventions+shared+by+every+endpoint.\u0026amp;theme=186c3ff90954a793f0663c88\u0026amp;signature=a8a4f0c5e9c3b3e545b93b138723ff1c4988d79404a9dd9669bc0ea586b18c32\">\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=\"Introduction - Chattler\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Base URL, authentication and conventions shared by every endpoint.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://chattler-ai.mintlify.site/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Introduction\u0026amp;description=Base+URL%2C+authentication+and+conventions+shared+by+every+endpoint.\u0026amp;theme=186c3ff90954a793f0663c88\u0026amp;signature=a8a4f0c5e9c3b3e545b93b138723ff1c4988d79404a9dd9669bc0ea586b18c32\">\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/chattler-ai/QxEz_jIt5B5qpMZz/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Chattler\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#005EFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.chattler.ai/api-reference/introduction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/introduction.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.chattler.ai/#organization\",\"name\":\"Chattler\",\"url\":\"https://docs.chattler.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/chattler-ai/BDlyNIFVSTQEN7H5/images/logo-light.svg?fit=max\u0026auto=format\u0026n=BDlyNIFVSTQEN7H5\u0026q=85\u0026s=4a9db5d918302065d182f02fe1630470\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.chattler.ai#website\",\"name\":\"Chattler\",\"url\":\"https://docs.chattler.ai\",\"publisher\":{\"@id\":\"https://docs.chattler.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.chattler.ai/api-reference/introduction#webpage\",\"url\":\"https://docs.chattler.ai/api-reference/introduction\",\"name\":\"Introduction\",\"description\":\"Base URL, authentication and conventions shared by every endpoint.\",\"dateModified\":\"2026-09-15T19:59:21.686Z\",\"isPartOf\":{\"@id\":\"https://docs.chattler.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.chattler.ai/api-reference/introduction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.chattler.ai/api-reference/introduction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Chattler\",\"item\":\"https://docs.chattler.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Introduction\",\"item\":\"https://docs.chattler.ai/api-reference/introduction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.chattler.ai/api-reference/introduction#article\",\"headline\":\"Introduction\",\"name\":\"Introduction\",\"description\":\"Base URL, authentication and conventions shared by every endpoint.\",\"url\":\"https://docs.chattler.ai/api-reference/introduction\",\"mainEntityOfPage\":{\"@id\":\"https://docs.chattler.ai/api-reference/introduction#webpage\"},\"dateModified\":\"2026-09-15T19:59:21.686Z\",\"publisher\":{\"@id\":\"https://docs.chattler.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.chattler.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Chattler\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Chattler\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/introduction.md","siteName":"Chattler","nav":{"global":null,"versions":[{"version":"English","default":true,"languages":[{"language":"en","default":true,"tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","icon":"square-terminal","groups":[{"group":"API Reference","pages":[{"title":"Introduction","href":"/api-reference/introduction"}]},{"group":"Chat","pages":[{"title":"Send a message to the agent and wait for the reply","description":"Run one turn of conversation on the agent through the ordinary Chattler runtime: the agent's system prompt, knowledge base, tools, and dialog history all apply, and the reply is paid for from the owner's balance exactly like any other channel. The conversation is identified by the API key and `external_user_id`: every message from the same external user through the same key lands in the same conversation, and another key never sees it.\n\n## Authentication\n- **Authorization**: `Bearer cht_live_\u003ckey_id>.\u003csecret>`; the key must have the `full` permission.\n\n## Headers\n- **Idempotency-Key** (required): any client-chosen value of 1-255 characters, unique per logical request. Retrying with the same value and the same body returns the original result without a second reply or charge.\n\n## Path Parameters\n- **agent_id**: The agent the key is bound to\n\n## Request Body\n- **external_user_id**: stable id of the end user on your side, 1-255 characters\n- **message**: the user's text; must not be empty. Attachments are not accepted in this release, and unknown fields are rejected.\n\n## Example Request\n```bash\ncurl -X POST \"/v1/agents/{agent_id}/chat\" \\\n -H \"Authorization: Bearer cht_live_{key_id}.{secret}\" \\\n -H \"Idempotency-Key: 7f20a5f0-5dde-48cf-94aa-38acbbd218e0\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"external_user_id\": \"customer-123\", \"message\": \"I want to know the price\"}'\n```\n\n## Response\n- **request_id**: UUID of this request; also returned as `X-Request-ID`\n- **conversation_id**: the conversation the exchange was stored in\n- **message**: the persisted assistant reply: `id`, `role` (`assistant`), `content`, `created_at`\n- **usage**: `prompt_tokens`, `completion_tokens`, `total_tokens`, and `charged_usd` (decimal string) as metered and charged for this request\n\nA replayed request returns the original `request_id`, message, and usage.\n\n## Errors\nEnvelope: `{\"error\": {\"code\": \"...\", \"message\": \"...\", \"request_id\": \"...\"}}`.\n- `invalid_api_key` (401), `agent_mismatch` (403)\n- `permission_denied` (403): the key is `read-only`\n- `agent_not_found` (404) / `agent_disabled` (403): the agent no longer exists or is switched off\n- `validation_error` (422): missing `Idempotency-Key`, empty message, or unknown body fields\n- `idempotency_conflict` (409): the same `Idempotency-Key` was used with a different body\n- `idempotency_in_progress` (409, `Retry-After`): the original request is still running\n- `conversation_busy` (409, `Retry-After`): another message for this external user is being answered\n- `insufficient_balance` (402): the owner's balance cannot cover the reply; nothing was charged\n- `rate_limit_exceeded` (429), `api_rate_limit_unavailable` (503), `service_unavailable` (503), `internal_error` (500)","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/agents/{agent_id}/chat","href":"/api-reference/public-api/send-a-message-to-the-agent-and-wait-for-the-reply"},{"title":"Send a message and stream the reply as server-sent events","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/agents/{agent_id}/chat/stream","href":"/api-reference/public-api/send-a-message-and-stream-the-reply-as-server-sent-events"}]},{"group":"Conversations","pages":[{"title":"List the key's conversations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/agents/{agent_id}/conversations","href":"/api-reference/public-api/list-the-keys-conversations"},{"title":"List the messages of one of the key's conversations","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/agents/{agent_id}/conversations/{conversation_id}/messages","href":"/api-reference/public-api/list-the-messages-of-one-of-the-keys-conversations"}]}]}]}]},{"version":"Русский","pages":[{"title":"Русский","href":"/ru/api-reference/introduction"}]},{"version":"Հայերեն","pages":[{"title":"Հայերեն","href":"/am/api-reference/introduction"}]},{"version":"Тоҷикӣ","pages":[{"title":"Тоҷикӣ","href":"/tj/api-reference/introduction"}]},{"version":"Татарча","pages":[{"title":"Татарча","href":"/tt/api-reference/introduction"}]},{"version":"العربية","pages":[{"title":"العربية","href":"/ar/api-reference/introduction"}]}]},"basePath":"","title":"Introduction - Chattler","buildId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","deploymentId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","dynamics":[],"chunks":[]}