Updates a test case’s authored configuration. Patch semantics: only the fields you provide change; pass null on nullable fields (startUrlPath, scenarioShortId, resumeFromDependencyProjectTestCaseId) to clear them.
The edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear startUrlPath and set resumeFromDependencyProjectTestCaseId to a test that creates the entity it needs — it then starts from that test’s end state with fresh data.
Patch-style update: omitted fields are left unchanged. Nullable fields (startUrlPath, scenarioShortId, resumeFromDependencyProjectTestCaseId) accept null to clear the current value.
Full replacement list of step instructions, one action per step in user-visible UI language. Pass an empty array to remove all steps and rely on the goal alone.
URL path the agent navigates to before executing (e.g. /dashboard). Pass null to clear it so the test starts from its RESUME_FROM dependency's end state (or the application's base URL without one) — do not set a path on a test that has a RESUME_FROM dependency, as it would navigate away from the dependency's end state.
Test case (UUID) whose output state this test resumes from — the preferred way to give a test fresh, valid data instead of hardcoded entities. Pass null to remove the RESUME_FROM dependency. Combine with startUrlPath: null so the test actually starts from the dependency's end state.
Full replacement list of test cases (UUIDs) that must finish before this one runs (WAIT_FOR — ordering only). Pass an empty array to remove all WAIT_FOR dependencies. Must not overlap with the RESUME_FROM dependency.
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
200 - application/json
The request has succeeded.
A test case's authored configuration — what the agent is instructed to do — as distinct from a run's result (see get_run_test_case).
URL path the agent navigates to before executing (e.g. /dashboard). null means the test starts from its RESUME_FROM dependency's end state, or the application's base URL when it has no dependency.
Deep link to edit the test case in the QA.tech UI.
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":"6adf084ff325da4ba4e04100","collectionId":"320ab775-41f2-455d-bfb2-c36e6443aa35","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf084ff325da4ba4e04100"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adf4c4cf325da4ba4e0eb56","clientVersion":"0.0.3969","searchFilterCounts":[{"language":"default","tag":"API and CLI","count":70},{"language":"default","tag":"Endpoints","count":54},{"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":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"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/test-cases/update-test-case","slug":"/api-reference/test-cases/update-test-case","pageMetadata":{"title":"Update test case","description":"Updates a test case's authored configuration. Patch semantics: only the fields you provide change; pass `null` on nullable fields (`startUrlPath`, `scenarioShortId`, `resumeFromDependencyProjectTestCaseId`) to clear them.\n\nThe edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear `startUrlPath` and set `resumeFromDependencyProjectTestCaseId` to a test that creates the entity it needs — it then starts from that test's end state with fresh data.","deprecated":null,"version":null,"openapi":"/api-reference/api.json patch /v1/test-cases/{id}","href":"/api-reference/test-cases/update-test-case","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: [_jsxs(_components.p, {\n children: [\"Updates a test case’s authored configuration. Patch semantics: only the fields you provide change; pass \", _jsx(_components.code, {\n children: \"null\"\n }), \" on nullable fields (\", _jsx(_components.code, {\n children: \"startUrlPath\"\n }), \", \", _jsx(_components.code, {\n children: \"scenarioShortId\"\n }), \", \", _jsx(_components.code, {\n children: \"resumeFromDependencyProjectTestCaseId\"\n }), \") to clear them.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear \", _jsx(_components.code, {\n children: \"startUrlPath\"\n }), \" and set \", _jsx(_components.code, {\n children: \"resumeFromDependencyProjectTestCaseId\"\n }), \" to a test that creates the entity it needs — it then starts from that test’s end state with fresh data.\"]\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":"Update test case","description":"Updates a test case's authored configuration. Patch semantics: only the fields you provide change; pass `null` on nullable fields (`startUrlPath`, `scenarioShortId`, `resumeFromDependencyProjectTestCaseId`) to clear them.\n\nThe edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear `startUrlPath` and set `resumeFromDependencyProjectTestCaseId` to a test that creates the entity it needs — it then starts from that test's end state with fresh data.","deprecated":null,"version":null,"openapi":"/api-reference/api.json patch /v1/test-cases/{id}","href":"/api-reference/test-cases/update-test-case","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"UpdateTestCase","summary":"Update test case","description":"Updates a test case's authored configuration. Patch semantics: only the fields you provide change; pass `null` on nullable fields (`startUrlPath`, `scenarioShortId`, `resumeFromDependencyProjectTestCaseId`) to clear them.\n\nThe edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear `startUrlPath` and set `resumeFromDependencyProjectTestCaseId` to a test that creates the entity it needs — it then starts from that test's end state with fresh data.","parameters":["fa053a96-b09e-4729-8cf5-34a3cf2939f6"],"responses":{"200":"03bd243e-31e9-4c18-9a52-2d6bbefc5ca4"},"tags":["Test Cases"],"requestBody":"a026bc19-d486-47d1-960c-2aa08d596cf3","method":"patch","type":"path","servers":["92452ebc-4ab9-4aa3-beb6-d09fae3ce833"],"security":["86ac1168-0f51-4204-82f4-e075b29fe419"],"path":"/v1/test-cases/{id}","baseUrlOptions":["https://api.qa.tech"],"title":"Update test case","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"fa053a96-b09e-4729-8cf5-34a3cf2939f6":{"name":"id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","uniqueKey":"name","typeLabel":"string"},"goal":{"type":"string","minLength":1,"description":"The test's goal — what the agent tries to achieve.","uniqueKey":"goal","typeLabel":"string"},"expectedResult":{"type":"string","description":"The expected result, stated as a UI-observable outcome that proves the goal was met.","uniqueKey":"expectedResult","typeLabel":"string"},"steps":{"type":"array","items":{"type":"string","uniqueKey":"steps.items.[INDEX]","typeLabel":"string"},"description":"Full replacement list of step instructions, one action per step in user-visible UI language. Pass an empty array to remove all steps and rely on the goal alone.","uniqueKey":"steps","typeLabel":"string[]"},"startUrlPath":{"oneOf":[{"type":"string","description":"URL path the agent navigates to before executing (e.g. `/dashboard`). Pass `null` to clear it so the test starts from its RESUME_FROM dependency's end state (or the application's base URL without one) — do not set a path on a test that has a RESUME_FROM dependency, as it would navigate away from the dependency's end state.","uniqueKey":"startUrlPath.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL path the agent navigates to before executing (e.g. `/dashboard`). Pass `null` to clear it so the test starts from its RESUME_FROM dependency's end state (or the application's base URL without one) — do not set a path on a test that has a RESUME_FROM dependency, as it would navigate away from the dependency's end state.","uniqueKey":"startUrlPath.oneOf.1","typeLabel":"null"}],"uniqueKey":"startUrlPath","typeLabel":"string | null"},"labels":{"type":"array","items":{"type":"string","uniqueKey":"labels.items.[INDEX]","typeLabel":"string"},"description":"Full replacement list of labels.","uniqueKey":"labels","typeLabel":"string[]"},"isEnabled":{"type":"boolean","uniqueKey":"isEnabled","typeLabel":"boolean"},"classification":{"type":"string","enum":["POSITIVE","NEGATIVE"],"description":"`POSITIVE` (expected to succeed) or `NEGATIVE` (expected to fail).","uniqueKey":"classification","typeLabel":"enum\u003cstring>"},"scenarioShortId":{"oneOf":[{"type":"string","description":"Move the test into an existing scenario (folder). Pass `null` to remove it from its current scenario.","pattern":"^scenario(-.+_.+|_.+)$","uniqueKey":"scenarioShortId.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"scenarioShortId.oneOf.1","typeLabel":"null"}],"uniqueKey":"scenarioShortId","typeLabel":"string | null"},"resumeFromDependencyProjectTestCaseId":{"oneOf":[{"type":"string","description":"Test case (UUID) whose output state this test resumes from — the preferred way to give a test fresh, valid data instead of hardcoded entities. Pass `null` to remove the RESUME_FROM dependency. Combine with `startUrlPath: null` so the test actually starts from the dependency's end state.","uniqueKey":"resumeFromDependencyProjectTestCaseId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Test case (UUID) whose output state this test resumes from — the preferred way to give a test fresh, valid data instead of hardcoded entities. Pass `null` to remove the RESUME_FROM dependency. Combine with `startUrlPath: null` so the test actually starts from the dependency's end state.","uniqueKey":"resumeFromDependencyProjectTestCaseId.oneOf.1","typeLabel":"null"}],"uniqueKey":"resumeFromDependencyProjectTestCaseId","typeLabel":"string | null"},"waitForDependenciesProjectTestCaseIds":{"type":"array","items":{"type":"string","uniqueKey":"waitForDependenciesProjectTestCaseIds.items.[INDEX]","typeLabel":"string"},"description":"Full replacement list of test cases (UUIDs) that must finish before this one runs (WAIT_FOR — ordering only). Pass an empty array to remove all WAIT_FOR dependencies. Must not overlap with the RESUME_FROM dependency.","uniqueKey":"waitForDependenciesProjectTestCaseIds","typeLabel":"string[]"},"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":"Patch-style update: omitted fields are left unchanged. Nullable fields (`startUrlPath`, `scenarioShortId`, `resumeFromDependencyProjectTestCaseId`) accept `null` to clear the current value.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","goal":"\u003cstring>","expectedResult":"\u003cstring>","steps":["\u003cstring>"],"startUrlPath":"\u003cstring>","labels":["\u003cstring>"],"isEnabled":true,"scenarioShortId":"\u003cstring>","resumeFromDependencyProjectTestCaseId":"\u003cstring>","waitForDependenciesProjectTestCaseIds":["\u003cstring>"],"projectShortId":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"03bd243e-31e9-4c18-9a52-2d6bbefc5ca4":{"description":"The request has succeeded.","content":{"application/json":{"schema":{"type":"object","required":["id","name","isEnabled","labels","references","classification","applicationShortId","applicationName","scenarioShortId","scenarioName","goal","expectedResult","steps","startUrlPath","resumeFromDependencyProjectTestCaseId","waitForDependenciesProjectTestCaseIds","createdAt","updatedAt","url"],"properties":{"id":{"type":"string","description":"Project test case ID (UUID). Works with `update_test_case`, `start_run_with_test_cases` (`testCaseIds`), and `rerun_run` (`projectTestCaseIds`).","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"isEnabled":{"type":"boolean","isRequired":true,"uniqueKey":"isEnabled","typeLabel":"boolean"},"labels":{"type":"array","items":{"type":"string","uniqueKey":"labels.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"labels","typeLabel":"string[]"},"references":{"type":"array","items":{"type":"object","required":["kind","key","url","title"],"properties":{"kind":{"type":"string","isRequired":true,"uniqueKey":"references.items.[INDEX].kind","typeLabel":"string"},"key":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"references.items.[INDEX].key.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"references.items.[INDEX].key.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"references.items.[INDEX].key","typeLabel":"string | null"},"url":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"references.items.[INDEX].url.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"references.items.[INDEX].url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"references.items.[INDEX].url","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"references.items.[INDEX].title.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"references.items.[INDEX].title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"references.items.[INDEX].title","typeLabel":"string | null"}},"description":"A clickable entity referenced by a test case (PR, issue, TMS case, or chat).","uniqueKey":"references.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"references","typeLabel":"object[]"},"classification":{"type":"string","enum":["POSITIVE","NEGATIVE"],"description":"`POSITIVE` (expected to succeed) or `NEGATIVE` (expected to fail).","isRequired":true,"uniqueKey":"classification","typeLabel":"enum\u003cstring>"},"applicationShortId":{"type":"string","pattern":"^app(-.+_.+|_.+)$","isRequired":true,"uniqueKey":"applicationShortId","typeLabel":"string"},"applicationName":{"type":"string","isRequired":true,"uniqueKey":"applicationName","typeLabel":"string"},"scenarioShortId":{"oneOf":[{"type":"string","description":"Scenario (folder grouping related test cases) the test belongs to. `null` when ungrouped.","pattern":"^scenario(-.+_.+|_.+)$","isRequired":true,"uniqueKey":"scenarioShortId.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"scenarioShortId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scenarioShortId","typeLabel":"string | null"},"scenarioName":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"scenarioName.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"scenarioName.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"scenarioName","typeLabel":"string | null"},"goal":{"oneOf":[{"type":"string","description":"The test's goal — what the agent tries to achieve.","isRequired":true,"uniqueKey":"goal.oneOf.0","typeLabel":"string"},{"type":"null","description":"The test's goal — what the agent tries to achieve.","isRequired":true,"uniqueKey":"goal.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"goal","typeLabel":"string | null"},"expectedResult":{"oneOf":[{"type":"string","description":"The expected result / success criteria the evaluator checks against.","isRequired":true,"uniqueKey":"expectedResult.oneOf.0","typeLabel":"string"},{"type":"null","description":"The expected result / success criteria the evaluator checks against.","isRequired":true,"uniqueKey":"expectedResult.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"expectedResult","typeLabel":"string | null"},"steps":{"type":"array","items":{"type":"string","uniqueKey":"steps.items.[INDEX]","typeLabel":"string"},"description":"Authored step instructions, in order. Empty when the test only has a goal.","isRequired":true,"uniqueKey":"steps","typeLabel":"string[]"},"startUrlPath":{"oneOf":[{"type":"string","description":"URL path the agent navigates to before executing (e.g. `/dashboard`). `null` means the test starts from its RESUME_FROM dependency's end state, or the application's base URL when it has no dependency.","isRequired":true,"uniqueKey":"startUrlPath.oneOf.0","typeLabel":"string"},{"type":"null","description":"URL path the agent navigates to before executing (e.g. `/dashboard`). `null` means the test starts from its RESUME_FROM dependency's end state, or the application's base URL when it has no dependency.","isRequired":true,"uniqueKey":"startUrlPath.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"startUrlPath","typeLabel":"string | null"},"resumeFromDependencyProjectTestCaseId":{"oneOf":[{"type":"string","description":"Test case whose output state this test resumes from (RESUME_FROM). `null` when the test starts fresh.","isRequired":true,"uniqueKey":"resumeFromDependencyProjectTestCaseId.oneOf.0","typeLabel":"string"},{"type":"null","description":"Test case whose output state this test resumes from (RESUME_FROM). `null` when the test starts fresh.","isRequired":true,"uniqueKey":"resumeFromDependencyProjectTestCaseId.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"resumeFromDependencyProjectTestCaseId","typeLabel":"string | null"},"waitForDependenciesProjectTestCaseIds":{"type":"array","items":{"type":"string","uniqueKey":"waitForDependenciesProjectTestCaseIds.items.[INDEX]","typeLabel":"string"},"description":"Test cases that must finish before this one runs (WAIT_FOR — ordering only, no state carry-over).","isRequired":true,"uniqueKey":"waitForDependenciesProjectTestCaseIds","typeLabel":"string[]"},"createdAt":{"type":"string","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string"},"updatedAt":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"updatedAt.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"updatedAt.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"updatedAt","typeLabel":"string | null"},"url":{"type":"string","description":"Deep link to edit the test case in the QA.tech UI.","isRequired":true,"uniqueKey":"url","typeLabel":"string"}},"description":"A test case's authored configuration — what the agent is instructed to do — as distinct from a run's result (see `get_run_test_case`).","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","name":"\u003cstring>","isEnabled":true,"labels":["\u003cstring>"],"references":[{"kind":"\u003cstring>","key":"\u003cstring>","url":"\u003cstring>","title":"\u003cstring>"}],"classification":"POSITIVE","applicationShortId":"\u003cstring>","applicationName":"\u003cstring>","scenarioShortId":"\u003cstring>","scenarioName":"\u003cstring>","goal":"\u003cstring>","expectedResult":"\u003cstring>","steps":["\u003cstring>"],"startUrlPath":"\u003cstring>","resumeFromDependencyProjectTestCaseId":"\u003cstring>","waitForDependenciesProjectTestCaseIds":["\u003cstring>"],"createdAt":"\u003cstring>","updatedAt":"\u003cstring>","url":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"86ac1168-0f51-4204-82f4-e075b29fe419":{"BearerAuth":{"type":"http","scheme":"Bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"92452ebc-4ab9-4aa3-beb6-d09fae3ce833":{"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":"Update test case - QA.tech Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T11:10:35.791Z","originalFileLocation":"api-reference/test-cases/update-test-case.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=\"Updates a test case\u0026#x27;s authored configuration. Patch semantics: only the fields you provide change; pass null on nullable fields (startUrlPath, scenarioShortId, resumeFromDependencyProjectTestCaseId) to clear them. The edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear startUrlPath and set resumeFromDependencyProjectTestCaseId to a test that creates the entity it needs — it then starts from that test\u0026#x27;s end state with fresh data.\">\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=\"Update test case - QA.tech Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Updates a test case\u0026#x27;s authored configuration. Patch semantics: only the fields you provide change; pass null on nullable fields (startUrlPath, scenarioShortId, resumeFromDependencyProjectTestCaseId) to clear them. The edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear startUrlPath and set resumeFromDependencyProjectTestCaseId to a test that creates the entity it needs — it then starts from that test\u0026#x27;s end state with fresh data.\">\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/test-cases/update-test-case\">\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=Test+Cases\u0026amp;title=Update+test+case\u0026amp;description=Updates+a+test+case%27s+authored+configuration.+Patch+semantics%3A+only+the+fields+you+provide+change%3B+pass+%60null%60+on+nullable+fields+%28%60startUrlPath%60%2C+%60scenarioShor\u0026amp;theme=1ae391f617cb8a464ae673d4\u0026amp;signature=46c284c1d6ac24b7cc01811962b7f40ab0c3057304cae5649dca7e36bf14aa98\">\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=\"Update test case - QA.tech Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Updates a test case\u0026#x27;s authored configuration. Patch semantics: only the fields you provide change; pass null on nullable fields (startUrlPath, scenarioShortId, resumeFromDependencyProjectTestCaseId) to clear them. The edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear startUrlPath and set resumeFromDependencyProjectTestCaseId to a test that creates the entity it needs — it then starts from that test\u0026#x27;s end state with fresh data.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qatech.mintlify.app/_mintlify/api/og/v2?division=Test+Cases\u0026amp;title=Update+test+case\u0026amp;description=Updates+a+test+case%27s+authored+configuration.+Patch+semantics%3A+only+the+fields+you+provide+change%3B+pass+%60null%60+on+nullable+fields+%28%60startUrlPath%60%2C+%60scenarioShor\u0026amp;theme=1ae391f617cb8a464ae673d4\u0026amp;signature=46c284c1d6ac24b7cc01811962b7f40ab0c3057304cae5649dca7e36bf14aa98\">\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/test-cases/update-test-case\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/test-cases/update-test-case.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/test-cases/update-test-case#webpage\",\"url\":\"https://docs.qa.tech/api-reference/test-cases/update-test-case\",\"name\":\"Update test case\",\"description\":\"Updates a test case's authored configuration. Patch semantics: only the fields you provide change; pass null on nullable fields (startUrlPath, scenarioShortId, resumeFromDependencyProjectTestCaseId) to clear them. The edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear startUrlPath and set resumeFromDependencyProjectTestCaseId to a test that creates the entity it needs — it then starts from that test's end state with fresh data.\",\"dateModified\":\"2026-10-23T11:10:35.791Z\",\"isPartOf\":{\"@id\":\"https://docs.qa.tech#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qa.tech/api-reference/test-cases/update-test-case#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qa.tech/api-reference/test-cases/update-test-case#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.qa.tech/api-reference/applications/list-applications\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Test Cases\",\"item\":\"https://docs.qa.tech/api-reference/test-cases/list-test-cases\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Update test case\",\"item\":\"https://docs.qa.tech/api-reference/test-cases/update-test-case\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.qa.tech/api-reference/test-cases/update-test-case#apireference\",\"headline\":\"Update test case\",\"name\":\"Update test case\",\"description\":\"Updates a test case's authored configuration. Patch semantics: only the fields you provide change; pass null on nullable fields (startUrlPath, scenarioShortId, resumeFromDependencyProjectTestCaseId) to clear them. The edit takes effect immediately as a new published revision. To de-hardcode a test that 404s on a stale deep link, clear startUrlPath and set resumeFromDependencyProjectTestCaseId to a test that creates the entity it needs — it then starts from that test's end state with fresh data.\",\"url\":\"https://docs.qa.tech/api-reference/test-cases/update-test-case\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qa.tech/api-reference/test-cases/update-test-case#webpage\"},\"dateModified\":\"2026-10-23T11:10:35.791Z\",\"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":"Get chat conversation","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","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","description":"Fetches a test case's authored configuration by its ID (UUID, as returned by `list_test_cases`): goal, expected result, steps, start URL path, dependencies, labels, enabled state, and scenario. This is the authored config the agent executes — for a specific run's outcome use `get_run_test_case` instead.","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":"CLI","pages":[{"title":"CLI Overview","description":"Run QA.tech tests, inspect results, expose local servers, and chat with the QA.tech agent from the terminal.","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"}]}]}]}]},"title":"Update test case - QA.tech Docs","buildId":"dpl_G8u2B2Ji9qJYF9umedjv293TxycS","deploymentId":"dpl_G8u2B2Ji9qJYF9umedjv293TxycS","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-S3ptrr-V.js","utils-CUxEJy9u.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DavhVrxy.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B1sOUY6E.js","snippetPresets-C-RLYOrF.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Duz18EdI.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DPsbCc6D.js","shallow-B1dlhlOw.js","getApiPlaygroundDisplay-DvOu-BhE.js","CodeSnippet-By8wd64X.js","CodeSnippets-BxVv6TjI.js","Page-BGh0lBck.js","getPastedJson-DOAt9xJn.js","icon-BYg-qtQ2.js","MethodPill-Dtah8ZSz.js","DuplicateIcon-guWfDmh1.js","createIcon-pTGhj_hk.js","DynamicMarkdown-DpsHMHVL.js","SectionHeading-BbutQCjq.js","axios-vUo_bRtp.js","Markdown-DZ-stgDu.js","clsx-Dfme4k4V.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CPNs0ebX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-3JVAA-i3.js"]}