Create a disposable personal workspace API key with exactly runs:write. Send it as Authorization: Bearer $PRAXA_API_KEY. A Gateway OAuth token, Supabase JWT, provider credential, or organization memory key is not interchangeable with this key.The hosted playground sends the credential from your browser session to the documented API through the configured playground proxy. Use test data, never share the key, and revoke it when the check ends.
200 — Updated run projection. Acceptance does not imply rollback or an immediate cancelled state. Internal cancelling and reconcile_required states both map to running until the run reaches a terminal outcome.
Present only when Praxa can derive the exact recorded browser action and bind it to the stored action digest. The summary contains the exact recorded instruction or steps followed by the target host.
The method, path, headers, query, or body failed strict validation.
Correct the request; do not retry unchanged input.
401 authentication_failed
The bearer key is missing, malformed, expired, or revoked.
Stop and replace the key through the authenticated console.
403 authorization_failed
The authenticated key lacks scope or tenant authority.
Request only the missing least-privilege scope; never substitute another tenant ID.
429 rate_limited
The principal exceeded a bounded rate.
Honor retryAfterMs or Retry-After, add jitter, and cap attempts.
retryable 5xx
The server could not confirm a final response.
Reconcile reads or replay the exact keyed mutation before creating new work.
Example problem
{ "type": "https://docs.praxa.io/problems/authorization-failed", "title": "Authorization failed", "status": 403, "code": "authorization_failed", "detail": "The API key does not grant the required scope.", "retryable": false}
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Praxa","description":"Build governed AI agents with Praxa APIs, SDKs, CLI tools, MCP contracts, durable missions, webhooks, memory federation, tutorials, and benchmarks.","colors":{"primary":"#909090","light":"#dddddd","dark":"#1d1d1d"},"logo":{"light":"https://mintcdn.com/praxa-ai/A7sq1R7I_fyz1Wjb/logo-light.svg?fit=max\u0026auto=format\u0026n=A7sq1R7I_fyz1Wjb\u0026q=85\u0026s=00ae74f5749278ab3f33ae0e0d93c0ad","dark":"https://mintcdn.com/praxa-ai/A7sq1R7I_fyz1Wjb/logo-dark.svg?fit=max\u0026auto=format\u0026n=A7sq1R7I_fyz1Wjb\u0026q=85\u0026s=7be26e1381dab8298e115bf27b0c9336","href":"https://praxa.io"},"favicon":"https://mintcdn.com/praxa-ai/A7sq1R7I_fyz1Wjb/app-icon.png?fit=max\u0026auto=format\u0026n=A7sq1R7I_fyz1Wjb\u0026q=85\u0026s=24ed405581da511b0407be4f84a00f20","api":{"openapi":["fabric/api/openapi.yaml","memory-federation/openapi.yaml"],"playground":{"display":"interactive","proxy":true},"examples":{"defaults":"required","languages":["curl","javascript","python"]},"mdx":{"auth":{"method":"bearer"},"server":"https://api.praxa.io"}},"navbar":{"primary":{"type":"github","href":"https://github.com/praxa-labs/praxa"}},"search":{"prompt":"Search Praxa APIs, SDK, CLI, MCP, memory, tutorials, and benchmarks"},"seo":{"metatags":{"og:site_name":"Praxa Developer Documentation","twitter:card":"summary_large_image"},"indexing":"navigable"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"praxa-ai","hasAudioNarration":false,"actualSubdomain":"praxa-ai","customDomains":["docs.praxa.io"],"gitSource":{"type":"github","owner":"praxa-labs","repo":"praxa-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6a7f5f274ee23a3639404e9d","collectionId":"1eb23b8a-ca39-4a6b-896f-c127a0f4aff6","liveDeploymentHistoryId":"6a7f5f274ee23a3639404e9d","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae95c911da1b8da413502a9:success","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Overview","count":82},{"language":"default","tag":"Execution Fabric","count":37},{"language":"default","tag":"Tutorials","count":29},{"language":"default","tag":"API Playground","count":19},{"language":"default","tag":"SDK","count":16},{"language":"default","tag":"API Reference","count":15},{"language":"default","tag":"Use cases","count":12},{"language":"default","tag":"Web and server frameworks","count":12},{"language":"default","tag":"Benchmarks \u0026 Research","count":11},{"language":"default","tag":"Product guides","count":11}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":[],"page":{"pagePath":"api-playground/execution-fabric/cancel-run","slug":"/api-playground/execution-fabric/cancel-run","pageMetadata":{"title":"Request durable-run cancellation","sidebarTitle":"Request durable-run cancellation","description":"Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.","keywords":["Praxa Request durable-run cancellation","Praxa API Playground","Praxa API examples","API authentication"],"api":"POST /v1/runs/{id}/cancel","authMethod":"bearer","playground":"interactive","href":"/api-playground/execution-fabric/cancel-run"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,CodeGroup,Heading,Info,ParamField,ResponseField,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Availability:`}),` Production partner preview. `,_jsx(_components.strong,{children:`Required scope:`}),` `,_jsx(_components.code,{children:`runs:write`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`authenticate-safely`,children:`Authenticate safely`}),`\n`,_jsxs(_components.p,{children:[`Create a disposable `,_jsx(_components.strong,{children:`personal workspace`}),` API key with exactly `,_jsx(_components.code,{children:`runs:write`}),`. Send it as `,_jsx(_components.code,{children:`Authorization: Bearer $PRAXA_API_KEY`}),`. A Gateway OAuth token, Supabase JWT, provider credential, or organization memory key is not interchangeable with this key.`]}),`\n`,_jsx(_components.p,{children:`The hosted playground sends the credential from your browser session to the documented API through the configured playground proxy. Use test data, never share the key, and revoke it when the check ends.`}),`\n`,_jsx(Heading,{level:`2`,id:`request-fields`,children:`Request fields`}),`\n`,_jsx(ParamField,{path:`id`,type:`string`,required:true,id:`param-id`,children:_jsx(_components.p,{children:`id path parameter.`})}),`\n`,_jsx(Heading,{level:`2`,id:`runnable-request-examples`,children:`Runnable request examples`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --fail-with-body`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.praxa.io/v1/runs/018f0000-0000-7000-8000-000000000001/cancel'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$PRAXA_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{}'`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Node.js`,numberOfLines:`11`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`11`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` fetch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://api.praxa.io/v1/runs/018f0000-0000-7000-8000-000000000001/cancel\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"method\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"POST\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"headers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `Bearer \"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`process`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`env`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`PRAXA_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"application/json\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"body\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` JSON`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`stringify`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({})`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` text`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ok`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`throw`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` new`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` Error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`status`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`text`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`text`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ?`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` JSON`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`parse`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`status:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`21`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`21`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` json`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` os`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` urllib `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` error, request`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`payload `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` json.dumps({}).encode()`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`req `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` request.Request(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.praxa.io/v1/runs/018f0000-0000-7000-8000-000000000001/cancel\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` method`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"POST\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` headers`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bearer `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`os.environ[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'PRAXA_API_KEY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"application/json\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` data`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`payload,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`try`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` with`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` request.urlopen(req, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`timeout`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`30`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` text `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` response.read().decode()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:` print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(json.loads(text) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` text `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`else`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: response.status})`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`except`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` error.HTTPError `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` exc:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` raise`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` RuntimeError`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`exc.code`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`: `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`{`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`exc.read().decode()`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` exc`})]}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`what-success-means`,children:`What success means`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.code,{children:`200`}),` response acknowledges the cancellation request and returns a run projection; it does not imply rollback or immediate cancellation.`]}),`\n`,_jsx(Heading,{level:`2`,id:`successful-response`,children:`Successful response`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`200`}),` — Updated run projection. Acceptance does not imply rollback or an immediate cancelled state. Internal cancelling and reconcile_required states both map to running until the run reaches a terminal outcome.`]}),`\n`,_jsx(ResponseField,{name:`apiVersion`,type:`v1`,required:true,id:`param-api-version`,children:_jsx(_components.p,{children:`apiVersion response field.`})}),`\n`,_jsx(ResponseField,{name:`run_id`,type:`string`,required:true,id:`param-run-id`,children:_jsx(_components.p,{children:`run_id response field.`})}),`\n`,_jsx(ResponseField,{name:`requestId`,type:`string`,required:true,id:`param-request-id`,children:_jsx(_components.p,{children:`requestId response field.`})}),`\n`,_jsx(ResponseField,{name:`mode`,type:`task`,required:true,id:`param-mode`,children:_jsx(_components.p,{children:`mode response field.`})}),`\n`,_jsx(ResponseField,{name:`status`,type:`queued | running | awaiting_approval | completed | failed | cancelled`,required:true,id:`param-status`,children:_jsx(_components.p,{children:`Public lifecycle status. Internal cancelling and reconcile_required states project as running; reconciliation is not terminal.`})}),`\n`,_jsx(ResponseField,{name:`createdAt`,type:`string`,required:true,id:`param-created-at`,children:_jsx(_components.p,{children:`createdAt response field.`})}),`\n`,_jsx(ResponseField,{name:`updatedAt`,type:`string`,required:true,id:`param-updated-at`,children:_jsx(_components.p,{children:`updatedAt response field.`})}),`\n`,_jsx(ResponseField,{name:`completedAt`,type:`string`,id:`param-completed-at`,children:_jsx(_components.p,{children:`completedAt response field.`})}),`\n`,_jsx(ResponseField,{name:`pendingApproval`,type:`object`,id:`param-pending-approval`,children:_jsx(_components.p,{children:`Present only when Praxa can derive the exact recorded browser action and bind it to the stored action digest. The summary contains the exact recorded instruction or steps followed by the target host.`})}),`\n`,_jsx(ResponseField,{name:`result`,type:`object`,id:`param-result`,children:_jsx(_components.p,{children:`Present only for schema-valid, digest-matched verified text.`})}),`\n`,_jsx(ResponseField,{name:`failure`,type:`object`,id:`param-failure`,children:_jsx(_components.p,{children:`failure response field.`})}),`\n`,_jsx(ResponseField,{name:`links`,type:`object`,required:true,id:`param-links`,children:_jsx(_components.p,{children:`links response field.`})}),`\n`,`\n`,_jsx(Heading,{level:`2`,id:`handle-failures`,children:`Handle failures`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Response`}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`Safe action`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`400 invalid_request`})}),_jsx(_components.td,{children:`The method, path, headers, query, or body failed strict validation.`}),_jsx(_components.td,{children:`Correct the request; do not retry unchanged input.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`401 authentication_failed`})}),_jsx(_components.td,{children:`The bearer key is missing, malformed, expired, or revoked.`}),_jsx(_components.td,{children:`Stop and replace the key through the authenticated console.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`403 authorization_failed`})}),_jsx(_components.td,{children:`The authenticated key lacks scope or tenant authority.`}),_jsx(_components.td,{children:`Request only the missing least-privilege scope; never substitute another tenant ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`429 rate_limited`})}),_jsx(_components.td,{children:`The principal exceeded a bounded rate.`}),_jsxs(_components.td,{children:[`Honor `,_jsx(_components.code,{children:`retryAfterMs`}),` or `,_jsx(_components.code,{children:`Retry-After`}),`, add jitter, and cap attempts.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`retryable `,_jsx(_components.code,{children:`5xx`})]}),_jsx(_components.td,{children:`The server could not confirm a final response.`}),_jsx(_components.td,{children:`Reconcile reads or replay the exact keyed mutation before creating new work.`})]})]})]}),`\n`,_jsx(CodeBlock,{filename:`Example problem`,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://docs.praxa.io/problems/authorization-failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`403`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"authorization_failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"detail\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The API key does not grant the required scope.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"retryable\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-result`,children:`Verify the result`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Confirm the returned run ID matches the target.`}),`\n`,_jsx(_components.li,{children:`Continue run or event readback until terminal.`}),`\n`,_jsx(_components.li,{children:`Do not report cancellation while the projection remains running.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`retry-cleanup-and-production-use`,children:`Retry, cleanup, and production use`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Treat `,_jsx(_components.code,{children:`401`}),`, `,_jsx(_components.code,{children:`403`}),`, and `,_jsx(_components.code,{children:`409`}),` as authority or state signals, not generic retry prompts.`]}),`\n`,_jsxs(_components.li,{children:[`For `,_jsx(_components.code,{children:`429`}),` or retryable 5xx responses, follow server retry guidance and keep a bounded attempt budget.`]}),`\n`,_jsx(_components.li,{children:`Move the request into a trusted application backend before production; never ship the Praxa key in browser or mobile code.`}),`\n`,_jsx(_components.li,{children:`Revoke the disposable key, disable test webhooks, and erase disposable candidate data after validation.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Continue with `,_jsx(_components.a,{href:`/api-playground/authentication`,children:`API authentication`}),`, the `,_jsx(_components.a,{href:`/api-playground/errors`,children:`failure and retry guide`}),`, and the `,_jsx(_components.a,{href:`/api-playground/coverage-and-testing`,children:`end-to-end coverage matrix`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Request durable-run cancellation","sidebarTitle":"Request durable-run cancellation","description":"Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.","keywords":["Praxa Request durable-run cancellation","Praxa API Playground","Praxa API examples","API authentication"],"api":"POST /v1/runs/{id}/cancel","authMethod":"bearer","playground":"interactive","href":"/api-playground/execution-fabric/cancel-run"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[417,421,"Example,ResponseFiel"],[707,722,"Example)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingM"],[25730,27792,"_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`13`"],[28085,28104,"13`,children:[_jsx(_"],[28376,28390,"apiVersion\"`}),_jsx("],[28556,28625,"v1\"`}),_jsx(_compone"],[28842,28861,"run_id\"`}),_jsx(_com"],[29023,29047,"018f0000-0000-7000-8000-000000000001\"`})"],[29278,29295,"requestId\"`}),_jsx(_"],[29416,29832,""],[29876,29896,"request-id-demo-0001"],[30131,30153,"mode\"`}),_jsx(_compo"],[30313,30375,"task\"`}),_jsx(_compo"],[30594,30617,"status\"`}),_jsx(_com"],[30735,30848,"A3069`,\"--shiki-dark\":`#CE9178`},children:`\"queued\"`}),_jsx("],[30925,33015,",`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"createdAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-08-13T12:00:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"updatedAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-08-13T12:00:00.000Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"links\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"self\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/v1/runs/018f0000-0000-7000-8000-000000000001\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"events\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/v1/runs/018f0000-0000-7000-8000-000000000001/events\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`2`,id:`handle-failures`,children:`Handle failures`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Response`}),_jsx(_components.th,{children:`Meaning`}),_jsx(_components.th,{children:`Safe action`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`400 invalid_request`})}),_jsx(_components.td,{children:`The method, path, headers, query, or body failed strict validation.`}),_jsx(_components.td,{children:`Correct the request; do not retry unchanged input.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`401 authentication_failed`})}),_jsx(_components.td,{children:`The bearer key is missing, malformed, expired, or revoked.`}),_jsx(_components.td,{children:`Stop and replace the key through the authenticated console.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`403 authorization_failed`})}),_jsx(_components.td,{children:`The authenticated key lacks scope or tenant authority.`}),_jsx(_components.td,{children:`Request only the missing least-privilege scope; never substitute another tenant ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`429 rate_limited`})}),_jsx(_components.td,{children:`The principal exceeded a bounded rate.`}),_jsxs(_components.td,{children:[`Honor `,_jsx(_components.code,{children:`retryAfterMs`}),` or `,_jsx(_components.code,{children:`Retry-After`}),`, add jitter, and cap attempts.`]})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`retryable `,_jsx(_components.code,{children:`5xx`})]}),_jsx(_components.td,{children:`The server could not confirm a final response.`}),_jsx(_components.td,{children:`Reconcile reads or replay the exact keyed mutation before creating new work.`})]})]})]}),`\n`,_jsx(CodeBlock,{filename:`Example problem`,numberOfLines:`8`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://docs.praxa.io/problems/authorization-failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"title\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Authorization failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`403`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"authorization_failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"detail\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The API key does not grant the required scope.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"retryable\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-result`,children:`Verify the result`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`Confirm the returned run ID matches the target.`}),`\n`,_jsx(_components.li,{children:`Continue run or event readback until terminal.`}),`\n`,_jsx(_components.li,{children:`Do not report cancellation while the projection remains running.`}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`retry-cleanup-and-production-use`,children:`Retry, cleanup, and production use`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Treat `,_jsx(_components.code,{children:`401`}),`, `,_jsx(_components.code,{children:`403`}),`, and `,_jsx(_components.code,{children:`409`}),` as authority or state signals, not generic retry prompts.`]}),`\n`,_jsxs(_components.li,{children:[`For `,_jsx(_components.code,{children:`429`}),` or retryable 5xx responses, follow server retry guidance and keep a bounded attempt budget.`]}),`\n`,_jsx(_components.li,{children:`Move the request into a trusted application backend before production; never ship the Praxa key in browser or mobile code.`}),`\n`,_jsx(_components.li,{children:`Revoke the disposable key, disable test webhooks, and erase disposable candidate data after validation.`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Continue with `,_jsx(_components.a,{href:`/api-playground/authentication`,children:`API authentication`}),`, the `,_jsx(_components.a,{href:`/api-playground/errors`,children:`failure and retry guide`}),`, and the `,_jsx(_components.a,{href:`/api-playground/coverage-and-testing`,children:`end-to-end coverage matrix`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}"]]},"mdxExtracts":{"tableOfContents":[{"title":"Authenticate safely","slug":"authenticate-safely","depth":2,"children":[]},{"title":"Request fields","slug":"request-fields","depth":2,"children":[]},{"title":"Runnable request examples","slug":"runnable-request-examples","depth":2,"children":[]},{"title":"What success means","slug":"what-success-means","depth":2,"children":[]},{"title":"Successful response","slug":"successful-response","depth":2,"children":[]},{"title":"Handle failures","slug":"handle-failures","depth":2,"children":[]},{"title":"Verify the result","slug":"verify-the-result","depth":2,"children":[]},{"title":"Retry, cleanup, and production use","slug":"retry-cleanup-and-production-use","depth":2,"children":[]}],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"200","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"13\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"apiVersion\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"v1\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"run_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"018f0000-0000-7000-8000-000000000001\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"requestId\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"request-id-demo-0001\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"mode\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"task\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"queued\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"createdAt\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-08-13T12:00:00.000Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"updatedAt\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-08-13T12:00:00.000Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"links\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"self\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"/v1/runs/018f0000-0000-7000-8000-000000000001\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"events\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"/v1/runs/018f0000-0000-7000-8000-000000000001/events\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Request durable-run cancellation","path":"/v1/runs/{id}/cancel","servers":[{"url":"https://api.praxa.io"}],"method":"post","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{"id":{"schema":[{"type":"string","description":"id path parameter.","required":true}]}}},"body":{}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"apiVersion":[{"type":"object","properties":{},"description":"apiVersion response field.","required":true}],"run_id":[{"type":"string","description":"run_id response field.","required":true}],"requestId":[{"type":"string","description":"requestId response field.","required":true}],"mode":[{"type":"object","properties":{},"description":"mode response field.","required":true}],"status":[{"type":"object","properties":{},"description":"Public lifecycle status. Internal cancelling and reconcile_required states project as running; reconciliation is not terminal.","required":true}],"createdAt":[{"type":"string","description":"createdAt response field.","required":true}],"updatedAt":[{"type":"string","description":"updatedAt response field.","required":true}],"completedAt":[{"type":"string","description":"completedAt response field."}],"pendingApproval":[{"type":"object","properties":{},"description":"Present only when Praxa can derive the exact recorded browser action and bind it to the stored action digest. The summary contains the exact recorded instruction or steps followed by the target host."}],"result":[{"type":"object","properties":{},"description":"Present only for schema-valid, digest-matched verified text."}],"failure":[{"type":"object","properties":{},"description":"failure response field."}],"links":[{"type":"object","properties":{},"description":"links response field.","required":true}]}}],"examples":{"example":{"value":{"apiVersion":{},"run_id":"\u003cstring>","requestId":"\u003cstring>","mode":{},"status":{},"createdAt":"\u003cstring>","updatedAt":"\u003cstring>","completedAt":"\u003cstring>","pendingApproval":{},"result":{},"failure":{},"links":{}}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"praxa-ai","siteName":"Praxa","title":"Request durable-run cancellation - Praxa","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-14T09:14:44.943Z","gitLastModified":"2026-08-14T09:14:00.000Z","originalFileLocation":"api-playground/execution-fabric/cancel-run.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=\"Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Praxa\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/praxa-ai/WolJUpkJ-x7JoGAk/_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/praxa-ai/WolJUpkJ-x7JoGAk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/praxa-ai/WolJUpkJ-x7JoGAk/_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/praxa-ai/WolJUpkJ-x7JoGAk/_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/praxa-ai/WolJUpkJ-x7JoGAk/_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/praxa-ai/WolJUpkJ-x7JoGAk/_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/praxa-ai/WolJUpkJ-x7JoGAk/_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/praxa-ai/WolJUpkJ-x7JoGAk/_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/praxa-ai/WolJUpkJ-x7JoGAk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Request durable-run cancellation - Praxa\">\u003cmeta data-mint-head property=\"og:description\" content=\"Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Praxa Developer Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://praxa-ai.mintlify.app/_mintlify/api/og/v2?division=Tasks%2C+runs+%26+usage\u0026amp;title=Request+durable-run+cancellation\u0026amp;description=Request+cancellation+of+a+durable+Praxa+run+and+reconcile+the+run+until+it+reaches+an+authoritative+terminal+outcome.\u0026amp;theme=11c08bf52210bcaea5147dfc\u0026amp;signature=193aee64ea9d497d596dc574b973cde64b102c9d146bb6cc76a89ee81842a1ef\">\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=\"Request durable-run cancellation - Praxa\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://praxa-ai.mintlify.app/_mintlify/api/og/v2?division=Tasks%2C+runs+%26+usage\u0026amp;title=Request+durable-run+cancellation\u0026amp;description=Request+cancellation+of+a+durable+Praxa+run+and+reconcile+the+run+until+it+reaches+an+authoritative+terminal+outcome.\u0026amp;theme=11c08bf52210bcaea5147dfc\u0026amp;signature=193aee64ea9d497d596dc574b973cde64b102c9d146bb6cc76a89ee81842a1ef\">\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/praxa-ai/WolJUpkJ-x7JoGAk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Praxa\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#909090\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-playground/execution-fabric/cancel-run.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.praxa.io/#organization\",\"name\":\"Praxa\",\"url\":\"https://docs.praxa.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/praxa-ai/A7sq1R7I_fyz1Wjb/logo-light.svg?fit=max\u0026auto=format\u0026n=A7sq1R7I_fyz1Wjb\u0026q=85\u0026s=00ae74f5749278ab3f33ae0e0d93c0ad\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.praxa.io#website\",\"name\":\"Praxa\",\"url\":\"https://docs.praxa.io\",\"publisher\":{\"@id\":\"https://docs.praxa.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run#webpage\",\"url\":\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run\",\"name\":\"Request durable-run cancellation\",\"description\":\"Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.\",\"dateModified\":\"2026-08-14T09:14:00.000Z\",\"isPartOf\":{\"@id\":\"https://docs.praxa.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Tasks, runs \u0026 usage\",\"item\":\"https://docs.praxa.io/api-playground/execution-fabric/execute-durable-task\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Request durable-run cancellation\",\"item\":\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run#apireference\",\"headline\":\"Request durable-run cancellation\",\"name\":\"Request durable-run cancellation\",\"description\":\"Request cancellation of a durable Praxa run and reconcile the run until it reaches an authoritative terminal outcome.\",\"url\":\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run\",\"mainEntityOfPage\":{\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/cancel-run#webpage\"},\"dateModified\":\"2026-08-14T09:14:00.000Z\",\"keywords\":\"Praxa Request durable-run cancellation, Praxa API Playground, Praxa API examples, API authentication\",\"publisher\":{\"@id\":\"https://docs.praxa.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.praxa.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Praxa\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Praxa","nav":{"global":null,"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":""}]},{"tab":"Execution Fabric","pages":[{"title":"Execution Fabric","href":"/fabric"}]},{"tab":"SDK","pages":[{"title":"SDK","href":"/sdk/overview"}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]},{"tab":"MCP Contracts","pages":[{"title":"MCP Contracts","href":"/mcp/overview"}]},{"tab":"Benchmarks \u0026 Research","pages":[{"title":"Benchmarks \u0026 Research","href":"/benchmarks/overview"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"tab":"API Playground","groups":[{"group":"Start here","pages":[{"title":"Praxa API Playground","sidebarTitle":"Playground overview","href":"/api-playground/overview"},{"title":"Authenticate Praxa API Playground requests","sidebarTitle":"Authentication","href":"/api-playground/authentication"},{"title":"Handle Praxa API errors, retries, and unknown outcomes","sidebarTitle":"Failures and retries","href":"/api-playground/errors"},{"title":"Praxa API Playground endpoint coverage and test plan","sidebarTitle":"Coverage and testing","href":"/api-playground/coverage-and-testing"}]},{"group":"Tasks, runs \u0026 usage","pages":[{"title":"Admit a minimal durable task","sidebarTitle":"Admit a minimal durable task","api":"POST /v1/execute","playground":"interactive","href":"/api-playground/execution-fabric/execute-durable-task"},{"title":"Read a tenant-owned run projection","sidebarTitle":"Read a tenant-owned run projection","api":"GET /v1/runs/{id}","playground":"interactive","href":"/api-playground/execution-fabric/get-run"},{"title":"Stream reconnectable durable-run events","sidebarTitle":"Stream reconnectable durable-run events","description":"Stream ordered Praxa run events over SSE, persist the numeric cursor, and resume safely after a disconnect.","api":"GET /v1/runs/{id}/events","playground":"interactive","href":"/api-playground/execution-fabric/stream-run-events"},{"title":"Request durable-run cancellation","sidebarTitle":"Request durable-run cancellation","api":"POST /v1/runs/{id}/cancel","playground":"interactive","href":"/api-playground/execution-fabric/cancel-run"},{"title":"Read tenant-scoped usage evidence","sidebarTitle":"Read tenant-scoped usage evidence","description":"Read tenant-scoped Praxa usage totals and UTC time buckets for a bounded reporting range and optional API key filter.","api":"GET /v1/usage","playground":"interactive","href":"/api-playground/execution-fabric/get-usage"}]},{"group":"Webhooks","pages":[{"title":"List webhook endpoints","sidebarTitle":"List webhook endpoints","api":"GET /v1/webhooks","playground":"interactive","href":"/api-playground/execution-fabric/list-webhook-endpoints"},{"title":"Create a webhook endpoint","sidebarTitle":"Create a webhook endpoint","api":"POST /v1/webhooks","playground":"interactive","href":"/api-playground/execution-fabric/create-webhook-endpoint"},{"title":"Update a webhook endpoint","sidebarTitle":"Update a webhook endpoint","api":"PATCH /v1/webhooks/{endpointId}","playground":"interactive","href":"/api-playground/execution-fabric/update-webhook-endpoint"},{"title":"Disable a webhook endpoint","sidebarTitle":"Disable a webhook endpoint","api":"DELETE /v1/webhooks/{endpointId}","playground":"interactive","href":"/api-playground/execution-fabric/delete-webhook-endpoint"},{"title":"List webhook deliveries","sidebarTitle":"List webhook deliveries","api":"GET /v1/webhook-deliveries","playground":"interactive","href":"/api-playground/execution-fabric/list-webhook-deliveries"},{"title":"Replay a webhook delivery","sidebarTitle":"Replay a webhook delivery","api":"POST /v1/webhook-deliveries/{deliveryId}/replay","playground":"interactive","href":"/api-playground/execution-fabric/replay-webhook-delivery"}]},{"group":"Memory candidates","pages":[{"title":"Create or replay a portable memory candidate","sidebarTitle":"Create or replay a portable memory candidate","api":"POST /v1/memory/records","playground":"interactive","href":"/api-playground/memory/create-memory-candidate"},{"title":"Lexically query one subject's candidates","sidebarTitle":"Lexically query one subject's candidates","api":"POST /v1/memory/query","playground":"interactive","href":"/api-playground/memory/query-memory-candidates"},{"title":"Export one subject's candidate and deletion history","sidebarTitle":"Export one subject's candidate and deletion history","api":"GET /v1/memory/export","playground":"interactive","href":"/api-playground/memory/export-memory-candidates"},{"title":"Hard-erase a candidate and return a content-free receipt","sidebarTitle":"Hard-erase a candidate and return a content-free receipt","api":"DELETE /v1/memory/records/{recordId}","playground":"interactive","href":"/api-playground/memory/delete-memory-candidate"}]}]}]},"basePath":"","title":"Request durable-run cancellation - Praxa","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"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"]}