Create a disposable personal workspace API key with exactly runs:write and runs:read. 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.
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":[],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-playground/execution-fabric/update-webhook-endpoint","slug":"/api-playground/execution-fabric/update-webhook-endpoint","pageMetadata":{"title":"Update a webhook endpoint","sidebarTitle":"Update a webhook endpoint","description":"Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.","keywords":["Praxa Update a webhook endpoint","Praxa API Playground","Praxa API examples","API authentication"],"api":"PATCH /v1/webhooks/{endpointId}","authMethod":"bearer","playground":"interactive","href":"/api-playground/execution-fabric/update-webhook-endpoint"},"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: \"Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.\"\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:`Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.`}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Availability:`}),` Partner preview. `,_jsx(_components.strong,{children:`Required scopes:`}),` `,_jsx(_components.code,{children:`runs:write`}),`, `,_jsx(_components.code,{children:`runs:read`}),`.`]})}),`\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`}),` and `,_jsx(_components.code,{children:`runs:read`}),`. 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:`endpointId`,type:`string`,required:true,id:`param-endpoint-id`,children:_jsx(_components.p,{children:`endpointId path parameter.`})}),`\n`,_jsx(ParamField,{body:`url`,type:`string`,id:`param-url`,children:_jsx(_components.p,{children:`url request field.`})}),`\n`,_jsx(ParamField,{body:`event_types`,type:`array\u003crun.accepted | run.started | run.progress | approval.required | approval.resolved | run.completed | run.failed | run.cancelled>`,id:`param-event-types`,children:_jsx(_components.p,{children:`event_types request field.`})}),`\n`,_jsx(ParamField,{body:`description`,type:`string | null`,id:`param-description`,children:_jsx(_components.p,{children:`description request field.`})}),`\n`,_jsx(ParamField,{body:`status`,type:`active | disabled`,id:`param-status`,children:_jsx(_components.p,{children:`status request field.`})}),`\n`,_jsx(Heading,{level:`2`,id:`runnable-request-examples`,children:`Runnable request examples`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`6`,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:`6`,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:` PATCH`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'https://api.praxa.io/v1/webhooks/endpoint-demo-0001'`}),_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(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"url\": \"https://example.com/praxa\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Node.js`,numberOfLines:`13`,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:`13`,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/webhooks/endpoint-demo-0001\"`}),_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:` \"PATCH\"`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://example.com/praxa\"`})]}),`\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`,_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:`23`,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:`23`,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({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://example.com/praxa\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}).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/webhooks/endpoint-demo-0001\"`}),_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:`\"PATCH\"`}),_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 is the updated endpoint metadata; no signing secret is returned.`]}),`\n`,_jsx(Heading,{level:`2`,id:`successful-response`,children:`Successful response`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`200`}),` — Updated endpoint metadata.`]}),`\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:`id`,type:`string`,required:true,id:`param-id`,children:_jsx(_components.p,{children:`id response field.`})}),`\n`,_jsx(ResponseField,{name:`url`,type:`string`,required:true,id:`param-url-1`,children:_jsx(_components.p,{children:`url response field.`})}),`\n`,_jsx(ResponseField,{name:`event_types`,type:`array\u003crun.accepted | run.started | run.progress | approval.required | approval.resolved | run.completed | run.failed | run.cancelled>`,required:true,id:`param-event-types-1`,children:_jsx(_components.p,{children:`event_types response field.`})}),`\n`,_jsx(ResponseField,{name:`description`,type:`string`,id:`param-description-1`,children:_jsx(_components.p,{children:`description response field.`})}),`\n`,_jsx(ResponseField,{name:`status`,type:`active | disabled`,required:true,id:`param-status-1`,children:_jsx(_components.p,{children:`status response field.`})}),`\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`,`\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:`Read the endpoint list and confirm the changed fields.`}),`\n`,_jsx(_components.li,{children:`Trigger only an event allowed by the new filter.`}),`\n`,_jsx(_components.li,{children:`Confirm a foreign endpoint ID fails closed.`}),`\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":"Update a webhook endpoint","sidebarTitle":"Update a webhook endpoint","description":"Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.","keywords":["Praxa Update a webhook endpoint","Praxa API Playground","Praxa API examples","API authentication"],"api":"PATCH /v1/webhooks/{endpointId}","authMethod":"bearer","playground":"interactive","href":"/api-playground/execution-fabric/update-webhook-endpoint"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[417,421,"Example,ResponseFiel"],[707,722,"Example)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingM"],[26720,28782,"_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`200`,numberOfLines:`11`"],[29075,29094,"11`,children:[_jsx(_"],[29366,29380,"apiVersion\"`}),_jsx("],[29546,29615,"v1\"`}),_jsx(_compone"],[29832,29855,"id\"`}),_jsx(_compone"],[30013,30037,"018f0000-0000-7000-8000-000000000001\"`})"],[30268,30291,"url\"`}),_jsx(_compon"],[30406,30822,""],[30866,30901,"https://example.com/praxa\"`}),_jsx(_comp"],[31121,31136,"event_types\"`}),_jsx"],[31216,31457,"[`})]}),`\n`,_jsx(_co"],[31498,31794,"_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"run.accepted\"`})}),`\n`,_jsx(_comp"],[31915,33993," ],`})}),`\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:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"active\"`}),_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:` \"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\"`})]}),`\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:`Read the endpoint list and confirm the changed fields.`}),`\n`,_jsx(_components.li,{children:`Trigger only an event allowed by the new filter.`}),`\n`,_jsx(_components.li,{children:`Confirm a foreign endpoint ID fails closed.`}),`\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=\"11\">\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\"> \"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\"> \"url\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"https://example.com/praxa\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"event_types\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"run.accepted\"\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:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"active\"\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>\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":"Update a webhook endpoint","path":"/v1/webhooks/{endpointId}","servers":[{"url":"https://api.praxa.io"}],"method":"patch","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":{"endpointId":{"schema":[{"type":"string","description":"endpointId path parameter.","required":true}]}}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"url":[{"type":"string","description":"url request field."}],"event_types":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"event_types request field."}],"description":[{"type":"object","properties":{},"description":"description request field."}],"status":[{"type":"object","properties":{},"description":"status request field."}]}}],"examples":{"example":{"value":{"url":"\u003cstring>","event_types":[{}],"description":{},"status":{}}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"apiVersion":[{"type":"object","properties":{},"description":"apiVersion response field.","required":true}],"id":[{"type":"string","description":"id response field.","required":true}],"url":[{"type":"string","description":"url response field.","required":true}],"event_types":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"event_types response field.","required":true}],"description":[{"type":"string","description":"description response field."}],"status":[{"type":"object","properties":{},"description":"status response field.","required":true}],"createdAt":[{"type":"string","description":"createdAt response field.","required":true}],"updatedAt":[{"type":"string","description":"updatedAt response field.","required":true}]}}],"examples":{"example":{"value":{"apiVersion":{},"id":"\u003cstring>","url":"\u003cstring>","event_types":[{}],"description":"\u003cstring>","status":{},"createdAt":"\u003cstring>","updatedAt":"\u003cstring>"}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"praxa-ai","siteName":"Praxa","title":"Update a webhook endpoint - Praxa","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-14T09:14:44.924Z","gitLastModified":"2026-08-14T09:14:00.000Z","originalFileLocation":"api-playground/execution-fabric/update-webhook-endpoint.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=\"Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.\">\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=\"Update a webhook endpoint - Praxa\">\u003cmeta data-mint-head property=\"og:description\" content=\"Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.\">\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/update-webhook-endpoint\">\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=Webhooks\u0026amp;title=Update+a+webhook+endpoint\u0026amp;description=Update+an+existing+Praxa+webhook+URL%2C+event+filter%2C+or+enabled+state+with+a+strict+non-empty+request.\u0026amp;theme=11c08bf52210bcaea5147dfc\u0026amp;signature=6659f3add7a8cc2f3cdb2c94d8a7f951832bad1ba10007b78601b516cfe8b973\">\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 a webhook endpoint - Praxa\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://praxa-ai.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Update+a+webhook+endpoint\u0026amp;description=Update+an+existing+Praxa+webhook+URL%2C+event+filter%2C+or+enabled+state+with+a+strict+non-empty+request.\u0026amp;theme=11c08bf52210bcaea5147dfc\u0026amp;signature=6659f3add7a8cc2f3cdb2c94d8a7f951832bad1ba10007b78601b516cfe8b973\">\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/update-webhook-endpoint\">\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/update-webhook-endpoint.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/update-webhook-endpoint#webpage\",\"url\":\"https://docs.praxa.io/api-playground/execution-fabric/update-webhook-endpoint\",\"name\":\"Update a webhook endpoint\",\"description\":\"Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.\",\"dateModified\":\"2026-08-14T09:14:00.000Z\",\"isPartOf\":{\"@id\":\"https://docs.praxa.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/update-webhook-endpoint#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/update-webhook-endpoint#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Webhooks\",\"item\":\"https://docs.praxa.io/api-playground/execution-fabric/list-webhook-endpoints\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update a webhook endpoint\",\"item\":\"https://docs.praxa.io/api-playground/execution-fabric/update-webhook-endpoint\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/update-webhook-endpoint#apireference\",\"headline\":\"Update a webhook endpoint\",\"name\":\"Update a webhook endpoint\",\"description\":\"Update an existing Praxa webhook URL, event filter, or enabled state with a strict non-empty request.\",\"url\":\"https://docs.praxa.io/api-playground/execution-fabric/update-webhook-endpoint\",\"mainEntityOfPage\":{\"@id\":\"https://docs.praxa.io/api-playground/execution-fabric/update-webhook-endpoint#webpage\"},\"dateModified\":\"2026-08-14T09:14:00.000Z\",\"keywords\":\"Praxa Update a webhook endpoint, 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","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","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","description":"Create a Praxa webhook endpoint, capture its one-time signing secret, and verify signed delivery with least-privilege scopes.","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","description":"Disable a tenant-owned Praxa webhook endpoint and verify that no later event delivery is attempted.","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":"Update a webhook endpoint - 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"]}