Returns 202 immediately. Poll get_chat_conversation until conversation status
is completed, failed, or cancelled. Assistant message COMPLETED is not
enough while a test run is still in progress. Wait at least 1s between polls.
Target a specific project by its prefixed short ID (proj-slug_shortId or proj_shortId), as returned by the projects API. Required for organization-scoped API keys; project-scoped keys may only pass their own project's short ID.
Pattern: ^proj(-.+_.+|_.+)$
Response
202 - application/json
The request has been accepted for processing, but processing has not yet completed.
Conversation data with recent messages (newest first).
Overall conversation lifecycle. in_progress while the assistant is working or a background test run / research task is still going. Assistant message COMPLETED is not enough — starting a run ends the current turn. Poll until this is completed, failed, or cancelled.
Test runs started from this conversation, newest first. Empty until a run is created. Use shortId with get_run (testCases = all) or nested test-case short IDs from that call with get_run_test_case.
Where the conversation originated. api for conversations created via this API, ui for the dashboard, github/gitlab for VCS-triggered chats, and system for everything else.
Recent messages, newest first. Empty on creation; poll get_chat_conversation to retrieve. Internal wake messages are omitted.
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"QA.tech Docs","colors":{"primary":"#4F46E5","light":"#F672AB","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/qatech/tn7srSYA67gRWgfI/logo/logo.svg?fit=max\u0026auto=format\u0026n=tn7srSYA67gRWgfI\u0026q=85\u0026s=2f0e3745a8079e74e66e0a904232888f","dark":"https://mintcdn.com/qatech/tn7srSYA67gRWgfI/logo/dark.svg?fit=max\u0026auto=format\u0026n=tn7srSYA67gRWgfI\u0026q=85\u0026s=8c39f071bcebaa8ec3c9b73c4e34faac","href":"https://docs.qa.tech"},"favicon":"https://mintcdn.com/qatech/tn7srSYA67gRWgfI/favicon.svg?fit=max\u0026auto=format\u0026n=tn7srSYA67gRWgfI\u0026q=85\u0026s=b34d80ecef9cd5e082545308e406134f","navbar":{"links":[{"href":"https://qa.tech/contact","label":"Support"}],"primary":{"type":"button","label":"Get Started","href":"https://qa.tech/demo"}},"footer":{"socials":{"x":"https://x.com/getqatech","github":"https://github.com/qAdottech","linkedin":"https://www.linkedin.com/company/qa-tech-ai"}},"seo":{"metatags":{"canonical":"https://docs.qa.tech"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://qa.tech/blog/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qatech","hasAudioNarration":false,"actualSubdomain":"qatech","customDomains":["docs.qa.tech"],"gitSource":{"type":"github","owner":"qadottech","repo":"qatech","deployBranch":"live","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea0e2498ee2cfbfea9491f","collectionId":"13addad9-7863-43cc-bb67-6e1dd0991c5f","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea0e2498ee2cfbfea9491f"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aea0e2498ee2cfbfea9491f","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"API and CLI","count":75},{"language":"default","tag":"Endpoints","count":59},{"language":"default","tag":"Build Tests","count":30},{"language":"default","tag":"Get Started","count":26},{"language":"default","tag":"Regression Testing","count":26},{"language":"default","tag":"Agents","count":15},{"language":"default","tag":"Integrations","count":15},{"language":"default","tag":"PR Testing","count":13},{"language":"default","tag":"Runs","count":12},{"language":"default","tag":"Choose your CI","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableAskAiSearchBar":false},"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":"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":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"sso-setup-deadline-banner","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}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"a[href='/integrations/mcp']>svg{-webkit-mask-image:url(/images/mcp-logo.svg)!important;mask-image:url(/images/mcp-logo.svg)!important}"}],"page":{"pagePath":"api-reference/chat/send-chat-message","slug":"/api-reference/chat/send-chat-message","pageMetadata":{"title":"Send chat message","description":"Send a chat message to an existing conversation.\n\nReturns 202 immediately. Poll `get_chat_conversation` until conversation `status`\nis `completed`, `failed`, or `cancelled`. Assistant message `COMPLETED` is not\nenough while a test run is still in progress. Wait at least 1s between polls.","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/chat/{chatConversationShortId}","href":"/api-reference/chat/send-chat-message","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Send a chat message to an existing conversation.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Returns 202 immediately. Poll \", _jsx(_components.code, {\n children: \"get_chat_conversation\"\n }), \" until conversation \", _jsx(_components.code, {\n children: \"status\"\n }), \"\\nis \", _jsx(_components.code, {\n children: \"completed\"\n }), \", \", _jsx(_components.code, {\n children: \"failed\"\n }), \", or \", _jsx(_components.code, {\n children: \"cancelled\"\n }), \". Assistant message \", _jsx(_components.code, {\n children: \"COMPLETED\"\n }), \" is not\\nenough while a test run is still in progress. Wait at least 1s between polls.\"]\n })]\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Send chat message","description":"Send a chat message to an existing conversation.\n\nReturns 202 immediately. Poll `get_chat_conversation` until conversation `status`\nis `completed`, `failed`, or `cancelled`. Assistant message `COMPLETED` is not\nenough while a test run is still in progress. Wait at least 1s between polls.","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/chat/{chatConversationShortId}","href":"/api-reference/chat/send-chat-message","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"AppendChatMessage","summary":"Send chat message","description":"Send a chat message to an existing conversation.\n\nReturns 202 immediately. Poll `get_chat_conversation` until conversation `status`\nis `completed`, `failed`, or `cancelled`. Assistant message `COMPLETED` is not\nenough while a test run is still in progress. Wait at least 1s between polls.","parameters":["6228f869-4bb7-40b8-8dd9-41302fe1091f"],"responses":{"202":"b079ffaf-2b62-4188-8745-6b3eae57d8c7"},"tags":["Chat"],"requestBody":"acfd626f-c461-4ee5-84aa-a46307b833ae","method":"post","type":"path","servers":["a880be0e-b5c6-411f-a895-570b0d510bb2"],"security":["de0efc7c-c420-4438-ac20-eb06aa8fc434"],"path":"/v1/chat/{chatConversationShortId}","baseUrlOptions":["https://api.qa.tech"],"title":"Send chat message","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"6228f869-4bb7-40b8-8dd9-41302fe1091f":{"name":"chatConversationShortId","in":"path","required":true,"schema":{"type":"string","pattern":"^chat(-.+_.+|_.+)$","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","minLength":1,"description":"The message text to send. Example: 'Generate a login flow test for staging'.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"applicationOverrides":{"type":"array","items":{"type":"object","required":["applicationShortId","environment"],"properties":{"applicationShortId":{"type":"string","pattern":"^app(-.+_.+|_.+)$","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].applicationShortId","typeLabel":"string"},"environment":{"oneOf":[{"type":"object","description":"Environment to use for this application. Optional customHeaders and basicAuth persist auth or protection-bypass rules on the environment.","required":["url"],"properties":{"url":{"type":"string","format":"uri","pattern":"^https?:\\x2f\\x2f","description":"Base URL of the environment. Must use http or https.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.url","typeLabel":"string\u003curi>"},"name":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.name","typeLabel":"string"},"customHeaders":{"type":"array","items":{"type":"object","required":["domains","headers"],"properties":{"domains":{"type":"array","items":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.customHeaders.items.[INDEX].domains.items.[INDEX]","typeLabel":"string"},"description":"Host patterns that receive these headers. `*.preview.example.com` matches the apex and any subdomain.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.customHeaders.items.[INDEX].domains","typeLabel":"string[]"},"headers":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.customHeaders.items.[INDEX].headers.additionalProperties","typeLabel":"string"},"description":"Header name to value. Applied by the platform on matching requests; generated test code cannot read the values.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.customHeaders.items.[INDEX].headers","typeLabel":"object"}},"description":"Host patterns (`*.preview.example.com` or an exact host) and the headers to attach to matching requests. Used for auth, deployment-protection bypass, and similar platform access. When provided on an environment override, the rules are persisted on the environment.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.customHeaders.items.[INDEX]","typeLabel":"object"},"description":"Custom headers for this environment. Persisted on create and on reuse. Omit to leave stored headers unchanged; pass an empty list to clear them.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.customHeaders","typeLabel":"object[]"},"basicAuth":{"type":"array","items":{"type":"object","required":["domains","username","password"],"properties":{"domains":{"type":"array","items":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.basicAuth.items.[INDEX].domains.items.[INDEX]","typeLabel":"string"},"description":"Host patterns that receive these credentials. `*.preview.example.com` matches the apex and any subdomain.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.basicAuth.items.[INDEX].domains","typeLabel":"string[]"},"username":{"type":"string","pattern":"^[^:]+$","description":"Basic auth username. May not contain `:`.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.basicAuth.items.[INDEX].username","typeLabel":"string"},"password":{"type":"string","description":"Basic auth password. Applied by the platform on matching requests; generated test code cannot read it.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.basicAuth.items.[INDEX].password","typeLabel":"string"}},"description":"Host patterns (`*.preview.example.com` or an exact host) and the HTTP Basic Auth credentials to send to matching hosts. Browser, crawler, and API tests send `Authorization: Basic` to matching hosts only. When provided on an environment override, the rules are persisted on the environment.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.basicAuth.items.[INDEX]","typeLabel":"object"},"description":"Basic auth rules for this environment. Persisted on create and on reuse. Omit to leave stored rules unchanged; pass an empty list to clear them.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0.basicAuth","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.0","typeLabel":"object"},{"type":"object","description":"Environment to use for this application. Optional customHeaders and basicAuth persist auth or protection-bypass rules on the environment.","required":["shortId"],"properties":{"shortId":{"type":"string","pattern":"^env(-.+_.+|_.+)$","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.shortId","typeLabel":"string"},"customHeaders":{"type":"array","items":{"type":"object","required":["domains","headers"],"properties":{"domains":{"type":"array","items":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.customHeaders.items.[INDEX].domains.items.[INDEX]","typeLabel":"string"},"description":"Host patterns that receive these headers. `*.preview.example.com` matches the apex and any subdomain.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.customHeaders.items.[INDEX].domains","typeLabel":"string[]"},"headers":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.customHeaders.items.[INDEX].headers.additionalProperties","typeLabel":"string"},"description":"Header name to value. Applied by the platform on matching requests; generated test code cannot read the values.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.customHeaders.items.[INDEX].headers","typeLabel":"object"}},"description":"Host patterns (`*.preview.example.com` or an exact host) and the headers to attach to matching requests. Used for auth, deployment-protection bypass, and similar platform access. When provided on an environment override, the rules are persisted on the environment.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.customHeaders.items.[INDEX]","typeLabel":"object"},"description":"Replace custom headers on the existing environment. Omit to leave stored headers unchanged; pass an empty list to clear them.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.customHeaders","typeLabel":"object[]"},"basicAuth":{"type":"array","items":{"type":"object","required":["domains","username","password"],"properties":{"domains":{"type":"array","items":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.basicAuth.items.[INDEX].domains.items.[INDEX]","typeLabel":"string"},"description":"Host patterns that receive these credentials. `*.preview.example.com` matches the apex and any subdomain.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.basicAuth.items.[INDEX].domains","typeLabel":"string[]"},"username":{"type":"string","pattern":"^[^:]+$","description":"Basic auth username. May not contain `:`.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.basicAuth.items.[INDEX].username","typeLabel":"string"},"password":{"type":"string","description":"Basic auth password. Applied by the platform on matching requests; generated test code cannot read it.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.basicAuth.items.[INDEX].password","typeLabel":"string"}},"description":"Host patterns (`*.preview.example.com` or an exact host) and the HTTP Basic Auth credentials to send to matching hosts. Browser, crawler, and API tests send `Authorization: Basic` to matching hosts only. When provided on an environment override, the rules are persisted on the environment.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.basicAuth.items.[INDEX]","typeLabel":"object"},"description":"Replace basic auth rules on the existing environment. Omit to leave stored rules unchanged; pass an empty list to clear them.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1.basicAuth","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.1","typeLabel":"object"},{"type":"object","description":"Environment to use for this application. Optional customHeaders and basicAuth persist auth or protection-bypass rules on the environment.","required":["applicationBuildShortId"],"properties":{"applicationBuildShortId":{"type":"string","pattern":"^build(-.+_.+|_.+)$","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.applicationBuildShortId","typeLabel":"string"},"otherApplicationBuildShortIds":{"type":"array","items":{"type":"string","pattern":"^build(-.+_.+|_.+)$","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.otherApplicationBuildShortIds.items.[INDEX]","typeLabel":"string"},"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.otherApplicationBuildShortIds","typeLabel":"string[]"},"customHeaders":{"type":"array","items":{"type":"object","required":["domains","headers"],"properties":{"domains":{"type":"array","items":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.customHeaders.items.[INDEX].domains.items.[INDEX]","typeLabel":"string"},"description":"Host patterns that receive these headers. `*.preview.example.com` matches the apex and any subdomain.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.customHeaders.items.[INDEX].domains","typeLabel":"string[]"},"headers":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.customHeaders.items.[INDEX].headers.additionalProperties","typeLabel":"string"},"description":"Header name to value. Applied by the platform on matching requests; generated test code cannot read the values.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.customHeaders.items.[INDEX].headers","typeLabel":"object"}},"description":"Host patterns (`*.preview.example.com` or an exact host) and the headers to attach to matching requests. Used for auth, deployment-protection bypass, and similar platform access. When provided on an environment override, the rules are persisted on the environment.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.customHeaders.items.[INDEX]","typeLabel":"object"},"description":"Custom headers for the preview environment created or reused for this build. Omit to leave stored headers unchanged; pass an empty list to clear them.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.customHeaders","typeLabel":"object[]"},"basicAuth":{"type":"array","items":{"type":"object","required":["domains","username","password"],"properties":{"domains":{"type":"array","items":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.basicAuth.items.[INDEX].domains.items.[INDEX]","typeLabel":"string"},"description":"Host patterns that receive these credentials. `*.preview.example.com` matches the apex and any subdomain.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.basicAuth.items.[INDEX].domains","typeLabel":"string[]"},"username":{"type":"string","pattern":"^[^:]+$","description":"Basic auth username. May not contain `:`.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.basicAuth.items.[INDEX].username","typeLabel":"string"},"password":{"type":"string","description":"Basic auth password. Applied by the platform on matching requests; generated test code cannot read it.","isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.basicAuth.items.[INDEX].password","typeLabel":"string"}},"description":"Host patterns (`*.preview.example.com` or an exact host) and the HTTP Basic Auth credentials to send to matching hosts. Browser, crawler, and API tests send `Authorization: Basic` to matching hosts only. When provided on an environment override, the rules are persisted on the environment.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.basicAuth.items.[INDEX]","typeLabel":"object"},"description":"Basic auth rules for the preview environment created or reused for this build. Omit to leave stored rules unchanged; pass an empty list to clear them.","uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2.basicAuth","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"applicationOverrides.items.[INDEX].environment","typeLabel":"object"},"devicePresetShortId":{"type":"string","pattern":"^preset(-.+_.+|_.+)$","uniqueKey":"applicationOverrides.items.[INDEX].devicePresetShortId","typeLabel":"string"},"issueReporters":{"type":"object","description":"Which issue reporters run for this application on this run. A partial accessibility object is completed when the run is created.","properties":{"accessibility":{"type":"object","properties":{"enabled":{"type":"boolean","description":"Watch for axe accessibility issues on this application for this run. Omit to use the caller default: on for API runs, off for MCP.","uniqueKey":"applicationOverrides.items.[INDEX].issueReporters.accessibility.enabled","typeLabel":"boolean"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].issueReporters.accessibility.tags.items.[INDEX]","typeLabel":"string"},"description":"axe-core tags to scan, such as wcag2aa. Omit for the default WCAG 2.0, 2.1, and 2.2 set.","uniqueKey":"applicationOverrides.items.[INDEX].issueReporters.accessibility.tags","typeLabel":"string[]"},"disabledRules":{"type":"array","items":{"type":"string","uniqueKey":"applicationOverrides.items.[INDEX].issueReporters.accessibility.disabledRules.items.[INDEX]","typeLabel":"string"},"description":"axe-core rule ids to skip. Omit for the default disabled rules. An empty list disables none.","uniqueKey":"applicationOverrides.items.[INDEX].issueReporters.accessibility.disabledRules","typeLabel":"string[]"},"includeIncomplete":{"type":"boolean","description":"File axe incomplete results as well as violations. Omit to include them.","uniqueKey":"applicationOverrides.items.[INDEX].issueReporters.accessibility.includeIncomplete","typeLabel":"boolean"},"iframes":{"type":"boolean","description":"Scan inside iframes. Omit to skip iframes.","uniqueKey":"applicationOverrides.items.[INDEX].issueReporters.accessibility.iframes","typeLabel":"boolean"}},"description":"Partial accessibility scan override. Omitted fields are filled when the run is created.","uniqueKey":"applicationOverrides.items.[INDEX].issueReporters.accessibility","typeLabel":"object"}},"uniqueKey":"applicationOverrides.items.[INDEX].issueReporters","typeLabel":"object"}},"description":"Application override with a required environment","uniqueKey":"applicationOverrides.items.[INDEX]","typeLabel":"object"},"description":"Optional per-application environment overrides. Optional customHeaders and basicAuth on environment persist auth or protection-bypass rules.","uniqueKey":"applicationOverrides","typeLabel":"object[]"},"projectShortId":{"type":"string","description":"Target a specific project by its prefixed short ID (proj-slug_shortId or proj_shortId), as returned by the projects API. Required for organization-scoped API keys; project-scoped keys may only pass their own project's short ID.","pattern":"^proj(-.+_.+|_.+)$","uniqueKey":"projectShortId","typeLabel":"string"}},"description":"Request body for sending a chat message","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"message":"\u003cstring>","applicationOverrides":[{"applicationShortId":"\u003cstring>","environment":{"url":"\u003cstring>","name":"\u003cstring>","customHeaders":[{"domains":["\u003cstring>"],"headers":{}}],"basicAuth":[{"domains":["\u003cstring>"],"username":"\u003cstring>","password":"\u003cstring>"}]},"devicePresetShortId":"\u003cstring>","issueReporters":{"accessibility":{"enabled":true,"tags":["\u003cstring>"],"disabledRules":["\u003cstring>"],"includeIncomplete":true,"iframes":true}}}],"projectShortId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b079ffaf-2b62-4188-8745-6b3eae57d8c7":{"description":"The request has been accepted for processing, but processing has not yet completed.","content":{"application/json":{"schema":{"type":"object","required":["shortId","url","createdAt","updatedAt","status","runs"],"properties":{"shortId":{"type":"string","pattern":"^chat(-.+_.+|_.+)$","isRequired":true,"uniqueKey":"shortId","typeLabel":"string"},"url":{"type":"string","description":"Dashboard URL for the conversation.","isRequired":true,"uniqueKey":"url","typeLabel":"string"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string\u003cdate-time>"},"status":{"type":"string","enum":["in_progress","completed","failed","cancelled"],"description":"Overall conversation lifecycle. `in_progress` while the assistant is working or a background test run / research task is still going. Assistant message `COMPLETED` is not enough — starting a run ends the current turn. Poll until this is `completed`, `failed`, or `cancelled`.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"runs":{"type":"array","items":{"type":"object","required":["shortId","status","result","url"],"properties":{"shortId":{"type":"string","isRequired":true,"uniqueKey":"runs.items.[INDEX].shortId","typeLabel":"string"},"status":{"type":"string","description":"Run lifecycle status: `INITIATED`, `RUNNING`, `COMPLETED`, `ERROR`, or `CANCELLED`.","isRequired":true,"uniqueKey":"runs.items.[INDEX].status","typeLabel":"string"},"result":{"oneOf":[{"type":"string","description":"Run outcome once complete: `PASSED`, `FAILED`, or `SKIPPED`. `null` while the run is still in progress.","isRequired":true,"uniqueKey":"runs.items.[INDEX].result.oneOf.0","typeLabel":"string"},{"type":"null","description":"Run outcome once complete: `PASSED`, `FAILED`, or `SKIPPED`. `null` while the run is still in progress.","isRequired":true,"uniqueKey":"runs.items.[INDEX].result.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"runs.items.[INDEX].result","typeLabel":"string | null"},"url":{"type":"string","description":"Dashboard URL for the run.","isRequired":true,"uniqueKey":"runs.items.[INDEX].url","typeLabel":"string"}},"description":"A test run started from this conversation. `shortId` works with `get_run` and `rerun_run`.","uniqueKey":"runs.items.[INDEX]","typeLabel":"object"},"description":"Test runs started from this conversation, newest first. Empty until a run is created. Use `shortId` with `get_run` (`testCases` = all) or nested test-case short IDs from that call with `get_run_test_case`.","isRequired":true,"uniqueKey":"runs","typeLabel":"object[]"},"title":{"type":"string","uniqueKey":"title","typeLabel":"string"},"source":{"type":"string","enum":["api","ui","github","gitlab","system"],"description":"Where the conversation originated. `api` for conversations created via this API, `ui` for the dashboard, `github`/`gitlab` for VCS-triggered chats, and `system` for everything else.","uniqueKey":"source","typeLabel":"enum\u003cstring>"},"messages":{"type":"array","items":{"type":"object","required":["id","role","createdAt","text"],"properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"messages.items.[INDEX].id","typeLabel":"string"},"role":{"type":"string","enum":["user","assistant"],"isRequired":true,"uniqueKey":"messages.items.[INDEX].role","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"messages.items.[INDEX].createdAt","typeLabel":"string\u003cdate-time>"},"text":{"type":"string","description":"The plain-text body of the message.","isRequired":true,"uniqueKey":"messages.items.[INDEX].text","typeLabel":"string"},"status":{"type":"string","enum":["INITIATED","PARTIAL","COMPLETED","CANCELLED","FAILED"],"description":"Lifecycle status of this message. Do not treat assistant `COMPLETED` as the end of the conversation — starting a test run ends the current turn while the run continues in the background. Poll the conversation `status` instead.","uniqueKey":"messages.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"isStreaming":{"type":"boolean","description":"True while the assistant is still streaming tokens for this message.","uniqueKey":"messages.items.[INDEX].isStreaming","typeLabel":"boolean"}},"description":"A chat message. Tool calls and reasoning are not exposed in this version; only the text response is returned.","uniqueKey":"messages.items.[INDEX]","typeLabel":"object"},"description":"Recent messages, newest first. Empty on creation; poll `get_chat_conversation` to retrieve. Internal wake messages are omitted.","uniqueKey":"messages","typeLabel":"object[]"}},"description":"Conversation data with recent messages (newest first).","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"shortId":"\u003cstring>","url":"\u003cstring>","createdAt":"2023-11-07T05:31:56Z","updatedAt":"2023-11-07T05:31:56Z","status":"in_progress","runs":[{"shortId":"\u003cstring>","status":"\u003cstring>","result":"\u003cstring>","url":"\u003cstring>"}],"title":"\u003cstring>","source":"api","messages":[{"id":"\u003cstring>","role":"user","createdAt":"2023-11-07T05:31:56Z","text":"\u003cstring>","status":"INITIATED","isStreaming":true}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"de0efc7c-c420-4438-ac20-eb06aa8fc434":{"BearerAuth":{"type":"http","scheme":"Bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"a880be0e-b5c6-411f-a895-570b0d510bb2":{"url":"https://api.qa.tech","description":"Production","variables":{}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"Bearer","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/api.json"},"subdomain":"qatech","siteName":"QA.tech Docs","title":"Send chat message - QA.tech Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T16:39:08.408Z","originalFileLocation":"api-reference/chat/send-chat-message.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=\"Send a chat message to an existing conversation. Returns 202 immediately. Poll get_chat_conversation until conversation status is completed, failed, or cancelled. Assistant message COMPLETED is not enough while a test run is still in progress. Wait at least 1s between polls.\">\u003cmeta data-mint-head name=\"application-name\" content=\"QA.tech 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/qatech/iMlZaRlMvi7xyIQO/_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/qatech/iMlZaRlMvi7xyIQO/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qatech/iMlZaRlMvi7xyIQO/_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/qatech/iMlZaRlMvi7xyIQO/_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/qatech/iMlZaRlMvi7xyIQO/_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/qatech/iMlZaRlMvi7xyIQO/_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/qatech/iMlZaRlMvi7xyIQO/_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/qatech/iMlZaRlMvi7xyIQO/_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/qatech/iMlZaRlMvi7xyIQO/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Send chat message - QA.tech Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Send a chat message to an existing conversation. Returns 202 immediately. Poll get_chat_conversation until conversation status is completed, failed, or cancelled. Assistant message COMPLETED is not enough while a test run is still in progress. Wait at least 1s between polls.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"QA.tech Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.qa.tech/api-reference/chat/send-chat-message\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qatech.mintlify.app/_mintlify/api/og/v2?division=Chat\u0026amp;title=Send+chat+message\u0026amp;description=Send+a+chat+message+to+an+existing+conversation.%0A%0AReturns+202+immediately.+Poll+%60get_chat_conversation%60+until+conversation+%60status%60%0Ais+%60completed%60%2C+%60failed%60%2C+or\u0026amp;theme=1ae391f617cb8a464ae673d4\u0026amp;signature=bac0f2fdaa5e3d33e94e32b8b89014c4f18f726d029bd0c8f84579476fb63c96\">\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=\"Send chat message - QA.tech Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Send a chat message to an existing conversation. Returns 202 immediately. Poll get_chat_conversation until conversation status is completed, failed, or cancelled. Assistant message COMPLETED is not enough while a test run is still in progress. Wait at least 1s between polls.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qatech.mintlify.app/_mintlify/api/og/v2?division=Chat\u0026amp;title=Send+chat+message\u0026amp;description=Send+a+chat+message+to+an+existing+conversation.%0A%0AReturns+202+immediately.+Poll+%60get_chat_conversation%60+until+conversation+%60status%60%0Ais+%60completed%60%2C+%60failed%60%2C+or\u0026amp;theme=1ae391f617cb8a464ae673d4\u0026amp;signature=bac0f2fdaa5e3d33e94e32b8b89014c4f18f726d029bd0c8f84579476fb63c96\">\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/qatech/iMlZaRlMvi7xyIQO/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"QA.tech Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#4F46E5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.qa.tech/api-reference/chat/send-chat-message\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/chat/send-chat-message.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.qa.tech/#organization\",\"name\":\"QA.tech Docs\",\"url\":\"https://docs.qa.tech\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/qatech/tn7srSYA67gRWgfI/logo/logo.svg?fit=max\u0026auto=format\u0026n=tn7srSYA67gRWgfI\u0026q=85\u0026s=2f0e3745a8079e74e66e0a904232888f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.qa.tech#website\",\"name\":\"QA.tech Docs\",\"url\":\"https://docs.qa.tech\",\"publisher\":{\"@id\":\"https://docs.qa.tech/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.qa.tech/api-reference/chat/send-chat-message#webpage\",\"url\":\"https://docs.qa.tech/api-reference/chat/send-chat-message\",\"name\":\"Send chat message\",\"description\":\"Send a chat message to an existing conversation. Returns 202 immediately. Poll get_chat_conversation until conversation status is completed, failed, or cancelled. Assistant message COMPLETED is not enough while a test run is still in progress. Wait at least 1s between polls.\",\"dateModified\":\"2026-11-03T16:39:08.408Z\",\"isPartOf\":{\"@id\":\"https://docs.qa.tech#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qa.tech/api-reference/chat/send-chat-message#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qa.tech/api-reference/chat/send-chat-message#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.qa.tech/api-reference/applications/list-applications\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Chat\",\"item\":\"https://docs.qa.tech/api-reference/chat/start-chat-conversation\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Send chat message\",\"item\":\"https://docs.qa.tech/api-reference/chat/send-chat-message\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.qa.tech/api-reference/chat/send-chat-message#apireference\",\"headline\":\"Send chat message\",\"name\":\"Send chat message\",\"description\":\"Send a chat message to an existing conversation. Returns 202 immediately. Poll get_chat_conversation until conversation status is completed, failed, or cancelled. Assistant message COMPLETED is not enough while a test run is still in progress. Wait at least 1s between polls.\",\"url\":\"https://docs.qa.tech/api-reference/chat/send-chat-message\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qa.tech/api-reference/chat/send-chat-message#webpage\"},\"dateModified\":\"2026-11-03T16:39:08.408Z\",\"publisher\":{\"@id\":\"https://docs.qa.tech/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.qa.tech#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"QA.tech Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"QA.tech Docs","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://qa.tech/blog/"}]},"tabs":[{"tab":"Get Started","icon":"book-open","pages":[{"title":"Get Started","href":"/core-concepts/ai-agent-testing"}]},{"tab":"AI Assistant","icon":"message-bot","pages":[{"title":"AI Assistant","href":"/core-concepts/ai-chat-assistant"}]},{"tab":"Build Tests","icon":"list-check","pages":[{"title":"Build Tests","href":"/best-practices/creating-tests"}]},{"tab":"PR Testing","icon":"code-pull-request","pages":[{"title":"PR Testing","href":"/pr-testing/overview"}]},{"tab":"Regression Testing","icon":"clipboard-list","pages":[{"title":"Regression Testing","href":"/regression-testing/overview"}]},{"tab":"Integrations","icon":"plug","pages":[{"title":"Integrations","href":"/configuration/github-app"}]},{"tab":"API and CLI","icon":"square-terminal","groups":[{"group":"Overview","pages":[{"title":"API Introduction","icon":"code","href":"/api-reference/introduction"},{"title":"Applications API","icon":"browser","href":"/api-reference/applications"},{"title":"Application Builds API","icon":"mobile","href":"/api-reference/application-builds"},{"title":"Chat API","icon":"message-bot","href":"/api-reference/chat"},{"title":"Remote Tunnels API","icon":"link","href":"/api-reference/remote-tunnels"},{"title":"Exporting Test Cases","icon":"file-export","href":"/api-reference/exporting-test-cases"}]},{"group":"Endpoints","pages":[{"group":"Applications","pages":[{"title":"List applications","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/applications","href":"/api-reference/applications/list-applications"},{"title":"List application environments","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/applications/{applicationShortId}/environments","href":"/api-reference/applications/list-application-environments"}]},{"group":"Application Builds","pages":[{"title":"List application builds","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/applications/{applicationShortId}/builds","href":"/api-reference/application-builds/list-application-builds"},{"title":"Create application build","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/applications/{applicationShortId}/builds","href":"/api-reference/application-builds/create-application-build"},{"title":"Get build upload URL","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/applications/{applicationShortId}/builds/upload-url","href":"/api-reference/application-builds/get-build-upload-url"}]},{"group":"Automations","pages":[{"title":"List automations","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/automations","href":"/api-reference/automations/list-automations"},{"title":"Create automation","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/automations","href":"/api-reference/automations/create-automation"},{"title":"Delete automation","deprecated":null,"version":null,"openapi":"/api-reference/api.json delete /v1/automations/{automationId}","href":"/api-reference/automations/delete-automation"},{"title":"Update automation","deprecated":null,"version":null,"openapi":"/api-reference/api.json patch /v1/automations/{automationId}","href":"/api-reference/automations/update-automation"},{"title":"Trigger automation","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/automations/{automationId}/trigger","href":"/api-reference/automations/trigger-automation"}]},{"group":"Status badge","pages":[{"title":"Get example status badge","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/badge-example.svg","href":"/api-reference/status-badge/get-example-status-badge"},{"title":"Get status badge","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/badge.svg","href":"/api-reference/status-badge/get-status-badge"}]},{"group":"Chat","pages":[{"title":"Start chat conversation","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/chat","href":"/api-reference/chat/start-chat-conversation"},{"title":"Start change review chat","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/chat/change-review","href":"/api-reference/chat/start-change-review-chat"},{"title":"Prepare change review","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/chat/change-review/prepare","href":"/api-reference/chat/prepare-change-review"},{"title":"Get chat conversation","description":"Get conversation metadata, associated test runs, and recent messages (newest first).\n\nUse `limit` to control how many messages are returned (default 20). Poll until\nconversation `status` is `completed`, `failed`, or `cancelled` — not merely until the\nlatest assistant message is `COMPLETED`, because starting a test run ends that turn\nwhile the run continues in the background. `runs` lists any test runs started from\nthis chat; pass `shortId` to `get_run` (with `testCases: \"all\"`) for browser results.","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/chat/{chatConversationShortId}","href":"/api-reference/chat/get-chat-conversation"},{"title":"Send chat message","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/chat/{chatConversationShortId}","href":"/api-reference/chat/send-chat-message"}]},{"group":"Features","pages":[{"title":"List features","description":"List features in the project's feature graph. Features are LLM-clustered groupings of related UI actions discovered during crawling, and describe what the product can do.","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/features","href":"/api-reference/features/list-features"},{"title":"Get feature","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/features/{featureId}","href":"/api-reference/features/get-feature"}]},{"group":"Issues","pages":[{"title":"List issues","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/issues","href":"/api-reference/issues/list-issues"},{"title":"Get issue","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/issues/{shortId}","href":"/api-reference/issues/get-issue"}]},{"group":"Knowledge","pages":[{"title":"List knowledge items","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/knowledge","href":"/api-reference/knowledge/list-knowledge-items"},{"title":"Create knowledge item","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/knowledge","href":"/api-reference/knowledge/create-knowledge-item"},{"title":"Get knowledge item","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/knowledge/{knowledgeItemId}","href":"/api-reference/knowledge/get-knowledge-item"},{"title":"Delete knowledge item","deprecated":null,"version":null,"openapi":"/api-reference/api.json delete /v1/knowledge/{knowledgeItemId}","href":"/api-reference/knowledge/delete-knowledge-item"},{"title":"Update knowledge item","deprecated":null,"version":null,"openapi":"/api-reference/api.json patch /v1/knowledge/{knowledgeItemId}","href":"/api-reference/knowledge/update-knowledge-item"}]},{"group":"Metrics","pages":[{"title":"Get project metrics","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/metrics","href":"/api-reference/metrics/get-project-metrics"}]},{"group":"Infrastructure","pages":[{"title":"Get outbound IPs","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/outbound-ips","href":"/api-reference/infrastructure/get-outbound-ips"}]},{"group":"Projects","pages":[{"title":"List projects","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/projects","href":"/api-reference/projects/list-projects"},{"title":"Create project","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/projects","href":"/api-reference/projects/create-project"}]},{"group":"Remote Tunnels","pages":[{"title":"List remote tunnels","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/remote-tunnels","href":"/api-reference/remote-tunnels/list-remote-tunnels"},{"title":"Create remote tunnel","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/remote-tunnels","href":"/api-reference/remote-tunnels/create-remote-tunnel"},{"title":"Get remote tunnel","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/remote-tunnels/{runnerId}","href":"/api-reference/remote-tunnels/get-remote-tunnel"},{"title":"Delete remote tunnel","deprecated":null,"version":null,"openapi":"/api-reference/api.json delete /v1/remote-tunnels/{runnerId}","href":"/api-reference/remote-tunnels/delete-remote-tunnel"},{"title":"Get remote tunnel status","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/remote-tunnels/{runnerId}/status","href":"/api-reference/remote-tunnels/get-remote-tunnel-status"}]},{"group":"Rules","pages":[{"title":"List rules","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/rules","href":"/api-reference/rules/list-rules"},{"title":"Create rule","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/rules","href":"/api-reference/rules/create-rule"},{"title":"Delete rule","deprecated":null,"version":null,"openapi":"/api-reference/api.json delete /v1/rules/{ruleId}","href":"/api-reference/rules/delete-rule"},{"title":"Update rule","deprecated":null,"version":null,"openapi":"/api-reference/api.json patch /v1/rules/{ruleId}","href":"/api-reference/rules/update-rule"}]},{"group":"Runs","pages":[{"title":"List runs","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/run","href":"/api-reference/runs/list-runs"},{"title":"Start test run","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/run","href":"/api-reference/runs/start-test-run"},{"title":"Get run test case","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/run-test-case/{shortId}","href":"/api-reference/runs/get-run-test-case"},{"title":"Get test case history","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/run-test-case/{shortId}/history","href":"/api-reference/runs/get-test-case-history"},{"title":"Get run test case logs","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/run-test-case/{shortId}/logs","href":"/api-reference/runs/get-run-test-case-logs"},{"title":"Get run test case screenshots","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/run-test-case/{shortId}/screenshots","href":"/api-reference/runs/get-run-test-case-screenshots"},{"title":"Get run test case trace","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/run-test-case/{shortId}/trace","href":"/api-reference/runs/get-run-test-case-trace"},{"title":"Get run","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/run/{shortId}","href":"/api-reference/runs/get-run"},{"title":"Rerun run","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/run/{shortId}","href":"/api-reference/runs/rerun-run"},{"title":"Get run issues","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/run/{shortId}/issues","href":"/api-reference/runs/get-run-issues"},{"title":"Export run test record","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/runs/{runShortId}/exports","href":"/api-reference/runs/export-run-test-record"},{"title":"Get run export","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/runs/{runShortId}/exports/{exportId}","href":"/api-reference/runs/get-run-export"}]},{"group":"Test Cases","pages":[{"title":"List test cases","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/test-cases","href":"/api-reference/test-cases/list-test-cases"},{"title":"Create test case","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/test-cases","href":"/api-reference/test-cases/create-test-case"},{"title":"Get test case","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/test-cases/{id}","href":"/api-reference/test-cases/get-test-case"},{"title":"Update test case","deprecated":null,"version":null,"openapi":"/api-reference/api.json patch /v1/test-cases/{id}","href":"/api-reference/test-cases/update-test-case"}]},{"group":"Todos","pages":[{"title":"List todos","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/todos","href":"/api-reference/todos/list-todos"},{"title":"Create todo","deprecated":null,"version":null,"openapi":"/api-reference/api.json post /v1/todos","href":"/api-reference/todos/create-todo"},{"title":"Get todo","deprecated":null,"version":null,"openapi":"/api-reference/api.json get /v1/todos/{shortId}","href":"/api-reference/todos/get-todo"},{"title":"Update todo","deprecated":null,"version":null,"openapi":"/api-reference/api.json patch /v1/todos/{shortId}","href":"/api-reference/todos/update-todo"}]}]},{"group":"CLI","pages":[{"title":"CLI Overview","icon":"terminal","href":"/cli/overview"},{"group":"Commands","expanded":true,"pages":[{"title":"qatech configure","icon":"gear","href":"/cli/commands/configure"},{"title":"qatech test-cases","icon":"list-check","href":"/cli/commands/test-cases"},{"title":"qatech applications","icon":"cube","href":"/cli/commands/applications"},{"title":"qatech environments","icon":"cubes","href":"/cli/commands/environments"},{"title":"qatech run","icon":"play","href":"/cli/commands/run"},{"title":"qatech status","icon":"circle-check","href":"/cli/commands/status"},{"title":"qatech chat","icon":"comment","href":"/cli/commands/chat"},{"title":"qatech tunnel","icon":"link","href":"/cli/commands/tunnel"},{"title":"qatech init","icon":"wand-magic-sparkles","href":"/cli/commands/init"}]}]}]}]},"basePath":"","title":"Send chat message - QA.tech Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}