Updates a stack owned by the manager identified by your API key.
Every accepted update creates a new complete revision.
Try it saves a real update to staging. Every accepted update creates a
revision. Use a stack ID from your own account.
Omitted fields retain their values from the current saved revision.
A supplied allocation replaces the entire target list.
Omitting a token from that supplied list removes its allocation.
The replacement still needs weights totaling 10000.An empty object is invalid.
Unknown fields and null field values are invalid.
200 OK returns the complete stack response with the new current_revision_id.
The response includes the new quoted revision ID in ETag.
It also includes X-Request-Id.The saved configuration is visible immediately.
An update does not trigger an immediate trade.
See schedules for preset meanings and execution boundaries.
Every successfully saved update creates a revision.
This includes an update that repeats the current values.Concurrent updates are saved in sequence.
For each supplied field, the last successfully saved value wins.
A delayed older request can overwrite a newer request that was saved first.
Omitted fields are copied from the current configuration when the update is saved.Neither If-Match nor Idempotency-Key is required or enforced for this endpoint.
Sending them does not protect against overwrites or deduplicate a retry.
A retried PATCH is a new update. If a response is lost, read the stack before
deciding whether to send another update. Use one ordered stream of updates per
stack when your client needs to preserve its intended order.
UUID of a stack owned by this manager. Missing or unowned stacks return 404. Invalid UUIDs return 400.
Body
application/json
Supply at least one of name, allocation, or schedule. Omitted fields retain their saved values. A supplied allocation replaces the full target list. Unknown fields and null values are invalid. The request body must not exceed 262144 bytes.
Must contain non-whitespace text and must not contain U+0000. Accepted names retain their exact whitespace. No separate name-length limit applies within the body size limit.
The complete target allocation, with at most 10 entries including zero-weight entries. Weights must total exactly 10000. Duplicate token identities are rejected after lowercase normalization. When supplied in PATCH, this list replaces the full saved allocation. Omitted tokens are removed.
Must contain non-whitespace text and must not contain U+0000. Accepted names retain their exact whitespace. No separate name-length limit applies within the body size limit.
Schedule configuration only. Saving a preset does not execute trades.
Show child attributes
Example:
{ "preset": "daily" }
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"MyStacks","description":"Portfolio infrastructure for tokenised finance. Explore the MyStacks product and architecture.","colors":{"primary":"#0F766E","light":"#5EEAD4","dark":"#115E59"},"logo":{"light":"https://mintcdn.com/mystacks/ymy-epKFyNGe1l-w/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=ymy-epKFyNGe1l-w\u0026q=85\u0026s=6c8a2d336c62be024d562c517a5695ef","dark":"https://mintcdn.com/mystacks/ymy-epKFyNGe1l-w/assets/logo-dark.svg?fit=max\u0026auto=format\u0026n=ymy-epKFyNGe1l-w\u0026q=85\u0026s=d4c28132f7c5c3d63395dda5e923f4bb"},"favicon":"https://mintcdn.com/mystacks/ymy-epKFyNGe1l-w/assets/favicon.svg?fit=max\u0026auto=format\u0026n=ymy-epKFyNGe1l-w\u0026q=85\u0026s=9e10b079d01dd9317775e39f81ed8c79","api":{"playground":{"display":"interactive","proxy":true},"examples":{"languages":["bash","javascript","python"],"prefill":true}},"appearance":{"default":"light"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"mystacks","hasAudioNarration":false,"actualSubdomain":"mystacks","customDomains":["docs.mystacks.ai"],"gitSource":{"type":"github","owner":"hsignals","repo":"mystacks-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6abb51e6f6575acf5d607e2d","collectionId":"73d04ac6-007d-4d6d-8d1b-bef7dade6e25","liveDeploymentHistoryId":"6abb51e6f6575acf5d607e2d","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6abb51e6f6575acf5d607e2d","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Documentation","count":11},{"language":"default","tag":"API Reference","count":8},{"language":"default","tag":"Manager API","count":4},{"language":"default","tag":"Stacks","count":4},{"language":"default","tag":"Build with MyStacks","count":4},{"language":"default","tag":"Architecture","count":3},{"language":"default","tag":"Get started","count":3},{"language":"default","tag":"Reference","count":1}]},"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":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/stacks/update","slug":"/api-reference/stacks/update","pageMetadata":{"title":"Update a stack","description":"Save changes to a stack as a new revision.","openapi":"PATCH /manager/stacks/{id}","href":"/api-reference/stacks/update"},"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: \"Save changes to a stack as a new revision.\"\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`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Note,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Updates a stack owned by the manager identified by your API key.\nEvery accepted update creates a new complete revision.`}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Try it saves a real update to staging. Every accepted update creates a\nrevision. Use a stack ID from your own account.`})}),`\n`,_jsxs(_components.p,{children:[`Omitted fields retain their values from the current saved revision.\nA supplied `,_jsx(_components.code,{children:`allocation`}),` replaces the `,_jsx(_components.strong,{children:`entire`}),` target list.\nOmitting a token from that supplied list removes its allocation.\nThe replacement still needs weights totaling `,_jsx(_components.code,{children:`10000`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`An empty object is invalid.\nUnknown fields and `,_jsx(_components.code,{children:`null`}),` field values are invalid.`]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`200 OK`}),` returns the complete `,_jsx(_components.a,{href:`/api-reference/stack-configuration#stack-response`,children:`stack response`}),` with the new `,_jsx(_components.code,{children:`current_revision_id`}),`.\nThe response includes the new quoted revision ID in `,_jsx(_components.code,{children:`ETag`}),`.\nIt also includes `,_jsx(_components.code,{children:`X-Request-Id`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`The saved configuration is visible immediately.\nAn update does not trigger an immediate trade.\nSee `,_jsx(_components.a,{href:`/api-reference/stack-configuration#schedules`,children:`schedules`}),` for preset meanings and execution boundaries.`]}),`\n`,_jsx(Heading,{level:`2`,id:`revisions-and-concurrent-updates`,children:`Revisions and concurrent updates`}),`\n`,_jsx(_components.p,{children:`Every successfully saved update creates a revision.\nThis includes an update that repeats the current values.`}),`\n`,_jsx(_components.p,{children:`Concurrent updates are saved in sequence.\nFor each supplied field, the last successfully saved value wins.\nA delayed older request can overwrite a newer request that was saved first.\nOmitted fields are copied from the current configuration when the update is saved.`}),`\n`,_jsxs(_components.p,{children:[`Neither `,_jsx(_components.code,{children:`If-Match`}),` nor `,_jsx(_components.code,{children:`Idempotency-Key`}),` is required or enforced for this endpoint.\nSending them does not protect against overwrites or deduplicate a retry.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`A retried PATCH is a new update. If a response is lost, read the stack before\ndeciding whether to send another update. Use one ordered stream of updates per\nstack when your client needs to preserve its intended order.`})}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`Cause`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_request`})}),_jsx(_components.td,{children:`Invalid stack UUID, malformed JSON, empty patch, or invalid configuration.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`not_found`})}),_jsx(_components.td,{children:`Stack is missing or belongs to another manager.`})]})]})]}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/api-reference/errors`,children:`shared errors`}),` for authentication, body size, and service failures.`]})]})}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 stack","description":"Save changes to a stack as a new revision.","openapi":"PATCH /manager/stacks/{id}","href":"/api-reference/stacks/update"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Revisions and concurrent updates","slug":"revisions-and-concurrent-updates","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"updateStack","tags":["Stacks"],"summary":"Update a stack","description":"Save changes to a stack as a new revision.","requestBody":"6418ae06-f444-46eb-8368-1c1a37a96938","responses":{"200":"68cdb999-bfbe-44d1-a448-19848c6a3f47","400":"c5097902-34fd-459d-ac38-b2d951561193","401":"12014475-ddb8-4ab2-be85-8ab6cd5dfdef","404":"f5e5a288-ce49-4abe-9d79-d9918f2e7d08","413":"d9a1e7cb-cec9-475b-b809-b47f3da9c8a0","429":"ce9cb69b-24a3-4e92-a6b3-e91959458975","500":"311723bc-c722-4a8c-a4d4-5e87d0e500a4","503":"d3180ad4-74f9-4d6f-9d7c-99671633af44"},"method":"patch","type":"path","servers":["c0783c4b-1aae-477c-b2f7-364c35e704fd"],"security":["295fb731-5c20-4263-840b-1519b28f8154"],"path":"/manager/stacks/{id}","baseUrlOptions":["https://api-staging.mystacks.ai"],"title":"Update a stack","codeSamples":[],"requestExampleLanguages":["bash","javascript","python"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.name":"Updated example stack","body.schedule.preset":"weekly"}]},"dependencies":{"parameters":{"8a572ed3-f99c-495d-adf7-bbf272cf311d":{"name":"id","in":"path","required":true,"description":"UUID of a stack owned by this manager. Missing or unowned stacks return 404. Invalid UUIDs return 400.","schema":{"type":"string","format":"uuid","isRequired":true,"description":"UUID of a stack owned by this manager. Missing or unowned stacks return 404. Invalid UUIDs return 400.","uniqueKey":"","typeLabel":"string\u003cuuid>"},"example":"bf4bc5e9-0d9e-454c-bc1c-30abc120b074"},"b790ccbc-143e-4622-9105-363a4fc27439":{"name":"X-Request-Id","in":"header","required":false,"description":"Optional request trace ID. A nonempty value is echoed in the response. Missing or empty values cause a UUID to be generated.","schema":{"type":"string","isRequired":false,"description":"Optional request trace ID. A nonempty value is echoed in the response. Missing or empty values cause a UUID to be generated.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":1,"pattern":"^(?![\\s\\S]*\\u0000)[\\s\\S]*\\S[\\s\\S]*$","description":"Must contain non-whitespace text and must not contain U+0000. Accepted names retain their exact whitespace. No separate name-length limit applies within the body size limit.","example":"Example stack","uniqueKey":"name","typeLabel":"string"},"allocation":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":false,"properties":{"token_address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$","description":"A token from the 32-asset Robinhood Chain mainnet whitelist (chain ID 4663). Use a lowercase or correctly checksummed address. The pattern checks address syntax only. The server also enforces checksum validity and whitelist membership before normalizing identity to lowercase. USDG can take up to 100% of an allocation. See [supported assets](/api-reference/assets) for all accepted addresses.","example":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","isRequired":true,"uniqueKey":"allocation.items.[INDEX].token_address","typeLabel":"string"},"weight_bps":{"type":"integer","minimum":0,"maximum":10000,"description":"Target weight in basis points. 10000 means 100%. Zero is allowed. All allocation weights together must total exactly 10000.","example":6000,"isRequired":true,"uniqueKey":"allocation.items.[INDEX].weight_bps","typeLabel":"integer"}},"required":["token_address","weight_bps"],"example":{"token_address":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","weight_bps":6000},"uniqueKey":"allocation.items.[INDEX]","typeLabel":"object"},"description":"The complete target allocation, with at most 10 entries including zero-weight entries. Weights must total exactly 10000. Duplicate token identities are rejected after lowercase normalization. When supplied in PATCH, this list replaces the full saved allocation. Omitted tokens are removed.","example":[{"token_address":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","weight_bps":6000},{"token_address":"0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec","weight_bps":4000}],"uniqueKey":"allocation","typeLabel":"object[]"},"schedule":{"type":"object","additionalProperties":false,"properties":{"preset":{"type":"string","enum":["hourly","daily","weekly","monthly"],"description":"Saved UTC schedule preset. Boundaries are minute zero each hour, 00:00 each day, 00:00 each Monday, or 00:00 on the first day of each month. Scheduled rebalances become due at these boundaries. Custom schedules and timezone fields are invalid.","example":"daily","isRequired":true,"uniqueKey":"schedule.preset","typeLabel":"enum\u003cstring>"}},"required":["preset"],"description":"Schedule configuration only. Saving a preset does not execute trades.","example":{"preset":"daily"},"uniqueKey":"schedule","typeLabel":"object"}},"required":[],"minProperties":1,"description":"Supply at least one of name, allocation, or schedule. Omitted fields retain their saved values. A supplied allocation replaces the full target list. Unknown fields and null values are invalid. The request body must not exceed 262144 bytes.","example":{"name":"Updated example stack","schedule":{"preset":"weekly"}},"uniqueKey":"","typeLabel":"object"},"example":{"name":"Updated example stack","schedule":{"preset":"weekly"}},"examples":{"Example":{"title":"Example","value":{"name":"Updated example stack","schedule":{"preset":"weekly"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"68cdb999-bfbe-44d1-a448-19848c6a3f47":{"description":"Complete saved configuration with the new revision and ETag.","headers":{"X-Request-Id":{"description":"Request trace ID. A nonempty incoming X-Request-Id is reused. If missing or empty, the server generates a UUID. Error request_id values match this header.","schema":{"type":"string"},"example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"ETag":{"description":"Current revision ID enclosed in double quotes. PATCH does not require If-Match and does not enforce conditional updates.","schema":{"type":"string","pattern":"^\"[0-9a-fA-F-]{36}\"$"},"example":"\"e137435f-83ce-4b3c-86ae-75d6462487b6\""}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string","format":"uuid","description":"Stable stack identifier.","example":"bf4bc5e9-0d9e-454c-bc1c-30abc120b074","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"current_revision_id":{"type":"string","format":"uuid","description":"Identifier of this complete saved configuration revision.","example":"e137435f-83ce-4b3c-86ae-75d6462487b6","isRequired":true,"uniqueKey":"current_revision_id","typeLabel":"string\u003cuuid>"},"name":{"type":"string","minLength":1,"pattern":"^(?![\\s\\S]*\\u0000)[\\s\\S]*\\S[\\s\\S]*$","description":"Must contain non-whitespace text and must not contain U+0000. Accepted names retain their exact whitespace. No separate name-length limit applies within the body size limit.","example":"Example stack","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"allocation":{"type":"array","minItems":1,"maxItems":10,"items":{"type":"object","additionalProperties":false,"properties":{"token_address":{"type":"string","pattern":"^0x[0-9a-f]{40}$","enum":["0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec","0x117cc2133c37b721f49de2a7a74833232b3b4c0c","0x4a0e65a3eccec6dbe60ae065f2e7bb85fae35eea","0xccee82fe024c36fa15e1005ede3e9e4787e23d09","0x05b37fb53a299a1b874a619e1c4c404d52c36f4c","0xff080c8ce2e5feadaca0da81314ae59d232d4afd","0xa30fa36db767ad9ed3f7a60fc79526fb4d56d344","0xec262a75e413fafd0df80480274532c79d42da09","0xd5f3879160bc7c32ebb4dc785f8a4f505888de68","0x1b0e319c6a659f002271b69db8a7df2f911c153e","0x12f190a9f9d7d37a250758b26824b97ce941bf54","0xaf3d76f1834a1d425780943c99ea8a608f8a93f9","0x58ffe4a942d3885baa22d7520691f611ef09e7aa","0x86923f96303d656e4aa86d9d42d1e57ad2023fdc","0x2e0847e8910a9732eb3fb1bb4b70a580adad4fe3","0x4ea005168d7f09a7a0ba9d1def21a479950e44c2","0xe93237c50d904957cf27e7b1133b510c669c2e74","0x322f0929c4625ed5bad873c95208d54e1c003b2d","0xc0d6457c16cc70d6790dd43521c899c87ce02f35","0x9e7abd3c9139d14e4c86dce0e455aab7a0c2fb3e","0xb90a19ff0af67f7779aff50a882a9cff42446400","0xc72b96e0e48ecd4dc75e1e45396e26300bc39681","0x894e1ec2d74ffe5aef8dc8a9e84686accb964f2a","0x1d11f0496982706c5e14a514d4e79f2e6bde4516","0x411efb0e7f985935daec3d4c3ebaea0d0ad7d89f","0x5e81213613b6b86eab4c6c50d718d34359459786","0xc9a981fee1f9dec688bb123ccdecc63d0debfc4e","0x6330d8c3178a418788df01a47479c0ce7ccf450b","0xdf0992e440dd0be65bd8439b609d6d4366bf1cb5","0x48e39e56acdba37b09020c0b734a613c9a2f100a","0xcec185eb182c47d1ba1efc84e6959e18cd620be4","0x5fc5360d0400a0fd4f2af552add042d716f1d168"],"description":"A supported allocation token address normalized to lowercase. See [supported assets](/api-reference/assets) for names and symbols.","example":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","isRequired":true,"uniqueKey":"allocation.items.[INDEX].token_address","typeLabel":"enum\u003cstring>"},"weight_bps":{"type":"integer","minimum":0,"maximum":10000,"description":"Target weight in basis points. 10000 means 100%. Zero is allowed. All allocation weights together must total exactly 10000.","example":6000,"isRequired":true,"uniqueKey":"allocation.items.[INDEX].weight_bps","typeLabel":"integer"}},"required":["token_address","weight_bps"],"example":{"token_address":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","weight_bps":6000},"uniqueKey":"allocation.items.[INDEX]","typeLabel":"object"},"description":"Complete saved allocation. Addresses are lowercase, unique, and ordered by token address. Weights total exactly 10000.","example":[{"token_address":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","weight_bps":6000},{"token_address":"0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec","weight_bps":4000}],"isRequired":true,"uniqueKey":"allocation","typeLabel":"object[]"},"schedule":{"type":"object","additionalProperties":false,"properties":{"preset":{"type":"string","enum":["hourly","daily","weekly","monthly"],"description":"Saved UTC schedule preset. Boundaries are minute zero each hour, 00:00 each day, 00:00 each Monday, or 00:00 on the first day of each month. Scheduled rebalances become due at these boundaries. Custom schedules and timezone fields are invalid.","example":"daily","isRequired":true,"uniqueKey":"schedule.preset","typeLabel":"enum\u003cstring>"}},"required":["preset"],"description":"Schedule configuration only. Saving a preset does not execute trades.","example":{"preset":"daily"},"isRequired":true,"uniqueKey":"schedule","typeLabel":"object"}},"required":["id","current_revision_id","name","allocation","schedule"],"description":"Current complete configuration. No subscriber, balance, performance, or execution data is included.","example":{"id":"bf4bc5e9-0d9e-454c-bc1c-30abc120b074","current_revision_id":"e137435f-83ce-4b3c-86ae-75d6462487b6","name":"Example stack","allocation":[{"token_address":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","weight_bps":6000},{"token_address":"0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec","weight_bps":4000}],"schedule":{"preset":"daily"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"bf4bc5e9-0d9e-454c-bc1c-30abc120b074","current_revision_id":"e137435f-83ce-4b3c-86ae-75d6462487b6","name":"Updated example stack","allocation":[{"token_address":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","weight_bps":6000},{"token_address":"0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec","weight_bps":4000}],"schedule":{"preset":"weekly"}},"examples":{"Example":{"title":"Example","value":{"id":"bf4bc5e9-0d9e-454c-bc1c-30abc120b074","current_revision_id":"e137435f-83ce-4b3c-86ae-75d6462487b6","name":"Updated example stack","allocation":[{"token_address":"0x117cc2133c37b721f49de2a7a74833232b3b4c0c","weight_bps":6000},{"token_address":"0xd0601ce157db5bdc3162bbac2a2c8af5320d9eec","weight_bps":4000}],"schedule":{"preset":"weekly"}}}},"exampleType":"examples"}},"exampleType":"examples"},"c5097902-34fd-459d-ac38-b2d951561193":{"description":"Invalid JSON, configuration, pagination, stack UUID, or creation key.","headers":{"X-Request-Id":{"description":"Request trace ID. A nonempty incoming X-Request-Id is reused. If missing or empty, the server generates a UUID. Error request_id values match this header.","schema":{"type":"string"},"example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","not_found","conflict","payload_too_large","rate_limited","internal_error","service_unavailable"],"description":"Machine-readable error category.","example":"invalid_request","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Public-safe explanation. No field-by-field validation details are returned.","example":"invalid request body","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Matches the response X-Request-Id header. This can be a caller-supplied string, not only a UUID.","example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["code","message","request_id"],"example":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"uniqueKey":"","typeLabel":"object"},"example":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"examples":{"Example":{"title":"Example","value":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}}},"exampleType":"examples"}},"exampleType":"examples"},"12014475-ddb8-4ab2-be85-8ab6cd5dfdef":{"description":"Missing or invalid manager credential, or verified identity lacks required identity fields or a canonical lowercase UUID external ID.","headers":{"X-Request-Id":{"description":"Request trace ID. A nonempty incoming X-Request-Id is reused. If missing or empty, the server generates a UUID. Error request_id values match this header.","schema":{"type":"string"},"example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","not_found","conflict","payload_too_large","rate_limited","internal_error","service_unavailable"],"description":"Machine-readable error category.","example":"invalid_request","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Public-safe explanation. No field-by-field validation details are returned.","example":"invalid request body","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Matches the response X-Request-Id header. This can be a caller-supplied string, not only a UUID.","example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["code","message","request_id"],"example":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"uniqueKey":"","typeLabel":"object"},"example":{"code":"unauthorized","message":"invalid manager credential","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"examples":{"Example":{"title":"Example","value":{"code":"unauthorized","message":"invalid manager credential","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}}},"exampleType":"examples"}},"exampleType":"examples"},"f5e5a288-ce49-4abe-9d79-d9918f2e7d08":{"description":"The stack does not exist or belongs to another manager.","headers":{"X-Request-Id":{"description":"Request trace ID. A nonempty incoming X-Request-Id is reused. If missing or empty, the server generates a UUID. Error request_id values match this header.","schema":{"type":"string"},"example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","not_found","conflict","payload_too_large","rate_limited","internal_error","service_unavailable"],"description":"Machine-readable error category.","example":"invalid_request","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Public-safe explanation. No field-by-field validation details are returned.","example":"invalid request body","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Matches the response X-Request-Id header. This can be a caller-supplied string, not only a UUID.","example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["code","message","request_id"],"example":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"uniqueKey":"","typeLabel":"object"},"example":{"code":"not_found","message":"stack not found","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"examples":{"Example":{"title":"Example","value":{"code":"not_found","message":"stack not found","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}}},"exampleType":"examples"}},"exampleType":"examples"},"d9a1e7cb-cec9-475b-b809-b47f3da9c8a0":{"description":"Request body exceeds 262144 bytes.","headers":{"X-Request-Id":{"description":"Request trace ID. A nonempty incoming X-Request-Id is reused. If missing or empty, the server generates a UUID. Error request_id values match this header.","schema":{"type":"string"},"example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","not_found","conflict","payload_too_large","rate_limited","internal_error","service_unavailable"],"description":"Machine-readable error category.","example":"invalid_request","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Public-safe explanation. No field-by-field validation details are returned.","example":"invalid request body","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Matches the response X-Request-Id header. This can be a caller-supplied string, not only a UUID.","example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["code","message","request_id"],"example":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"uniqueKey":"","typeLabel":"object"},"example":{"code":"payload_too_large","message":"request body exceeds 262144 bytes","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"examples":{"Example":{"title":"Example","value":{"code":"payload_too_large","message":"request body exceeds 262144 bytes","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}}},"exampleType":"examples"}},"exampleType":"examples"},"ce9cb69b-24a3-4e92-a6b3-e91959458975":{"description":"API-key verification was rate limited. No fixed quota or Retry-After header contract is published.","headers":{"X-Request-Id":{"description":"Request trace ID. A nonempty incoming X-Request-Id is reused. If missing or empty, the server generates a UUID. Error request_id values match this header.","schema":{"type":"string"},"example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","not_found","conflict","payload_too_large","rate_limited","internal_error","service_unavailable"],"description":"Machine-readable error category.","example":"invalid_request","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Public-safe explanation. No field-by-field validation details are returned.","example":"invalid request body","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Matches the response X-Request-Id header. This can be a caller-supplied string, not only a UUID.","example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["code","message","request_id"],"example":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"uniqueKey":"","typeLabel":"object"},"example":{"code":"rate_limited","message":"manager verification rate limited","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"examples":{"Example":{"title":"Example","value":{"code":"rate_limited","message":"manager verification rate limited","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}}},"exampleType":"examples"}},"exampleType":"examples"},"311723bc-c722-4a8c-a4d4-5e87d0e500a4":{"description":"Unexpected internal failure or conflicting saved manager identity binding.","headers":{"X-Request-Id":{"description":"Request trace ID. A nonempty incoming X-Request-Id is reused. If missing or empty, the server generates a UUID. Error request_id values match this header.","schema":{"type":"string"},"example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","not_found","conflict","payload_too_large","rate_limited","internal_error","service_unavailable"],"description":"Machine-readable error category.","example":"invalid_request","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Public-safe explanation. No field-by-field validation details are returned.","example":"invalid request body","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Matches the response X-Request-Id header. This can be a caller-supplied string, not only a UUID.","example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["code","message","request_id"],"example":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"uniqueKey":"","typeLabel":"object"},"example":{"code":"internal_error","message":"an unexpected error occurred","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"examples":{"Example":{"title":"Example","value":{"code":"internal_error","message":"an unexpected error occurred","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}}},"exampleType":"examples"}},"exampleType":"examples"},"d3180ad4-74f9-4d6f-9d7c-99671633af44":{"description":"API-key verification timed out or is unavailable, or the HTTP request exceeded its configured deadline (30 seconds by default). Failed verification grants no access and makes no stack changes. After a request timeout, its handler can continue and save a change. Check the result before retrying a write.","headers":{"X-Request-Id":{"description":"Request trace ID. A nonempty incoming X-Request-Id is reused. If missing or empty, the server generates a UUID. Error request_id values match this header.","schema":{"type":"string"},"example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"code":{"type":"string","enum":["invalid_request","unauthorized","not_found","conflict","payload_too_large","rate_limited","internal_error","service_unavailable"],"description":"Machine-readable error category.","example":"invalid_request","isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Public-safe explanation. No field-by-field validation details are returned.","example":"invalid request body","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Matches the response X-Request-Id header. This can be a caller-supplied string, not only a UUID.","example":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"}},"required":["code","message","request_id"],"example":{"code":"invalid_request","message":"invalid request body","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"uniqueKey":"","typeLabel":"object"},"example":{"code":"service_unavailable","message":"manager verification is unavailable","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"},"examples":{"Example":{"title":"Example","value":{"code":"service_unavailable","message":"manager verification is unavailable","request_id":"d28e1ad4-2ca8-4f35-b590-8bf3b53abc81"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"295fb731-5c20-4263-840b-1519b28f8154":{"ManagerApiKey":{"type":"http","scheme":"bearer","description":"Enter the API key supplied by MyStacks. The playground adds the `Authorization: Bearer` prefix for you.","scopes":[]}}},"servers":{"c0783c4b-1aae-477c-b2f7-364c35e704fd":{"url":"https://api-staging.mystacks.ai","description":"MyStacks staging backend"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Enter the API key supplied by MyStacks. The playground adds the `Authorization: Bearer` prefix for you.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Enter the API key supplied by MyStacks. The playground adds the `Authorization: Bearer` prefix for you.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"ManagerApiKey","name":"Authorization"}],"title":"ManagerApiKey"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"mystacks","siteName":"MyStacks","title":"Update a stack - MyStacks","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-26T16:06:32.539Z","originalFileLocation":"api-reference/stacks/update.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=\"light\"}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=\"Save changes to a stack as a new revision.\">\u003cmeta data-mint-head name=\"application-name\" content=\"MyStacks\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/mystacks/uZzODQYI3p6r_sZZ/_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/mystacks/uZzODQYI3p6r_sZZ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/mystacks/uZzODQYI3p6r_sZZ/_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/mystacks/uZzODQYI3p6r_sZZ/_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/mystacks/uZzODQYI3p6r_sZZ/_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/mystacks/uZzODQYI3p6r_sZZ/_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/mystacks/uZzODQYI3p6r_sZZ/_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/mystacks/uZzODQYI3p6r_sZZ/_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/mystacks/uZzODQYI3p6r_sZZ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a stack - MyStacks\">\u003cmeta data-mint-head property=\"og:description\" content=\"Save changes to a stack as a new revision.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"MyStacks\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mystacks.ai/api-reference/stacks/update\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://mystacks.mintlify.app/_mintlify/api/og/v2?division=Stacks\u0026amp;title=Update+a+stack\u0026amp;description=Save+changes+to+a+stack+as+a+new+revision.\u0026amp;theme=cb45f6a77ff290222cb5adea\u0026amp;signature=0d8e625bb48eac871a3f5bccc202aea908b97846fa06c5a0a5baa251cf49fc19\">\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 stack - MyStacks\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Save changes to a stack as a new revision.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://mystacks.mintlify.app/_mintlify/api/og/v2?division=Stacks\u0026amp;title=Update+a+stack\u0026amp;description=Save+changes+to+a+stack+as+a+new+revision.\u0026amp;theme=cb45f6a77ff290222cb5adea\u0026amp;signature=0d8e625bb48eac871a3f5bccc202aea908b97846fa06c5a0a5baa251cf49fc19\">\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/mystacks/uZzODQYI3p6r_sZZ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"MyStacks\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0F766E\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mystacks.ai/api-reference/stacks/update\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/stacks/update.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mystacks.ai/#organization\",\"name\":\"MyStacks\",\"url\":\"https://docs.mystacks.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/mystacks/ymy-epKFyNGe1l-w/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=ymy-epKFyNGe1l-w\u0026q=85\u0026s=6c8a2d336c62be024d562c517a5695ef\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mystacks.ai#website\",\"name\":\"MyStacks\",\"url\":\"https://docs.mystacks.ai\",\"publisher\":{\"@id\":\"https://docs.mystacks.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mystacks.ai/api-reference/stacks/update#webpage\",\"url\":\"https://docs.mystacks.ai/api-reference/stacks/update\",\"name\":\"Update a stack\",\"description\":\"Save changes to a stack as a new revision.\",\"dateModified\":\"2026-09-26T16:06:32.539Z\",\"isPartOf\":{\"@id\":\"https://docs.mystacks.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mystacks.ai/api-reference/stacks/update#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mystacks.ai/api-reference/stacks/update#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Stacks\",\"item\":\"https://docs.mystacks.ai/api-reference/stacks/create\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update a stack\",\"item\":\"https://docs.mystacks.ai/api-reference/stacks/update\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mystacks.ai/api-reference/stacks/update#apireference\",\"headline\":\"Update a stack\",\"name\":\"Update a stack\",\"description\":\"Save changes to a stack as a new revision.\",\"url\":\"https://docs.mystacks.ai/api-reference/stacks/update\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mystacks.ai/api-reference/stacks/update#webpage\"},\"dateModified\":\"2026-09-26T16:06:32.539Z\",\"publisher\":{\"@id\":\"https://docs.mystacks.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mystacks.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"MyStacks\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"MyStacks","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Manager API","pages":[{"title":"Manager API overview","href":"/api-reference/overview"},{"title":"Stack configuration","href":"/api-reference/stack-configuration"},{"title":"Supported assets","href":"/api-reference/assets"},{"title":"Errors and retries","href":"/api-reference/errors"}]},{"group":"Stacks","pages":[{"title":"Create a stack","openapi":"POST /manager/stacks","href":"/api-reference/stacks/create"},{"title":"List stacks","openapi":"GET /manager/stacks","href":"/api-reference/stacks/list"},{"title":"Get a stack","description":"Read a stack’s current configuration and revision.","openapi":"GET /manager/stacks/{id}","href":"/api-reference/stacks/get"},{"title":"Update a stack","openapi":"PATCH /manager/stacks/{id}","href":"/api-reference/stacks/update"}]}]}]},"title":"Update a stack - MyStacks","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}