{
"type": "https://docs.alura.io/errors/method_not_allowed",
"title": "Method not allowed",
"status": 405,
"code": "method_not_allowed",
"detail": "Method not allowed",
"suggestion": "Use one of the methods in the Allow header.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}
Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.
{
"type": "https://docs.alura.io/errors/method_not_allowed",
"title": "Method not allowed",
"status": 405,
"code": "method_not_allowed",
"detail": "Method not allowed",
"suggestion": "Use one of the methods in the Allow header.",
"retryable": false,
"request_id": "req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"
}
Find the change with List changes or Get a change. revertable says whether it can be undone, and not_revertable_reason why not.
Call with dry_run=true to see what would be restored and what not. Nothing is sent to Etsy.
Call again without dry_run. Send an Idempotency-Key so a retry is safe. See Idempotency.
The answer is 200 with the listing as Etsy returned it, plus reverts, restored and not_reverted. While Etsy is still answering, it is 202 with the change instead: get the change until its outcome is final.The revert is a new change with source: revert, and its reverts is the ID of the change it undid. It can itself be reverted.
Reverts are deny by default. Only a change made through Alura’s change log, with a before read live from Etsy, that landed on Etsy, can be reverted. Each field goes back to its value in before.
Restored
Details
Core fields
Title, description, tags, materials, category, maker fields, section, shipping profile, return policy, auto-renew, and an inactive state
Before writing, Alura reads the listing on Etsy again. Every field to restore must still hold the change’s after. If one doesn’t, the revert answers 409changed_since, changed names the fields that moved, and nothing is written.
Fields the change didn’t touch are neither compared nor written.
For the inventory, every variant’s price, SKU and enabled flag must still be the change’s. A sale moving a quantity is fine. Otherwise changed names inventory.
A category (category_id) the change moved is also refused when the listing was edited on Etsy after the change: its updated time is more than 10 seconds from the change’s, or unknown. Putting the category back can make Etsy drop attributes set since.
Etsy has no conditional update. An edit made on Etsy between Alura’s read and its write can still be overwritten.
A listing in an A/B test
A change to a listing in a running Alura A/B test is reverted like any other. The test’s variant switches also write through Alura (changes with source: automation), so its next switch may overwrite the fields its variants hold.
Makes a retry safe: the same key with the same request within 24 hours answers from the first write (with Idempotent-Replayed: true) and never writes to Etsy twice; a write that failed with nothing written (Retry-After set) is tried again under it. The same key with a different request is a 409 conflict; while the first request still runs, 409 idempotency_processing (or the same 202). Required for relative changes such as adjust_price, and to add a listing file, image or video, or to change the alt text of an image (each uploads to Etsy, so a blind retry would upload again); a dry_run=true needs none.
true: plan the write and send nothing: what it would change, the Etsy calls it would make, and nothing reserved, charged or recorded. Free; counts toward the per-minute write limit.
Response
OK: the write landed on Etsy (or, with dry_run=true, what it would do).
The listing's total quantity across its enabled offerings, as Etsy and get_my_listing count it (not the per-offering value a request sends: 3 on each of 2 variants is 6).
The fields of the change this revert did not restore, each with its reason; empty when it restored every field.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Alura API","description":"Etsy market research for scripts and AI assistants: products, shops, keywords and saved research.","colors":{"primary":"#155EEF","light":"#528BFF","dark":"#004EEB"},"logo":{"light":"https://mintcdn.com/alura/HySS5CT36sWBL9EL/logo/light.svg?fit=max\u0026auto=format\u0026n=HySS5CT36sWBL9EL\u0026q=85\u0026s=6afcc5174d02ee0af4c233126964240a","dark":"https://mintcdn.com/alura/HySS5CT36sWBL9EL/logo/dark.svg?fit=max\u0026auto=format\u0026n=HySS5CT36sWBL9EL\u0026q=85\u0026s=0babd9724a17bbf017bb0d29d0943900","href":"https://alura.io"},"favicon":"https://mintcdn.com/alura/HySS5CT36sWBL9EL/favicon.svg?fit=max\u0026auto=format\u0026n=HySS5CT36sWBL9EL\u0026q=85\u0026s=4a49d66ca34eb4e2b084d778927ed570","api":{"playground":{"display":"none","proxy":false},"examples":{"languages":["curl","typescript","python"]}},"background":{"color":{"light":"#FFFFFF","dark":"#171717"}},"navbar":{"links":[{"href":"/status","label":"Status"}],"primary":{"type":"button","label":"Get an API key","href":"https://platform.alura.io/settings"}},"footer":{"socials":{"website":"https://alura.io"}},"contextual":{"options":["copy","view","chatgpt","claude","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"alura","hasAudioNarration":false,"actualSubdomain":"alura","customDomains":["docs.alura.io"],"gitSource":{"type":"github","owner":"pixell-co","repo":"alura-public-api","deployBranch":"main","contentDirectory":"apps/docs/content","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6aef4f3f4f6351e51850c94d","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"API reference","count":141},{"language":"default","tag":"Your shop","count":76},{"language":"default","tag":"Research","count":37},{"language":"default","tag":"Documentation","count":34},{"language":"default","tag":"Shop","count":34},{"language":"default","tag":"Listings","count":22},{"language":"default","tag":"Etsy","count":16},{"language":"default","tag":"Saved","count":14},{"language":"default","tag":"Shipping profiles","count":13},{"language":"default","tag":"Webhooks \u0026 events","count":12}]},"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":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"a[href=\"https://platform.alura.io/settings\"]:not(.link){background-color:transparent!important}a[href=\"https://platform.alura.io/settings\"]:not(.link)>span:first-child,html.dark a[href=\"https://platform.alura.io/settings\"]:not(.link)>span:first-child{background-color:#155EEF!important}a[href=\"https://platform.alura.io/settings\"]:not(.link),a[href=\"https://platform.alura.io/settings\"]:not(.link) *{color:#FFFFFF!important}a[href=\"https://platform.alura.io/settings\"]:not(.link):hover>span:first-child{background-color:#004EEB!important}a[href=\"https://platform.alura.io/settings\"][target=\"_blank\"]:not(.link) svg{display:none!important}a[href=\"https://platform.alura.io/settings\"]:not(.link),a[href=\"https://platform.alura.io/settings\"]:not(.link)>span:first-child,button:not([role=\"switch\"]):not([role=\"tab\"]),.sidebar-group a,#search-bar-entry,#search-bar-entry-mobile{border-radius:9999px!important}#page-context-menu-button{border-radius:0.75rem 0 0 0.75rem!important}#page-context-menu-button+button{border-radius:0 0.75rem 0.75rem 0!important}#topbar-cta-button>a{padding:0.375rem 0.875rem!important;font-size:0.8125rem!important}[data-component-part=\"update-tag\"],[data-component-part=\"update-description\"]{font-size:0.75rem;line-height:1.25rem}[data-component-part=\"update-tag-list\"]{flex-direction:column;gap:0.25rem}[data-component-part=\"update-tag\"]{opacity:0.7}[data-component-part=\"update-content\"]>h2:first-child{margin-top:0;font-size:1.5rem;line-height:2rem}[data-component-part=\"update-content\"] h3{font-size:1rem;margin-top:1.75rem}"}],"page":{"pagePath":"api-reference/workspace/changes/revert","slug":"/api-reference/workspace/changes/revert","pageMetadata":{"title":"Revert change","description":"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.","deprecated":null,"version":null,"sidebarTitle":"Revert change","openapi":"/openapi.json post /v1/workspace/changes/{id}/revert","href":"/api-reference/workspace/changes/revert","autogeneratedByOpenApi":true},"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: \"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.\"\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},{Accordion,CodeBlock,Heading,Note,Table,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Cost:`}),` 1 API credit per write.`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,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:`2`,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:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://api.alura.io/v1/workspace/changes/chn_01JMCK00000000000000000001/revert?dry_run=true\"`}),_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:`$ALURA_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Needs the `,_jsx(_components.code,{children:`listings:write`}),` scope and the `,_jsx(_components.strong,{children:`Listing optimization`}),` workspace permission. A change outside the workspace answers `,_jsx(_components.code,{children:`404`}),`.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`A revert writes to the live listing on Etsy. It overwrites what the listing holds now with the change’s earlier values.`})}),`\n`,_jsx(Heading,{level:`2`,id:`undo-a-change`,children:`Undo a change`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Find the change with `,_jsx(_components.a,{href:`/api-reference/workspace/changes/list`,children:`List changes`}),` or `,_jsx(_components.a,{href:`/api-reference/workspace/changes/get`,children:`Get a change`}),`. `,_jsx(_components.code,{children:`revertable`}),` says whether it can be undone, and `,_jsx(_components.code,{children:`not_revertable_reason`}),` why not.`]}),`\n`,_jsxs(_components.li,{children:[`Call with `,_jsx(_components.code,{children:`dry_run=true`}),` to see what would be restored and what not. Nothing is sent to Etsy.`]}),`\n`,_jsxs(_components.li,{children:[`Call again without `,_jsx(_components.code,{children:`dry_run`}),`. Send an `,_jsx(_components.code,{children:`Idempotency-Key`}),` so a retry is safe. See `,_jsx(_components.a,{href:`/api-reference/introduction#idempotency`,children:`Idempotency`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`The answer is `,_jsx(_components.code,{children:`200`}),` with the listing as Etsy returned it, plus `,_jsx(_components.code,{children:`reverts`}),`, `,_jsx(_components.code,{children:`restored`}),` and `,_jsx(_components.code,{children:`not_reverted`}),`. While Etsy is still answering, it is `,_jsx(_components.code,{children:`202`}),` with the change instead: `,_jsx(_components.a,{href:`/api-reference/workspace/changes/get`,children:`get the change`}),` until its `,_jsx(_components.code,{children:`outcome`}),` is final.`]}),`\n`,_jsxs(_components.p,{children:[`The revert is a new change with `,_jsx(_components.code,{children:`source: revert`}),`, and its `,_jsx(_components.code,{children:`reverts`}),` is the ID of the change it undid. It can itself be reverted.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-can-be-restored`,children:`What can be restored`}),`\n`,_jsxs(_components.p,{children:[`Reverts are deny by default. Only a change made through Alura’s change log, with a `,_jsx(_components.code,{children:`before`}),` read live from Etsy, that landed on Etsy, can be reverted. Each field goes back to its value in `,_jsx(_components.code,{children:`before`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Restored`}),_jsx(_components.th,{children:`Details`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Core fields`}),_jsxs(_components.td,{children:[`Title, description, tags, materials, category, maker fields, section, shipping profile, return policy, auto-renew, and an `,_jsx(_components.code,{children:`inactive`}),` state`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Inventory`}),_jsx(_components.td,{children:`Each variant’s price, SKU and enabled flag`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Attributes, translations, personalization questions`}),_jsxs(_components.td,{children:[`Each restored whole from its live `,_jsx(_components.code,{children:`before`})]})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A change with some restorable fields and some not is reverted for the restorable ones. `,_jsx(_components.code,{children:`not_reverted`}),` lists the rest, each with its reason.`]}),`\n`,_jsx(Heading,{level:`2`,id:`what-is-never-restored`,children:`What is never restored`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Not restored`}),_jsx(_components.th,{children:`Reason`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Quantity`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`quantity`}),`: never restored from a snapshot, because of the oversell risk. Etsy’s current quantities stay.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`An inventory change that added or removed variants`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`variations_changed`})})]}),_jsxs(_components.tr,{children:[_jsxs(_components.td,{children:[`A change from `,_jsx(_components.code,{children:`draft`}),`, `,_jsx(_components.code,{children:`expired`}),` or `,_jsx(_components.code,{children:`sold_out`})]}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`not_supported`}),`: Etsy’s listing update takes none of these states`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Anything that would put the listing back on sale`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`reactivates_listing`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A translation the change created`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`translation_added`}),`: Etsy has no translation delete`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Production partners`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`not_supported`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`who_made: someone_else`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`needs_production_partners`}),`: Etsy accepts it only with production partners`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Images, videos and variation images`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`images`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A digital file added or removed`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`files`}),`: the API keeps no copy of a file`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A processing profile, and any other listing field`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`not_supported`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A section, shipping profile or return policy deleted since the change`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`reference_deleted`}),`: Alura’s copy of the shop says it is gone. The change’s other fields are still restored.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A delete`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`delete`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A publish`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`publish_fee`}),`: undoing it is not free on Etsy`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A shipment`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`shipment_notified_buyer`}),`: Etsy already emailed the buyer`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A change whose outcome isn’t known`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`outcome_unknown`}),`: it may have landed`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`A change without Etsy’s updated time recorded`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`etsy_updated_at_unrecorded`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`The app’s older history`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`legacy_app_write`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[`A change that can’t be reverted at all answers `,_jsx(_components.code,{children:`409`}),` `,_jsx(_components.a,{href:`/errors/change_not_revertable`,children:_jsx(_components.code,{children:`change_not_revertable`})}),`, with `,_jsx(_components.code,{children:`reason`}),` and nothing written.`]}),`\n`,_jsx(Heading,{level:`2`,id:`when-the-listing-changed-since`,children:`When the listing changed since`}),`\n`,_jsxs(_components.p,{children:[`Before writing, Alura reads the listing on Etsy again. Every field to restore must still hold the change’s `,_jsx(_components.code,{children:`after`}),`. If one doesn’t, the revert answers `,_jsx(_components.code,{children:`409`}),` `,_jsx(_components.a,{href:`/errors/changed_since`,children:_jsx(_components.code,{children:`changed_since`})}),`, `,_jsx(_components.code,{children:`changed`}),` names the fields that moved, and nothing is written.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Fields the change didn’t touch are neither compared nor written.`}),`\n`,_jsxs(_components.li,{children:[`For the inventory, every variant’s price, SKU and enabled flag must still be the change’s. A sale moving a quantity is fine. Otherwise `,_jsx(_components.code,{children:`changed`}),` names `,_jsx(_components.code,{children:`inventory`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`A category (`,_jsx(_components.code,{children:`category_id`}),`) the change moved is also refused when the listing was edited on Etsy after the change: its updated time is more than 10 seconds from the change’s, or unknown. Putting the category back can make Etsy drop attributes set since.`]}),`\n`]}),`\n`,_jsx(Note,{children:_jsx(_components.p,{children:`Etsy has no conditional update. An edit made on Etsy between Alura’s read and its write can still be overwritten.`})}),`\n`,_jsx(Accordion,{title:`A listing in an A/B test`,id:`a-listing-in-an-a-b-test`,children:_jsxs(_components.p,{children:[`A change to a listing in a running Alura A/B test is reverted like any other. The test’s variant switches also write through Alura (changes with `,_jsx(_components.code,{children:`source: automation`}),`), so its next switch may overwrite the fields its variants hold.`]})}),`\n`,_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/api-reference/credits-and-limits`,children:`Credits and limits`}),` for what a refused revert or a dry run costs.`]})]})}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":"Revert change","description":"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.","deprecated":null,"version":null,"sidebarTitle":"Revert change","openapi":"/openapi.json post /v1/workspace/changes/{id}/revert","href":"/api-reference/workspace/changes/revert","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Undo a change","slug":"undo-a-change","depth":2,"children":[]},{"title":"What can be restored","slug":"what-can-be-restored","depth":2,"children":[]},{"title":"What is never restored","slug":"what-is-never-restored","depth":2,"children":[]},{"title":"When the listing changed since","slug":"when-the-listing-changed-since","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"workspace.changes.revert","summary":"Revert change","description":"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.","parameters":["465b37a4-1877-46cb-8f4e-b418a9bed98e","d7d55696-d85e-4eaa-b66b-84bcb2ffde43","6b63ef50-58f2-465d-a1c6-369810065a2c"],"responses":{"200":"1c825cea-49a6-4065-991c-c9b736c01c0d","202":"f6ba110f-0712-469f-8b65-f5a125b70985","400":"0f8565b8-ff2d-4319-aecf-ae7283ab793e","401":"459e29b6-28e8-4696-a15e-07773e1960a1","402":"38c5a427-1851-4a78-98da-e1032d31b968","403":"98e5dde1-68a3-421e-83a9-e5604c4456f1","404":"e24ca0df-3165-4994-90be-cdb1e120532a","405":"2c2afb64-9724-47d4-a9f4-7dd47051f303","409":"6cc379a6-4fc0-4111-a427-2e4b524de60f","410":"fb3e5609-2650-431c-8139-3ba548fc774d","422":"dbf2ca3c-7406-460d-84fe-cf268faebaa1","429":"f29ecb02-c792-4f30-ac92-87ef0b0fa73c","500":"cf0b411a-49c7-418c-bae0-ea2b97562b97","502":"54d612e2-c62f-41f4-a097-ba047285815c","503":"b9b27171-59ac-49c9-867e-a05f69e18968"},"x-alura-credits":{"credits":1,"unit":"write"},"x-alura-scopes":["listings:write"],"x-codeSamples":[{"lang":"bash","label":"cURL","source":"curl -X POST \"https://api.alura.io/v1/workspace/changes/chn_01JMCK00000000000000000001/revert\" \\\n -H \"Authorization: Bearer $ALURA_API_KEY\" \\\n -H \"Idempotency-Key: 5f0c8e2a-4b1d-4c3e-9a7f-2b5d6e8f0a1c\""},{"lang":"typescript","label":"TypeScript","source":"const res = await fetch('https://api.alura.io/v1/workspace/changes/chn_01JMCK00000000000000000001/revert', {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${process.env.ALURA_API_KEY}`,\n 'Idempotency-Key': '5f0c8e2a-4b1d-4c3e-9a7f-2b5d6e8f0a1c',\n },\n});\nconsole.log(await res.json());"},{"lang":"python","label":"Python","source":"import json\nimport os\nimport urllib.request\n\nrequest = urllib.request.Request(\n \"https://api.alura.io/v1/workspace/changes/chn_01JMCK00000000000000000001/revert\",\n method=\"POST\",\n headers={\n \"Authorization\": f\"Bearer {os.environ['ALURA_API_KEY']}\",\n \"Idempotency-Key\": \"5f0c8e2a-4b1d-4c3e-9a7f-2b5d6e8f0a1c\",\n },\n)\nwith urllib.request.urlopen(request) as response:\n print(json.load(response))"}],"x-mint":{"href":"/api-reference/workspace/changes/revert","metadata":{"sidebarTitle":"Revert change","description":"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time."},"content":"**Cost:** 1 API credit per write.\n\n```bash\ncurl -X POST \"https://api.alura.io/v1/workspace/changes/chn_01JMCK00000000000000000001/revert?dry_run=true\" \\\n -H \"Authorization: Bearer $ALURA_API_KEY\"\n```\n\nNeeds the `listings:write` scope and the **Listing optimization** workspace permission. A change outside the workspace answers `404`.\n\n\u003cWarning>\nA revert writes to the live listing on Etsy. It overwrites what the listing holds now with the change's earlier values.\n\u003c/Warning>\n\n## Undo a change\n\n1. Find the change with [List changes](/api-reference/workspace/changes/list) or [Get a change](/api-reference/workspace/changes/get). `revertable` says whether it can be undone, and `not_revertable_reason` why not.\n2. Call with `dry_run=true` to see what would be restored and what not. Nothing is sent to Etsy.\n3. Call again without `dry_run`. Send an `Idempotency-Key` so a retry is safe. See [Idempotency](/api-reference/introduction#idempotency).\n\nThe answer is `200` with the listing as Etsy returned it, plus `reverts`, `restored` and `not_reverted`. While Etsy is still answering, it is `202` with the change instead: [get the change](/api-reference/workspace/changes/get) until its `outcome` is final.\n\nThe revert is a new change with `source: revert`, and its `reverts` is the ID of the change it undid. It can itself be reverted.\n\n## What can be restored\n\nReverts are deny by default. Only a change made through Alura's change log, with a `before` read live from Etsy, that landed on Etsy, can be reverted. Each field goes back to its value in `before`.\n\n| Restored | Details |\n|---|---|\n| Core fields | Title, description, tags, materials, category, maker fields, section, shipping profile, return policy, auto-renew, and an `inactive` state |\n| Inventory | Each variant's price, SKU and enabled flag |\n| Attributes, translations, personalization questions | Each restored whole from its live `before` |\n\nA change with some restorable fields and some not is reverted for the restorable ones. `not_reverted` lists the rest, each with its reason.\n\n## What is never restored\n\n| Not restored | Reason |\n|---|---|\n| Quantity | `quantity`: never restored from a snapshot, because of the oversell risk. Etsy's current quantities stay. |\n| An inventory change that added or removed variants | `variations_changed` |\n| A change from `draft`, `expired` or `sold_out` | `not_supported`: Etsy's listing update takes none of these states |\n| Anything that would put the listing back on sale | `reactivates_listing` |\n| A translation the change created | `translation_added`: Etsy has no translation delete |\n| Production partners | `not_supported` |\n| `who_made: someone_else` | `needs_production_partners`: Etsy accepts it only with production partners |\n| Images, videos and variation images | `images` |\n| A digital file added or removed | `files`: the API keeps no copy of a file |\n| A processing profile, and any other listing field | `not_supported` |\n| A section, shipping profile or return policy deleted since the change | `reference_deleted`: Alura's copy of the shop says it is gone. The change's other fields are still restored. |\n| A delete | `delete` |\n| A publish | `publish_fee`: undoing it is not free on Etsy |\n| A shipment | `shipment_notified_buyer`: Etsy already emailed the buyer |\n| A change whose outcome isn't known | `outcome_unknown`: it may have landed |\n| A change without Etsy's updated time recorded | `etsy_updated_at_unrecorded` |\n| The app's older history | `legacy_app_write` |\n\nA change that can't be reverted at all answers `409` [`change_not_revertable`](/errors/change_not_revertable), with `reason` and nothing written.\n\n## When the listing changed since\n\nBefore writing, Alura reads the listing on Etsy again. Every field to restore must still hold the change's `after`. If one doesn't, the revert answers `409` [`changed_since`](/errors/changed_since), `changed` names the fields that moved, and nothing is written.\n\n- Fields the change didn't touch are neither compared nor written.\n- For the inventory, every variant's price, SKU and enabled flag must still be the change's. A sale moving a quantity is fine. Otherwise `changed` names `inventory`.\n- A category (`category_id`) the change moved is also refused when the listing was edited on Etsy after the change: its updated time is more than 10 seconds from the change's, or unknown. Putting the category back can make Etsy drop attributes set since.\n\n\u003cNote>\nEtsy has no conditional update. An edit made on Etsy between Alura's read and its write can still be overwritten.\n\u003c/Note>\n\n\u003cAccordion title=\"A listing in an A/B test\">\nA change to a listing in a running Alura A/B test is reverted like any other. The test's variant switches also write through Alura (changes with `source: automation`), so its next switch may overwrite the fields its variants hold.\n\u003c/Accordion>\n\nSee [Credits and limits](/api-reference/credits-and-limits) for what a refused revert or a dry run costs."},"method":"post","type":"path","servers":["6c764af2-fbc8-469e-a5ff-745270cc266b"],"security":["6144536c-06b0-4b8d-affd-b8dccec7d5ee"],"path":"/v1/workspace/changes/{id}/revert","baseUrlOptions":["https://api.alura.io"],"title":"Revert change","codeSamples":[{"label":"cURL","lang":"bash","source":"curl -X POST \"https://api.alura.io/v1/workspace/changes/chn_01JMCK00000000000000000001/revert\" \\\n -H \"Authorization: Bearer $ALURA_API_KEY\" \\\n -H \"Idempotency-Key: 5f0c8e2a-4b1d-4c3e-9a7f-2b5d6e8f0a1c\""},{"label":"TypeScript","lang":"typescript","source":"const res = await fetch('https://api.alura.io/v1/workspace/changes/chn_01JMCK00000000000000000001/revert', {\n method: 'POST',\n headers: {\n Authorization: `Bearer ${process.env.ALURA_API_KEY}`,\n 'Idempotency-Key': '5f0c8e2a-4b1d-4c3e-9a7f-2b5d6e8f0a1c',\n },\n});\nconsole.log(await res.json());"},{"label":"Python","lang":"python","source":"import json\nimport os\nimport urllib.request\n\nrequest = urllib.request.Request(\n \"https://api.alura.io/v1/workspace/changes/chn_01JMCK00000000000000000001/revert\",\n method=\"POST\",\n headers={\n \"Authorization\": f\"Bearer {os.environ['ALURA_API_KEY']}\",\n \"Idempotency-Key\": \"5f0c8e2a-4b1d-4c3e-9a7f-2b5d6e8f0a1c\",\n },\n)\nwith urllib.request.urlopen(request) as response:\n print(json.load(response))"}],"requestExampleLanguages":["bash","typescript","python"],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"465b37a4-1877-46cb-8f4e-b418a9bed98e":{"name":"id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":64,"description":"The change to revert, `chn_…` (GET /v1/workspace/changes shows which are `revertable`).","example":"chn_01JMCK00000000000000000001","isRequired":true,"uniqueKey":"","typeLabel":"string"}},"d7d55696-d85e-4eaa-b66b-84bcb2ffde43":{"name":"dry_run","in":"query","required":false,"description":"`true`: plan the write and send nothing: what it would change, the Etsy calls it would make, and nothing reserved, charged or recorded. Free; counts toward the per-minute write limit.","schema":{"type":"boolean","isRequired":false,"description":"`true`: plan the write and send nothing: what it would change, the Etsy calls it would make, and nothing reserved, charged or recorded. Free; counts toward the per-minute write limit.","uniqueKey":"","typeLabel":"boolean"}},"6b63ef50-58f2-465d-a1c6-369810065a2c":{"name":"Idempotency-Key","in":"header","required":false,"description":"Makes a retry safe: the same key with the same request within 24 hours answers from the first write (with `Idempotent-Replayed: true`) and never writes to Etsy twice; a write that failed with nothing written (`Retry-After` set) is tried again under it. The same key with a different request is a 409 `conflict`; while the first request still runs, 409 `idempotency_processing` (or the same 202). Required for relative changes such as `adjust_price`, and to add a listing file, image or video, or to change the alt text of an image (each uploads to Etsy, so a blind retry would upload again); a `dry_run=true` needs none.","schema":{"type":"string","minLength":1,"maxLength":255,"isRequired":false,"description":"Makes a retry safe: the same key with the same request within 24 hours answers from the first write (with `Idempotent-Replayed: true`) and never writes to Etsy twice; a write that failed with nothing written (`Retry-After` set) is tried again under it. The same key with a different request is a 409 `conflict`; while the first request still runs, 409 `idempotency_processing` (or the same 202). Required for relative changes such as `adjust_price`, and to add a listing file, image or video, or to change the alt text of an image (each uploads to Etsy, so a blind retry would upload again); a `dry_run=true` needs none.","uniqueKey":"","typeLabel":"string"}}},"responses":{"1c825cea-49a6-4065-991c-c9b736c01c0d":{"description":"OK: the write landed on Etsy (or, with `dry_run=true`, what it would do).","headers":{"Request-Id":{"description":"`req_` + ULID; quote it when reporting a problem.","schema":{"type":"string"}},"Alura-Credits-Cost":{"description":"API credits this call cost.","schema":{"type":"integer"}},"Alura-Credits-Remaining":{"description":"API credits left in the workspace's monthly allowance, counting calls still in flight. Absent when it cannot be read right now.","schema":{"type":"integer"}},"Idempotent-Replayed":{"description":"`true` when this answers an earlier request with the same key.","schema":{"type":"string"}},"Alura-Write-Budget-Remaining":{"description":"The shop's Etsy write budget left, when known.","schema":{"type":"integer"}},"Alura-Write-Deduplicated":{"description":"Set when this write was answered, free, from an earlier identical write: that write's change id (`chn_...`). Nothing was sent to Etsy again.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["object","id","shop_id","title","description","url","state","price","quantity","skus","tags","materials","category","section","shipping_profile_id","return_policy_id","processing_profile_id","production_partner_ids","who_made","when_made","is_supply","should_auto_renew","updated_at","as_of","change","notices","reverts","restored","not_reverted"],"properties":{"object":{"type":"string","const":"workspace.listing","isRequired":true,"uniqueKey":"oneOf.0.object","typeLabel":"string"},"id":{"type":"string","description":"Etsy ID, as a string.","isRequired":true,"uniqueKey":"oneOf.0.id","typeLabel":"string"},"shop_id":{"type":"string","description":"Etsy ID, as a string.","isRequired":true,"uniqueKey":"oneOf.0.shop_id","typeLabel":"string"},"title":{"oneOf":[{"description":"The title as Etsy answered; null when Etsy did not say.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.title.oneOf.0","typeLabel":"string"},{"description":"The title as Etsy answered; null when Etsy did not say.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.title.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.title","typeLabel":"string | null"},"description":{"oneOf":[{"description":"The description as Etsy answered; null when Etsy did not say.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.description.oneOf.0","typeLabel":"string"},{"description":"The description as Etsy answered; null when Etsy did not say.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.description.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.description","typeLabel":"string | null"},"url":{"oneOf":[{"description":"The listing on Etsy.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.url.oneOf.0","typeLabel":"string"},{"description":"The listing on Etsy.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.url","typeLabel":"string | null"},"state":{"oneOf":[{"description":"Etsy's listing state, for example `active`, `inactive` or `draft`.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.state.oneOf.0","typeLabel":"string"},{"description":"Etsy's listing state, for example `active`, `inactive` or `draft`.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.state.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.state","typeLabel":"string | null"},"price":{"oneOf":[{"type":"object","description":"The listing's price as Etsy answered; `usd` is null unless the listing is priced in USD.","required":["amount","currency","usd"],"properties":{"amount":{"type":"string","description":"Decimal string in the listing's own currency.","isRequired":true,"uniqueKey":"oneOf.0.price.oneOf.0.amount","typeLabel":"string"},"currency":{"type":"string","description":"ISO 4217 code.","isRequired":true,"uniqueKey":"oneOf.0.price.oneOf.0.currency","typeLabel":"string"},"usd":{"oneOf":[{"description":"The same price in USD at the request's exchange rates, as a decimal string; null when no rate is known.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.price.oneOf.0.usd.oneOf.0","typeLabel":"string"},{"description":"The same price in USD at the request's exchange rates, as a decimal string; null when no rate is known.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.price.oneOf.0.usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.price.oneOf.0.usd","typeLabel":"string | null"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.price.oneOf.0","typeLabel":"object"},{"type":"null","description":"The listing's price as Etsy answered; `usd` is null unless the listing is priced in USD.","isRequired":true,"uniqueKey":"oneOf.0.price.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.price","typeLabel":"object | null"},"quantity":{"oneOf":[{"type":"integer","description":"The listing's total quantity across its enabled offerings, as Etsy and get_my_listing count it (not the per-offering value a request sends: 3 on each of 2 variants is 6).","isRequired":true,"uniqueKey":"oneOf.0.quantity.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The listing's total quantity across its enabled offerings, as Etsy and get_my_listing count it (not the per-offering value a request sends: 3 on each of 2 variants is 6).","isRequired":true,"uniqueKey":"oneOf.0.quantity.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.quantity","typeLabel":"integer | null"},"skus":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.skus.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The SKUs of the listing's offerings as Etsy answered; null when Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.skus.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"The SKUs of the listing's offerings as Etsy answered; null when Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.skus.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.skus","typeLabel":"string[] | null"},"tags":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.tags.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The tags as Etsy answered; null when Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.tags.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"The tags as Etsy answered; null when Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.tags.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.tags","typeLabel":"string[] | null"},"materials":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.materials.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The materials as Etsy answered; null when Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.materials.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"The materials as Etsy answered; null when Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.materials.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.materials","typeLabel":"string[] | null"},"category":{"oneOf":[{"type":"object","description":"Etsy's category (`category_id` in the request).","required":["id"],"properties":{"id":{"type":"string","description":"Etsy ID, as a string.","isRequired":true,"uniqueKey":"oneOf.0.category.oneOf.0.id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.category.oneOf.0","typeLabel":"object"},{"type":"null","description":"Etsy's category (`category_id` in the request).","isRequired":true,"uniqueKey":"oneOf.0.category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.category","typeLabel":"object | null"},"section":{"oneOf":[{"type":"object","description":"The shop section; null when the listing is in none.","required":["id"],"properties":{"id":{"type":"string","description":"Etsy ID, as a string.","isRequired":true,"uniqueKey":"oneOf.0.section.oneOf.0.id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"oneOf.0.section.oneOf.0","typeLabel":"object"},{"type":"null","description":"The shop section; null when the listing is in none.","isRequired":true,"uniqueKey":"oneOf.0.section.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.section","typeLabel":"object | null"},"shipping_profile_id":{"oneOf":[{"type":"string","description":"The listing's shipping profile; null when it has none or Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.shipping_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The listing's shipping profile; null when it has none or Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.shipping_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.shipping_profile_id","typeLabel":"string | null"},"return_policy_id":{"oneOf":[{"type":"string","description":"The listing's return policy; null when it has none or Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.return_policy_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The listing's return policy; null when it has none or Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.return_policy_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.return_policy_id","typeLabel":"string | null"},"processing_profile_id":{"oneOf":[{"type":"string","description":"The processing profile every offering has; null when they differ or Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.processing_profile_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"The processing profile every offering has; null when they differ or Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.processing_profile_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.processing_profile_id","typeLabel":"string | null"},"production_partner_ids":{"oneOf":[{"type":"array","items":{"type":"string","description":"Etsy ID, as a string.","uniqueKey":"oneOf.0.production_partner_ids.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The production partners as Etsy answered; null when Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.production_partner_ids.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"The production partners as Etsy answered; null when Etsy did not say.","isRequired":true,"uniqueKey":"oneOf.0.production_partner_ids.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.production_partner_ids","typeLabel":"string[] | null"},"who_made":{"oneOf":[{"description":"Etsy's `who_made`: `i_did`, `someone_else` or `collective`; null when Etsy did not say.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.who_made.oneOf.0","typeLabel":"string"},{"description":"Etsy's `who_made`: `i_did`, `someone_else` or `collective`; null when Etsy did not say.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.who_made.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.who_made","typeLabel":"string | null"},"when_made":{"oneOf":[{"description":"Etsy's `when_made`, for example `made_to_order`; null when Etsy did not say.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.when_made.oneOf.0","typeLabel":"string"},{"description":"Etsy's `when_made`, for example `made_to_order`; null when Etsy did not say.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.when_made.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.when_made","typeLabel":"string | null"},"is_supply":{"oneOf":[{"description":"true: a craft supply or tool; false: a finished product; null when Etsy did not say.","type":"boolean","isRequired":true,"uniqueKey":"oneOf.0.is_supply.oneOf.0","typeLabel":"boolean"},{"description":"true: a craft supply or tool; false: a finished product; null when Etsy did not say.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.is_supply.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.is_supply","typeLabel":"boolean | null"},"should_auto_renew":{"oneOf":[{"description":"true: Etsy renews the listing automatically when it expires; null when Etsy did not say.","type":"boolean","isRequired":true,"uniqueKey":"oneOf.0.should_auto_renew.oneOf.0","typeLabel":"boolean"},{"description":"true: Etsy renews the listing automatically when it expires; null when Etsy did not say.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.should_auto_renew.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.should_auto_renew","typeLabel":"boolean | null"},"updated_at":{"oneOf":[{"type":"string","description":"When Etsy last changed the listing.","isRequired":true,"uniqueKey":"oneOf.0.updated_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"When Etsy last changed the listing.","isRequired":true,"uniqueKey":"oneOf.0.updated_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.updated_at","typeLabel":"string | null"},"as_of":{"type":"string","description":"When Etsy answered the write.","isRequired":true,"uniqueKey":"oneOf.0.as_of","typeLabel":"string"},"change":{"type":"object","properties":{"id":{"type":"string","description":"`chn_...`: GET /v1/workspace/changes/{id} shows it.","isRequired":true,"uniqueKey":"oneOf.0.change.id","typeLabel":"string"},"status":{"type":"string","enum":["succeeded","partial"],"description":"`partial`: part of the change landed on Etsy, `failed_fields` did not; send a new write for them.","isRequired":true,"uniqueKey":"oneOf.0.change.status","typeLabel":"enum\u003cstring>"},"applied_fields":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.change.applied_fields.items.[INDEX]","typeLabel":"string"},"description":"The fields that landed on Etsy.","isRequired":true,"uniqueKey":"oneOf.0.change.applied_fields","typeLabel":"string[]"},"failed_fields":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"The field, named as in the request.","isRequired":true,"uniqueKey":"oneOf.0.change.failed_fields.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"`not_applied`: Etsy did not take this part of the change. For `state` on a publish: `listing_not_publishable` (Etsy refused to publish the listing; the rest landed, and it stays unpublished) or `activation_skipped` (another part failed, so Alura did not ask Etsy to publish). `outcome_unknown`: the answer from Etsy for this part was lost, so it may have applied; check the listing on Etsy. New codes may be added.","isRequired":true,"uniqueKey":"oneOf.0.change.failed_fields.items.[INDEX].code","typeLabel":"string"}},"required":["field","code"],"additionalProperties":false,"uniqueKey":"oneOf.0.change.failed_fields.items.[INDEX]","typeLabel":"object"},"description":"The fields that did not; empty when the write succeeded.","isRequired":true,"uniqueKey":"oneOf.0.change.failed_fields","typeLabel":"object[]"}},"required":["id","status","applied_fields","failed_fields"],"additionalProperties":false,"description":"The write: its change ID and what landed.","isRequired":true,"uniqueKey":"oneOf.0.change","typeLabel":"object"},"notices":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"`listing_not_returned`, `fields_not_returned`, `varies_by_variant` or `listing_deleted` (a delete: the listing is gone, so its fields are null). New codes may be added.","isRequired":true,"uniqueKey":"oneOf.0.notices.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","description":"What the notice means for this answer.","isRequired":true,"uniqueKey":"oneOf.0.notices.items.[INDEX].detail","typeLabel":"string"}},"required":["code","detail"],"additionalProperties":false,"uniqueKey":"oneOf.0.notices.items.[INDEX]","typeLabel":"object"},"description":"Why a part of the answer is unknown; empty when nothing is.","isRequired":true,"uniqueKey":"oneOf.0.notices","typeLabel":"object[]"},"reverts":{"type":"string","description":"The change this revert undid (`chn_...`).","isRequired":true,"uniqueKey":"oneOf.0.reverts","typeLabel":"string"},"restored":{"type":"array","items":{"type":"string","uniqueKey":"oneOf.0.restored.items.[INDEX]","typeLabel":"string"},"description":"The fields restored to the change's `before`, named as in the listing's shapes.","isRequired":true,"uniqueKey":"oneOf.0.restored","typeLabel":"string[]"},"not_reverted":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"A field of the change left as it is, named as the change's `fields` name it (`inventory` with reason `quantity` for an inventory change's quantities, which stay as Etsy holds them).","isRequired":true,"uniqueKey":"oneOf.0.not_reverted.items.[INDEX].field","typeLabel":"string"},"reason":{"type":"string","description":"`quantity` (never restored from a snapshot: oversell risk), `variations_changed` (the change added or removed variants, or moved which property sets the price or SKU), `field_unrecorded` (the change did not record a value it wrote), `translation_added` (Etsy has no translation delete), `reference_deleted` (the section, shipping profile or return policy to put back has been deleted since, as Alura's copy of the shop says), `images`, `files`, `reactivates_listing`, `needs_production_partners` (`who_made: someone_else` needs production partners, which a revert never restores), `not_landed` (it did not land), `outcome_unknown` (whether it landed is not known), `before_unrecorded`, `not_supported`. New values may be added.","isRequired":true,"uniqueKey":"oneOf.0.not_reverted.items.[INDEX].reason","typeLabel":"string"}},"required":["field","reason"],"additionalProperties":false,"uniqueKey":"oneOf.0.not_reverted.items.[INDEX]","typeLabel":"object"},"description":"The fields of the change this revert did not restore, each with its reason; empty when it restored every field.","isRequired":true,"uniqueKey":"oneOf.0.not_reverted","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","required":["object","operation","target","changes","command_hash","estimate","write_budget_remaining","consequential","confirmation_token","confirmation_expires_at","notices"],"properties":{"object":{"type":"string","const":"workspace.write_plan","isRequired":true,"uniqueKey":"oneOf.1.object","typeLabel":"string"},"operation":{"type":"string","description":"The operation this plan is for.","isRequired":true,"uniqueKey":"oneOf.1.operation","typeLabel":"string"},"target":{"type":"object","properties":{"type":{"type":"string","description":"What the write changes: `listing`, `shop`, `receipt`. New types may be added.","isRequired":true,"uniqueKey":"oneOf.1.target.type","typeLabel":"string"},"id":{"type":"string","description":"Etsy ID, as a string.","isRequired":true,"uniqueKey":"oneOf.1.target.id","typeLabel":"string"},"shop_id":{"type":"string","description":"Etsy ID, as a string.","isRequired":true,"uniqueKey":"oneOf.1.target.shop_id","typeLabel":"string"}},"required":["type","id","shop_id"],"additionalProperties":false,"description":"What the write would change.","isRequired":true,"uniqueKey":"oneOf.1.target","typeLabel":"object"},"changes":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"The field, named as in the resource.","isRequired":true,"uniqueKey":"oneOf.1.changes.items.[INDEX].field","typeLabel":"string"},"to":{"description":"The value it would be set to.","isRequired":true,"uniqueKey":"oneOf.1.changes.items.[INDEX].to","typeLabel":"any"}},"required":["field","to"],"additionalProperties":false,"uniqueKey":"oneOf.1.changes.items.[INDEX]","typeLabel":"object"},"description":"What the write would set, field by field.","isRequired":true,"uniqueKey":"oneOf.1.changes","typeLabel":"object[]"},"command_hash":{"type":"string","pattern":"^[0-9a-f]{64}$","description":"A hash of the change Alura would send to Etsy: the same request on the same object plans the same change, whatever Alura has stored about it.","isRequired":true,"uniqueKey":"oneOf.1.command_hash","typeLabel":"string"},"estimate":{"type":"object","properties":{"etsy_calls_min":{"type":"integer","minimum":0,"description":"The fewest Etsy calls the write makes.","isRequired":true,"uniqueKey":"oneOf.1.estimate.etsy_calls_min","typeLabel":"integer"},"etsy_calls_max":{"type":"integer","minimum":0,"description":"The most Etsy calls the write makes, counting its token refreshes and every call Alura may send again (after a timeout, an Etsy 409 conflict, a rejected token or a video re-association's 5xx); only the calls it sends again after Etsy answers 429 (rate limited) are not counted.","isRequired":true,"uniqueKey":"oneOf.1.estimate.etsy_calls_max","typeLabel":"integer"}},"required":["etsy_calls_min","etsy_calls_max"],"additionalProperties":false,"description":"Etsy calls the write would make, as a range.","isRequired":true,"uniqueKey":"oneOf.1.estimate","typeLabel":"object"},"write_budget_remaining":{"oneOf":[{"type":"integer","description":"The shop's Etsy calls left in its rolling 24-hour write budget, as of Alura's last count; null when unknown (a dry run does not ask Etsy).","minimum":0,"isRequired":true,"uniqueKey":"oneOf.1.write_budget_remaining.oneOf.0","typeLabel":"integer"},{"type":"null","description":"The shop's Etsy calls left in its rolling 24-hour write budget, as of Alura's last count; null when unknown (a dry run does not ask Etsy).","isRequired":true,"uniqueKey":"oneOf.1.write_budget_remaining.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.write_budget_remaining","typeLabel":"integer | null"},"consequential":{"type":"boolean","description":"Whether the write needs a confirmation token over MCP (today: every write documented here).","isRequired":true,"uniqueKey":"oneOf.1.consequential","typeLabel":"boolean"},"confirmation_token":{"oneOf":[{"description":"Over MCP, for a consequential write: pass it as `confirmation_token` on the write itself, after the user confirmed. Valid 10 minutes, once. Null otherwise.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.confirmation_token.oneOf.0","typeLabel":"string"},{"description":"Over MCP, for a consequential write: pass it as `confirmation_token` on the write itself, after the user confirmed. Valid 10 minutes, once. Null otherwise.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.confirmation_token.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.confirmation_token","typeLabel":"string | null"},"confirmation_expires_at":{"oneOf":[{"description":"When the confirmation token expires (ISO 8601, UTC); null without one.","type":"string","isRequired":true,"uniqueKey":"oneOf.1.confirmation_expires_at.oneOf.0","typeLabel":"string"},{"description":"When the confirmation token expires (ISO 8601, UTC); null without one.","type":"null","isRequired":true,"uniqueKey":"oneOf.1.confirmation_expires_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.1.confirmation_expires_at","typeLabel":"string | null"},"notices":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","description":"`write_budget_stale`: Alura's last count of the write budget is from before its window moved on, so `write_budget_remaining` is null. `not_reverted`: a revert leaves a field of the change as it is (its detail says which and why). New codes may be added.","isRequired":true,"uniqueKey":"oneOf.1.notices.items.[INDEX].code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"oneOf.1.notices.items.[INDEX].detail","typeLabel":"string"}},"required":["code","detail"],"additionalProperties":false,"uniqueKey":"oneOf.1.notices.items.[INDEX]","typeLabel":"object"},"description":"Why a part of the plan is unknown; empty when nothing is.","isRequired":true,"uniqueKey":"oneOf.1.notices","typeLabel":"object[]"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"example":{"object":"workspace.listing","id":"1834720561","shop_id":"22841907","title":"Personalized name mug, custom coffee mug with name, 11oz ceramic gift","description":"A personalized name mug printed with the name you choose. 11oz white ceramic, dishwasher and microwave safe. Made to order in 1-3 days and shipped in a protective box, ready to gift for birthdays, holidays and thank-yous.","url":"https://www.etsy.com/listing/1834720561","state":"active","price":{"amount":"18.50","currency":"USD","usd":"18.50"},"quantity":37,"skus":["MUG-NAME-11"],"tags":["mug","name mug","custom mug","gift for her"],"materials":["ceramic"],"category":{"id":"1062"},"section":{"id":"3301"},"shipping_profile_id":"4401","return_policy_id":"4501","processing_profile_id":null,"production_partner_ids":null,"who_made":"i_did","when_made":"made_to_order","is_supply":false,"should_auto_renew":true,"updated_at":"2026-10-17T12:00:00.000Z","as_of":"2026-10-17T12:00:00.000Z","change":{"id":"chn_01JMCK00000000000000000002","status":"succeeded","applied_fields":["title","tags"],"failed_fields":[]},"notices":[],"reverts":"chn_01JMCK00000000000000000001","restored":["title","tags"],"not_reverted":[]},"examples":{"Example":{"title":"Example","value":{"object":"workspace.listing","id":"1834720561","shop_id":"22841907","title":"Personalized name mug, custom coffee mug with name, 11oz ceramic gift","description":"A personalized name mug printed with the name you choose. 11oz white ceramic, dishwasher and microwave safe. Made to order in 1-3 days and shipped in a protective box, ready to gift for birthdays, holidays and thank-yous.","url":"https://www.etsy.com/listing/1834720561","state":"active","price":{"amount":"18.50","currency":"USD","usd":"18.50"},"quantity":37,"skus":["MUG-NAME-11"],"tags":["mug","name mug","custom mug","gift for her"],"materials":["ceramic"],"category":{"id":"1062"},"section":{"id":"3301"},"shipping_profile_id":"4401","return_policy_id":"4501","processing_profile_id":null,"production_partner_ids":null,"who_made":"i_did","when_made":"made_to_order","is_supply":false,"should_auto_renew":true,"updated_at":"2026-10-17T12:00:00.000Z","as_of":"2026-10-17T12:00:00.000Z","change":{"id":"chn_01JMCK00000000000000000002","status":"succeeded","applied_fields":["title","tags"],"failed_fields":[]},"notices":[],"reverts":"chn_01JMCK00000000000000000001","restored":["title","tags"],"not_reverted":[]}}},"exampleType":"examples"}},"exampleType":"examples"},"f6ba110f-0712-469f-8b65-f5a125b70985":{"description":"Accepted: the write is still being applied on Etsy, or its outcome is being checked. Poll the change at `Location`.","headers":{"Request-Id":{"description":"`req_` + ULID; quote it when reporting a problem.","schema":{"type":"string"}},"Alura-Credits-Cost":{"description":"API credits this call cost.","schema":{"type":"integer"}},"Alura-Credits-Remaining":{"description":"API credits left in the workspace's monthly allowance, counting calls still in flight. Absent when it cannot be read right now.","schema":{"type":"integer"}},"Location":{"description":"The change to poll: `/v1/workspace/changes/{id}`.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before polling.","schema":{"type":"integer"}},"Idempotent-Replayed":{"description":"`true` when this answers an earlier request with the same key.","schema":{"type":"string"}},"Alura-Write-Deduplicated":{"description":"Set when this write was answered, free, from an earlier identical write: that write's change id (`chn_...`). Nothing was sent to Etsy again.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"workspace.change","isRequired":true,"uniqueKey":"object","typeLabel":"string"},"id":{"type":"string","description":"`chn_` + the change's number (a change made in Alura), or `chn_` + a write's 26-character ID (a change made through the API).","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"shop_id":{"type":"string","description":"The connected shop the change was made in.","isRequired":true,"uniqueKey":"shop_id","typeLabel":"string"},"target":{"type":"object","properties":{"type":{"type":"string","description":"What was changed: `listing`, `shop`, `receipt` or a shop setting (`section`, `return_policy`, `shipping_profile`, ...). New types may be added.","isRequired":true,"uniqueKey":"target.type","typeLabel":"string"},"id":{"type":"string","description":"Etsy ID, as a string.","isRequired":true,"uniqueKey":"target.id","typeLabel":"string"}},"required":["type","id"],"additionalProperties":false,"description":"What the change was made to.","isRequired":true,"uniqueKey":"target","typeLabel":"object"},"source":{"type":"string","description":"Where the change came from: `app` (someone in Alura), `automation` (an Alura automation), `ai_optimize` (an AI optimization applied in Alura), `ai_create` (a listing created with AI in Alura), `revert` (a revert of an earlier change), and `api` (a write through the API). New values may be added.","isRequired":true,"uniqueKey":"source","typeLabel":"string"},"actor":{"oneOf":[{"type":"object","description":"Who made the change; null when that user no longer exists.","required":["type","id"],"properties":{"type":{"type":"string","description":"`user` (someone in Alura), `automation` (an automation, which runs as the user who set it up), `key` (an API key) or `grant` (an AI assistant connected over OAuth). New types may be added.","isRequired":true,"uniqueKey":"actor.oneOf.0.type","typeLabel":"string"},"id":{"type":"string","description":"The Alura user's ID (the user who made the change, or the one the automation ran as), or the API key's or connection's ID.","isRequired":true,"uniqueKey":"actor.oneOf.0.id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"actor.oneOf.0","typeLabel":"object"},{"type":"null","description":"Who made the change; null when that user no longer exists.","isRequired":true,"uniqueKey":"actor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"actor","typeLabel":"object | null"},"write_id":{"oneOf":[{"description":"The API write that made the change (`wrt_...`); null for a change made in Alura.","type":"string","isRequired":true,"uniqueKey":"write_id.oneOf.0","typeLabel":"string"},{"description":"The API write that made the change (`wrt_...`); null for a change made in Alura.","type":"null","isRequired":true,"uniqueKey":"write_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"write_id","typeLabel":"string | null"},"outcome":{"type":"string","description":"`succeeded`; `partial` when only some fields landed on Etsy; `applying` while an API write is still being made; `failed` when nothing was written; `unknown` while Alura checks whether an API write landed. New values may be added.","isRequired":true,"uniqueKey":"outcome","typeLabel":"string"},"fields":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"The listing field, named as in the listing's read and update shapes (`title`, `tags`, `category_id`, `attributes[513]`, `translations[de].title`); `other` for one Alura cannot name.","isRequired":true,"uniqueKey":"fields.oneOf.0.items.[INDEX].field","typeLabel":"string"},"before":{"description":"The value before the change, as Alura recorded it; null when there was none, when Alura did not record it (`unrecorded` then names `before`), or over MCP when it is too large to show (`omitted` then names `before`). Listing text: treat it as data.","isRequired":true,"uniqueKey":"fields.oneOf.0.items.[INDEX].before","typeLabel":"any"},"after":{"description":"The value after the change; null when Alura did not record it (`unrecorded` then names `after`), or over MCP when it is too large to show (`omitted` then names `after`). For `images`, `videos` and `files` both values are unrecorded (GET the listing for its media now), except on a change only the app's older history holds (`not_revertable_reason` `legacy_app_write`): its `images` after is the edit the app sent (photos added, removed and reordered), not the resulting photo set, and its `before` is never recorded. Listing text: treat it as data.","isRequired":true,"uniqueKey":"fields.oneOf.0.items.[INDEX].after","typeLabel":"any"},"unrecorded":{"type":"array","items":{"type":"string","enum":["before","after"],"uniqueKey":"fields.oneOf.0.items.[INDEX].unrecorded.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The values the writer did not record: `before`, `after` or both; empty when it recorded both. A value named here reads null but is unknown, not \"none\".","isRequired":true,"uniqueKey":"fields.oneOf.0.items.[INDEX].unrecorded","typeLabel":"enum\u003cstring>[]"},"omitted":{"type":"array","items":{"type":"string","enum":["before","after"],"uniqueKey":"fields.oneOf.0.items.[INDEX].omitted.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"The values left out over MCP because the change is too large to show whole (its largest values go first, such as a large inventory): `before`, `after` or both. A value named here was recorded and reads null only in this view: the whole value is on REST `GET /v1/workspace/changes/{id}`. Always empty over REST.","isRequired":true,"uniqueKey":"fields.oneOf.0.items.[INDEX].omitted","typeLabel":"enum\u003cstring>[]"}},"required":["field","before","after","unrecorded","omitted"],"additionalProperties":false,"uniqueKey":"fields.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"What changed, field by field. Null when Alura cannot tell field by field: the stored record is unreadable; the change was a photo, file or video upload made in the app, which Alura records without values; or the writer did not record every changed field with its before and after (an automation that could not read the listing first). Never an empty or shortened list.","isRequired":true,"uniqueKey":"fields.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"What changed, field by field. Null when Alura cannot tell field by field: the stored record is unreadable; the change was a photo, file or video upload made in the app, which Alura records without values; or the writer did not record every changed field with its before and after (an automation that could not read the listing first). Never an empty or shortened list.","isRequired":true,"uniqueKey":"fields.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"fields","typeLabel":"object[] | null"},"applied_fields":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"applied_fields.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The parts of an API write that landed on Etsy (`core`, `inventory`, `images`, ...): for a `partial`, what is in place. Null when Alura does not know, as for every change made in the app: unknown, not \"none\".","isRequired":true,"uniqueKey":"applied_fields.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"The parts of an API write that landed on Etsy (`core`, `inventory`, `images`, ...): for a `partial`, what is in place. Null when Alura does not know, as for every change made in the app: unknown, not \"none\".","isRequired":true,"uniqueKey":"applied_fields.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"applied_fields","typeLabel":"string[] | null"},"failed_fields":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"The part that failed (`core`, `inventory`, `images`, ...), or, once Alura has recorded the change, the field it names (`images[77]`, `translations[de]`).","isRequired":true,"uniqueKey":"failed_fields.oneOf.0.items.[INDEX].field","typeLabel":"string"},"code":{"oneOf":[{"description":"Why it failed, as Alura's error code (`etsy_error`, ...): `outcome_unknown` when the answer from Etsy for this part was lost, so it may have applied (check the listing on Etsy before writing it again); `activation_skipped` for a publish (`activate`) held back because another part failed. Null when Alura has no code for it (the write's own record, before or without its full change record). New values may be added.","type":"string","isRequired":true,"uniqueKey":"failed_fields.oneOf.0.items.[INDEX].code.oneOf.0","typeLabel":"string"},{"description":"Why it failed, as Alura's error code (`etsy_error`, ...): `outcome_unknown` when the answer from Etsy for this part was lost, so it may have applied (check the listing on Etsy before writing it again); `activation_skipped` for a publish (`activate`) held back because another part failed. Null when Alura has no code for it (the write's own record, before or without its full change record). New values may be added.","type":"null","isRequired":true,"uniqueKey":"failed_fields.oneOf.0.items.[INDEX].code.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"failed_fields.oneOf.0.items.[INDEX].code","typeLabel":"string | null"}},"required":["field","code"],"additionalProperties":false,"uniqueKey":"failed_fields.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"The parts of an API write that failed, each with its error code: for a `partial`, what to finish with a new write. Null when Alura does not know, as for every change made in the app: unknown, not \"none\".","isRequired":true,"uniqueKey":"failed_fields.oneOf.0","typeLabel":"object[]"},{"type":"null","description":"The parts of an API write that failed, each with its error code: for a `partial`, what to finish with a new write. Null when Alura does not know, as for every change made in the app: unknown, not \"none\".","isRequired":true,"uniqueKey":"failed_fields.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"failed_fields","typeLabel":"object[] | null"},"before_source":{"oneOf":[{"description":"Where `before` came from: `live` (read from Etsy during the write) or `cache` (Alura's copy); null when unknown, as for every change made in the app.","type":"string","isRequired":true,"uniqueKey":"before_source.oneOf.0","typeLabel":"string"},{"description":"Where `before` came from: `live` (read from Etsy during the write) or `cache` (Alura's copy); null when unknown, as for every change made in the app.","type":"null","isRequired":true,"uniqueKey":"before_source.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"before_source","typeLabel":"string | null"},"before_as_of":{"oneOf":[{"type":"string","description":"When `before` was current; null when unknown.","isRequired":true,"uniqueKey":"before_as_of.oneOf.0","typeLabel":"string"},{"type":"null","description":"When `before` was current; null when unknown.","isRequired":true,"uniqueKey":"before_as_of.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"before_as_of","typeLabel":"string | null"},"event":{"oneOf":[{"description":"What kind of change: `edited`, `created`, `published`, `deleted`, `reverted`, `shipment_added`, `shop_updated`, `settings_created`, `settings_updated`, `settings_deleted`. Null while an API write is still being made. New values may be added.","type":"string","isRequired":true,"uniqueKey":"event.oneOf.0","typeLabel":"string"},{"description":"What kind of change: `edited`, `created`, `published`, `deleted`, `reverted`, `shipment_added`, `shop_updated`, `settings_created`, `settings_updated`, `settings_deleted`. Null while an API write is still being made. New values may be added.","type":"null","isRequired":true,"uniqueKey":"event.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"event","typeLabel":"string | null"},"revertable":{"type":"boolean","description":"Whether `POST /v1/workspace/changes/{id}/revert` can undo it (at least one field): a change Alura made through its change log with `before` read live from Etsy, whose core fields, inventory prices, SKUs or enabled flags, attributes, translations or personalization landed. Reverting checks the listing on Etsy again first (`409 changed_since` when it moved).","isRequired":true,"uniqueKey":"revertable","typeLabel":"boolean"},"not_revertable_reason":{"oneOf":[{"description":"Why none of it can be reverted: `legacy_app_write` (a change recorded only by the app: history only), `before_from_cache` (`before` came from Alura's copy, not Etsy), `before_unrecorded`, `after_unrecorded`, `not_landed` (its core fields did not land), `outcome_unknown` (whether it landed is not known: its outcome is `unknown` or `applying`, or a `partial` without its applied parts recorded; it may have), `delete`, `publish_fee` (undoing a publish is not free on Etsy), `shipment_notified_buyer` (Etsy emailed the buyer), `images`, `files` (a digital file added or removed: the API keeps no copy of a file), `quantity` (never restored from a snapshot: oversell risk), `reactivates_listing` (it would put the listing back on sale), `target_not_listing` (shop changes; a shop setting's change is `delete` once Alura has recorded that it deleted the setting, else `not_supported`), `not_supported` (a field or part the API cannot restore yet), `etsy_updated_at_unrecorded` (the updated time of the listing on Etsy after the change was not recorded, so Alura's record of it is incomplete), `needs_production_partners` (`who_made: someone_else` cannot be restored without production partners, which a revert never restores), `field_unrecorded` (the change did not record a value it wrote), `translation_added` (the change created a translation, and Etsy has no translation delete), `variations_changed` (an inventory change that added or removed variants, or moved which property sets the price or SKU), `reference_deleted` (the section, shipping profile or return policy it would put back has been deleted since), `revertability_unknown` (on a write's own answer only, when Alura could not read its change record just then: GET /v1/workspace/changes/{id} answers it). Null when it can. New values may be added.","type":"string","isRequired":true,"uniqueKey":"not_revertable_reason.oneOf.0","typeLabel":"string"},{"description":"Why none of it can be reverted: `legacy_app_write` (a change recorded only by the app: history only), `before_from_cache` (`before` came from Alura's copy, not Etsy), `before_unrecorded`, `after_unrecorded`, `not_landed` (its core fields did not land), `outcome_unknown` (whether it landed is not known: its outcome is `unknown` or `applying`, or a `partial` without its applied parts recorded; it may have), `delete`, `publish_fee` (undoing a publish is not free on Etsy), `shipment_notified_buyer` (Etsy emailed the buyer), `images`, `files` (a digital file added or removed: the API keeps no copy of a file), `quantity` (never restored from a snapshot: oversell risk), `reactivates_listing` (it would put the listing back on sale), `target_not_listing` (shop changes; a shop setting's change is `delete` once Alura has recorded that it deleted the setting, else `not_supported`), `not_supported` (a field or part the API cannot restore yet), `etsy_updated_at_unrecorded` (the updated time of the listing on Etsy after the change was not recorded, so Alura's record of it is incomplete), `needs_production_partners` (`who_made: someone_else` cannot be restored without production partners, which a revert never restores), `field_unrecorded` (the change did not record a value it wrote), `translation_added` (the change created a translation, and Etsy has no translation delete), `variations_changed` (an inventory change that added or removed variants, or moved which property sets the price or SKU), `reference_deleted` (the section, shipping profile or return policy it would put back has been deleted since), `revertability_unknown` (on a write's own answer only, when Alura could not read its change record just then: GET /v1/workspace/changes/{id} answers it). Null when it can. New values may be added.","type":"null","isRequired":true,"uniqueKey":"not_revertable_reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"not_revertable_reason","typeLabel":"string | null"},"reverts":{"oneOf":[{"description":"For a change with `source: revert`: the id of the change it undid (`chn_...`). Null otherwise, and on the `workspace.change` a revert answers with while Etsy is still answering (GET /v1/workspace/changes/{id} has it once the revert is recorded).","type":"string","isRequired":true,"uniqueKey":"reverts.oneOf.0","typeLabel":"string"},{"description":"For a change with `source: revert`: the id of the change it undid (`chn_...`). Null otherwise, and on the `workspace.change` a revert answers with while Etsy is still answering (GET /v1/workspace/changes/{id} has it once the revert is recorded).","type":"null","isRequired":true,"uniqueKey":"reverts.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"reverts","typeLabel":"string | null"},"created_at":{"type":"string","description":"When the change was made.","isRequired":true,"uniqueKey":"created_at","typeLabel":"string"},"as_of":{"type":"string","description":"When this record was read.","isRequired":true,"uniqueKey":"as_of","typeLabel":"string"}},"required":["object","id","shop_id","target","source","actor","write_id","outcome","fields","applied_fields","failed_fields","before_source","before_as_of","event","revertable","not_revertable_reason","reverts","created_at","as_of"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"object":"workspace.change","id":"\u003cstring>","shop_id":"\u003cstring>","target":{"type":"\u003cstring>","id":"\u003cstring>"},"source":"\u003cstring>","actor":{"type":"\u003cstring>","id":"\u003cstring>"},"write_id":"\u003cstring>","outcome":"\u003cstring>","fields":[{"field":"\u003cstring>","before":"\u003cunknown>","after":"\u003cunknown>","unrecorded":["before"],"omitted":["before"]}],"applied_fields":["\u003cstring>"],"failed_fields":[{"field":"\u003cstring>","code":"\u003cstring>"}],"before_source":"\u003cstring>","before_as_of":"\u003cstring>","event":"\u003cstring>","revertable":true,"not_revertable_reason":"\u003cstring>","reverts":"\u003cstring>","created_at":"\u003cstring>","as_of":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"0f8565b8-ff2d-4319-aecf-ae7283ab793e":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"459e29b6-28e8-4696-a15e-07773e1960a1":{"description":"Error","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.alura.io/errors/unauthorized","title":"Unauthorized","status":401,"code":"unauthorized","detail":"Unauthorized","suggestion":"Send a valid API key as `Authorization: Bearer alura_sk_...`.","retryable":false,"request_id":"req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.alura.io/errors/unauthorized","title":"Unauthorized","status":401,"code":"unauthorized","detail":"Unauthorized","suggestion":"Send a valid API key as `Authorization: Bearer alura_sk_...`.","retryable":false,"request_id":"req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"}}},"exampleType":"examples"}},"exampleType":"examples"},"38c5a427-1851-4a78-98da-e1032d31b968":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"98e5dde1-68a3-421e-83a9-e5604c4456f1":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"e24ca0df-3165-4994-90be-cdb1e120532a":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"2c2afb64-9724-47d4-a9f4-7dd47051f303":{"description":"Error","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://docs.alura.io/errors/method_not_allowed","title":"Method not allowed","status":405,"code":"method_not_allowed","detail":"Method not allowed","suggestion":"Use one of the methods in the Allow header.","retryable":false,"request_id":"req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"},"examples":{"Example":{"title":"Example","value":{"type":"https://docs.alura.io/errors/method_not_allowed","title":"Method not allowed","status":405,"code":"method_not_allowed","detail":"Method not allowed","suggestion":"Use one of the methods in the Allow header.","retryable":false,"request_id":"req_01JQ5W3H8M2N4P6R8T0V2X4Z6B"}}},"exampleType":"examples"}},"exampleType":"examples"},"6cc379a6-4fc0-4111-a427-2e4b524de60f":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`. `change_not_revertable` carries `reason`, `not_reverted`. `changed_since` carries `changed`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details.","required":["type","title","status","code","detail","suggestion","retryable","request_id"],"properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why: the change's `not_revertable_reason` (or the refusal's own reason when the revert was refused on its way to Etsy, null if it named none).","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why: the change's `not_revertable_reason` (or the refusal's own reason when the revert was refused on its way to Etsy, null if it named none).","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"What moved on Etsy since the change: the fields it would restore that no longer hold its `after`, and `category_id` when the change moved the category and the listing was edited on Etsy since (its updated time more than 10 s from the change's, or unknown). Null if SDS named none.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"What moved on Etsy since the change: the fields it would restore that no longer hold its `after`, and `category_id` when the change moved the category and the listing was edited on Etsy since (its updated time more than 10 s from the change's, or unknown). Null if SDS named none.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"},"not_reverted":{"description":"When Alura refused it: every field of the change and why it is not restored.","type":"array","items":{"type":"object","properties":{"field":{"type":"string","description":"A field of the change.","isRequired":true,"uniqueKey":"not_reverted.items.[INDEX].field","typeLabel":"string"},"reason":{"type":"string","description":"Why it is not restored.","isRequired":true,"uniqueKey":"not_reverted.items.[INDEX].reason","typeLabel":"string"}},"required":["field","reason"],"additionalProperties":false,"uniqueKey":"not_reverted.items.[INDEX]","typeLabel":"object"},"uniqueKey":"not_reverted","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"],"not_reverted":[{"field":"\u003cstring>","reason":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"fb3e5609-2650-431c-8139-3ba548fc774d":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"dbf2ca3c-7406-460d-84fe-cf268faebaa1":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"f29ecb02-c792-4f30-ac92-87ef0b0fa73c":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"cf0b411a-49c7-418c-bae0-ea2b97562b97":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"54d612e2-c62f-41f4-a097-ba047285815c":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"b9b27171-59ac-49c9-867e-a05f69e18968":{"description":"Error. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem details. A refusal of a write Alura recorded carries its `change_id`, and by code `budget`, `reason`, `changed`, `missing`, `reconnect_url` or `missing_scopes`.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"A code from the error catalog; new codes may be added.","x-extensible-enum":["invalid_request","unknown_parameter","invalid_cursor","cursor_window_exceeded","invalid_reference","id_type_mismatch","invalid_keyword","shop_id_required","listing_not_publishable","sales_window_not_covered","unauthorized","credits_exhausted","plan_required","insufficient_scope","workspace_required","workspace_locked","your_shop_unavailable","writes_suspended","browser_refused","role_required","impersonation_refused","recent_sign_in_required","etsy_scope_required","etsy_partner_required","not_found","not_collected","not_found_on_etsy","shop_opted_out","method_not_allowed","conflict","key_limit_reached","reconnect_required","settings_not_fetched","listing_busy","settings_busy","shop_create_busy","idempotency_partial_unverifiable","listing_has_variations","changed_since","change_not_revertable","listing_in_ab_test","activation_skipped","idempotency_processing","confirmation_required","test_shop_active_cap","write_outcome_unknown","unprocessable","listing_removed_on_etsy","endpoint_removed","rate_limited","throttled","daily_credit_cap_exceeded","credits_reserved","fetch_limit_reached","write_rate_limited","sync_cooldown","shop_write_budget_exhausted","internal_error","write_misconfigured","upstream_unavailable","credits_unavailable","service_unavailable","fetch_unavailable","create_lock_unavailable","writes_paused","etsy_capacity","upstream_timeout"],"isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","isRequired":true,"uniqueKey":"detail","typeLabel":"string"},"suggestion":{"type":"string","isRequired":true,"uniqueKey":"suggestion","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"retryable","typeLabel":"boolean"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"upgrade_url":{"type":"string","format":"uri","description":"credits_exhausted and plan_required: where to upgrade the plan.","uniqueKey":"upgrade_url","typeLabel":"string\u003curi>"},"credits_needed":{"type":"integer","description":"API credit refusals: what the call needed.","uniqueKey":"credits_needed","typeLabel":"integer"},"credits_remaining":{"type":"integer","description":"API credit refusals: what is left (of the month, or of the day for daily_credit_cap_exceeded).","uniqueKey":"credits_remaining","typeLabel":"integer"},"resets_at":{"type":"string","format":"date-time","description":"credits_exhausted and daily_credit_cap_exceeded: when the limit resets.","uniqueKey":"resets_at","typeLabel":"string\u003cdate-time>"},"change_id":{"type":"string","description":"The recorded write this refusal answers, as its change (`chn_...`): read it (`GET /v1/workspace/changes/{id}`) before writing again.","uniqueKey":"change_id","typeLabel":"string"},"budget":{"type":"string","description":"`shop_write_budget_exhausted`: which of the shop's Etsy write budgets ran out (`creates`, `activations`, `etsy_calls`).","uniqueKey":"budget","typeLabel":"string"},"reason":{"oneOf":[{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"string","uniqueKey":"reason.oneOf.0","typeLabel":"string"},{"description":"Why, as an identifier: for `change_not_revertable`, why the revert was refused; null when none was named.","type":"null","uniqueKey":"reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"reason","typeLabel":"string | null"},"changed":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"changed.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`changed_since`: the fields that changed on Etsy since the change; null when none was named.","uniqueKey":"changed.oneOf.1","typeLabel":"null"}],"uniqueKey":"changed","typeLabel":"string[] | null"},"missing":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`listing_not_publishable`: what Etsy said the listing lacks to publish; null when it named none.","uniqueKey":"missing.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing","typeLabel":"string[] | null"},"reconnect_url":{"type":"string","description":"`reconnect_required` and `etsy_scope_required`: where the shop is reconnected in Alura.","uniqueKey":"reconnect_url","typeLabel":"string"},"missing_scopes":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"missing_scopes.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.0","typeLabel":"string[]"},{"type":"null","description":"`etsy_scope_required`: the Etsy scopes the shop's connection lacks; null when none was named.","uniqueKey":"missing_scopes.oneOf.1","typeLabel":"null"}],"uniqueKey":"missing_scopes","typeLabel":"string[] | null"}},"required":["type","title","status","code","detail","suggestion","retryable","request_id"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"code":"\u003cstring>","detail":"\u003cstring>","suggestion":"\u003cstring>","retryable":true,"request_id":"\u003cstring>","upgrade_url":"\u003cstring>","credits_needed":123,"credits_remaining":123,"resets_at":"2023-11-07T05:31:56Z","change_id":"\u003cstring>","budget":"\u003cstring>","reason":"\u003cstring>","changed":["\u003cstring>"],"missing":["\u003cstring>"],"reconnect_url":"\u003cstring>","missing_scopes":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"6144536c-06b0-4b8d-affd-b8dccec7d5ee":{"apiKey":{"type":"http","scheme":"bearer","description":"An API key: `Authorization: Bearer alura_sk_...`.","scopes":[],"schemeName":"apiKey"}}},"servers":{"6c764af2-fbc8-469e-a5ff-745270cc266b":{"url":"https://api.alura.io"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"An API key: `Authorization: Bearer alura_sk_...`.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"An API key: `Authorization: Bearer alura_sk_...`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"apiKey","name":"Authorization"}],"title":"apiKey"}]},"originalFileLocation":"openapi.json"},"subdomain":"alura","siteName":"Alura API","title":"Revert change - Alura API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-07T16:18:23.788Z","originalFileLocation":"api-reference/workspace/changes/revert.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=\"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Alura API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/alura/Zo6rWRwbAxOIKIxc/_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/alura/Zo6rWRwbAxOIKIxc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/alura/Zo6rWRwbAxOIKIxc/_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/alura/Zo6rWRwbAxOIKIxc/_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/alura/Zo6rWRwbAxOIKIxc/_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/alura/Zo6rWRwbAxOIKIxc/_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/alura/Zo6rWRwbAxOIKIxc/_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/alura/Zo6rWRwbAxOIKIxc/_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/alura/Zo6rWRwbAxOIKIxc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Revert change - Alura API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Alura API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.alura.io/api-reference/workspace/changes/revert\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://alura.mintlify.site/_mintlify/api/og/v2?division=Changes\u0026amp;title=Revert+change\u0026amp;description=Undo+one+change+Alura+made+to+a+listing+of+your+connected+Etsy+shops%3A+the+fields+it+changed+go+back+to+their+values+from+before+it%2C+as+read+live+from+Etsy+at+th\u0026amp;theme=3c07f090342beadd77468265\u0026amp;signature=3c7b2cb2d0edd77490927220aa6aed4dbc48403d6d649fd172a5935da85dd521\">\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=\"Revert change - Alura API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://alura.mintlify.site/_mintlify/api/og/v2?division=Changes\u0026amp;title=Revert+change\u0026amp;description=Undo+one+change+Alura+made+to+a+listing+of+your+connected+Etsy+shops%3A+the+fields+it+changed+go+back+to+their+values+from+before+it%2C+as+read+live+from+Etsy+at+th\u0026amp;theme=3c07f090342beadd77468265\u0026amp;signature=3c7b2cb2d0edd77490927220aa6aed4dbc48403d6d649fd172a5935da85dd521\">\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/alura/Zo6rWRwbAxOIKIxc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Alura API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#155EEF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.alura.io/api-reference/workspace/changes/revert\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/workspace/changes/revert.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.alura.io/#organization\",\"name\":\"Alura API\",\"url\":\"https://docs.alura.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/alura/HySS5CT36sWBL9EL/logo/light.svg?fit=max\u0026auto=format\u0026n=HySS5CT36sWBL9EL\u0026q=85\u0026s=6afcc5174d02ee0af4c233126964240a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.alura.io#website\",\"name\":\"Alura API\",\"url\":\"https://docs.alura.io\",\"publisher\":{\"@id\":\"https://docs.alura.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.alura.io/api-reference/workspace/changes/revert#webpage\",\"url\":\"https://docs.alura.io/api-reference/workspace/changes/revert\",\"name\":\"Revert change\",\"description\":\"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.\",\"dateModified\":\"2026-11-07T16:18:23.788Z\",\"isPartOf\":{\"@id\":\"https://docs.alura.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.alura.io/api-reference/workspace/changes/revert#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.alura.io/api-reference/workspace/changes/revert#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Your shop\",\"item\":\"https://docs.alura.io/api-reference/workspace/shops/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Changes\",\"item\":\"https://docs.alura.io/api-reference/workspace/changes/list\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Revert change\",\"item\":\"https://docs.alura.io/api-reference/workspace/changes/revert\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.alura.io/api-reference/workspace/changes/revert#apireference\",\"headline\":\"Revert change\",\"name\":\"Revert change\",\"description\":\"Undo one change Alura made to a listing of your connected Etsy shops: the fields it changed go back to their values from before it, as read live from Etsy at the time.\",\"url\":\"https://docs.alura.io/api-reference/workspace/changes/revert\",\"mainEntityOfPage\":{\"@id\":\"https://docs.alura.io/api-reference/workspace/changes/revert#webpage\"},\"dateModified\":\"2026-11-07T16:18:23.788Z\",\"publisher\":{\"@id\":\"https://docs.alura.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.alura.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Alura API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Alura API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"Introduction","href":"/api-reference/introduction"},{"title":"Credits and limits","href":"/api-reference/credits-and-limits"},{"title":"Errors","href":"/api-reference/errors"}]},{"group":"Research","pages":[{"group":"Lookup","pages":[{"title":"Look up URL or shop","deprecated":null,"version":null,"sidebarTitle":"Look up URL or shop","openapi":"/openapi.json get /v1/research/lookup","href":"/api-reference/research/lookup"}]},{"group":"Products","pages":[{"title":"Search products","deprecated":null,"version":null,"sidebarTitle":"Search products","openapi":"/openapi.json get /v1/research/products","href":"/api-reference/research/products/search"},{"title":"Get trending products","deprecated":null,"version":null,"sidebarTitle":"Get trending products","openapi":"/openapi.json get /v1/research/products/trending","href":"/api-reference/research/products/trending"},{"title":"Get product","deprecated":null,"version":null,"sidebarTitle":"Get product","openapi":"/openapi.json get /v1/research/products/{id}","href":"/api-reference/research/products/get"},{"title":"Get products by ID","openapi":"openapi-variants.json GET /v1/research/products","href":"/api-reference/research/products/getMany"},{"title":"Get similar products","deprecated":null,"version":null,"sidebarTitle":"Get similar products","openapi":"/openapi.json get /v1/research/products/{id}/similar","href":"/api-reference/research/products/similar"},{"title":"Get product history","deprecated":null,"version":null,"sidebarTitle":"Get product history","openapi":"/openapi.json get /v1/research/products/{id}/history","href":"/api-reference/research/products/history"},{"title":"Get sales histories","deprecated":null,"version":null,"sidebarTitle":"Get sales histories","openapi":"/openapi.json get /v1/research/history","href":"/api-reference/research/history/getmany"},{"title":"List product reviews","deprecated":null,"version":null,"sidebarTitle":"List product reviews","openapi":"/openapi.json get /v1/research/products/{id}/reviews","href":"/api-reference/research/products/reviews"}]},{"group":"Shops","pages":[{"title":"Search shops","deprecated":null,"version":null,"sidebarTitle":"Search shops","openapi":"/openapi.json get /v1/research/shops","href":"/api-reference/research/shops/search"},{"title":"Get trending shops","deprecated":null,"version":null,"sidebarTitle":"Get trending shops","openapi":"/openapi.json get /v1/research/shops/trending","href":"/api-reference/research/shops/trending"},{"title":"Get shop","deprecated":null,"version":null,"sidebarTitle":"Get shop","openapi":"/openapi.json get /v1/research/shops/{id}","href":"/api-reference/research/shops/get"},{"title":"List shop products","deprecated":null,"version":null,"sidebarTitle":"List shop products","openapi":"/openapi.json get /v1/research/shops/{id}/products","href":"/api-reference/research/shops/products"},{"title":"Get similar shops","deprecated":null,"version":null,"sidebarTitle":"Get similar shops","openapi":"/openapi.json get /v1/research/shops/{id}/similar","href":"/api-reference/research/shops/similar"},{"title":"List shop reviews","deprecated":null,"version":null,"sidebarTitle":"List shop reviews","openapi":"/openapi.json get /v1/research/shops/{id}/reviews","href":"/api-reference/research/shops/reviews"},{"title":"Get shop history","deprecated":null,"version":null,"sidebarTitle":"Get shop history","openapi":"/openapi.json get /v1/research/shops/{id}/history","href":"/api-reference/research/shops/history"}]},{"group":"Keywords","pages":[{"title":"Look up keywords","deprecated":null,"version":null,"sidebarTitle":"Look up keywords","openapi":"/openapi.json get /v1/research/keywords","href":"/api-reference/research/keywords/lookup"},{"title":"Get trending keywords","deprecated":null,"version":null,"sidebarTitle":"Get trending keywords","openapi":"/openapi.json get /v1/research/keywords/trending","href":"/api-reference/research/keywords/trending"},{"title":"Get keyword","deprecated":null,"version":null,"sidebarTitle":"Get keyword","openapi":"/openapi.json get /v1/research/keywords/{id}","href":"/api-reference/research/keywords/get"},{"title":"Get related keywords","deprecated":null,"version":null,"sidebarTitle":"Get related keywords","openapi":"/openapi.json get /v1/research/keywords/{id}/related","href":"/api-reference/research/keywords/related"},{"title":"Get top products","deprecated":null,"version":null,"sidebarTitle":"Get top products","openapi":"/openapi.json get /v1/research/keywords/{id}/products","href":"/api-reference/research/keywords/products"},{"title":"Get top shops","deprecated":null,"version":null,"sidebarTitle":"Get top shops","openapi":"/openapi.json get /v1/research/keywords/{id}/shops","href":"/api-reference/research/keywords/shops"},{"title":"Get keyword history","deprecated":null,"version":null,"sidebarTitle":"Get keyword history","openapi":"/openapi.json get /v1/research/keywords/{id}/history","href":"/api-reference/research/keywords/history"}]},{"group":"Saved","pages":[{"group":"Folders","pages":[{"title":"List saved folders","deprecated":null,"version":null,"sidebarTitle":"List saved folders","openapi":"/openapi.json get /v1/research/saved/folders","href":"/api-reference/research/saved/folders/list"},{"title":"Create saved folder","deprecated":null,"version":null,"sidebarTitle":"Create saved folder","openapi":"/openapi.json post /v1/research/saved/folders","href":"/api-reference/research/saved/folders/create"},{"title":"Get saved folder","deprecated":null,"version":null,"sidebarTitle":"Get saved folder","openapi":"/openapi.json get /v1/research/saved/folders/{id}","href":"/api-reference/research/saved/folders/get"},{"title":"Update saved folder","deprecated":null,"version":null,"sidebarTitle":"Update saved folder","openapi":"/openapi.json patch /v1/research/saved/folders/{id}","href":"/api-reference/research/saved/folders/update"},{"title":"Delete saved folder","deprecated":null,"version":null,"sidebarTitle":"Delete saved folder","openapi":"/openapi.json delete /v1/research/saved/folders/{id}","href":"/api-reference/research/saved/folders/delete"}]},{"group":"Lists","pages":[{"title":"List saved lists","deprecated":null,"version":null,"sidebarTitle":"List saved lists","openapi":"/openapi.json get /v1/research/saved/lists","href":"/api-reference/research/saved/lists/list"},{"title":"Create saved list","deprecated":null,"version":null,"sidebarTitle":"Create saved list","openapi":"/openapi.json post /v1/research/saved/lists","href":"/api-reference/research/saved/lists/create"},{"title":"Get saved list","deprecated":null,"version":null,"sidebarTitle":"Get saved list","openapi":"/openapi.json get /v1/research/saved/lists/{id}","href":"/api-reference/research/saved/lists/get"},{"title":"Update saved list","deprecated":null,"version":null,"sidebarTitle":"Update saved list","openapi":"/openapi.json patch /v1/research/saved/lists/{id}","href":"/api-reference/research/saved/lists/update"},{"title":"Delete saved list","deprecated":null,"version":null,"sidebarTitle":"Delete saved list","openapi":"/openapi.json delete /v1/research/saved/lists/{id}","href":"/api-reference/research/saved/lists/delete"}]},{"group":"Items","pages":[{"title":"List saved items","deprecated":null,"version":null,"sidebarTitle":"List saved items","openapi":"/openapi.json get /v1/research/saved/lists/{id}/items","href":"/api-reference/research/saved/items/list"},{"title":"List all saved items","deprecated":null,"version":null,"sidebarTitle":"List all saved items","openapi":"/openapi.json get /v1/research/saved/items","href":"/api-reference/research/saved/items/search"},{"title":"Add saved items","deprecated":null,"version":null,"sidebarTitle":"Add saved items","openapi":"/openapi.json post /v1/research/saved/lists/{id}/items","href":"/api-reference/research/saved/items/add"},{"title":"Remove saved items","deprecated":null,"version":null,"sidebarTitle":"Remove saved items","openapi":"/openapi.json delete /v1/research/saved/lists/{id}/items","href":"/api-reference/research/saved/items/remove"}]}]}]},{"group":"Your shop","pages":[{"group":"Shop","pages":[{"title":"List shops","deprecated":null,"version":null,"sidebarTitle":"List shops","openapi":"/openapi.json get /v1/workspace/shops","href":"/api-reference/workspace/shops/list"},{"title":"Get shop","deprecated":null,"version":null,"sidebarTitle":"Get shop","openapi":"/openapi.json get /v1/workspace/shops/{shop_id}","href":"/api-reference/workspace/shops/get"},{"title":"Update shop","deprecated":null,"version":null,"sidebarTitle":"Update shop","openapi":"/openapi.json patch /v1/workspace/shops/{shop_id}","href":"/api-reference/workspace/shops/update"},{"group":"Sections","pages":[{"title":"List sections","deprecated":null,"version":null,"sidebarTitle":"List sections","openapi":"/openapi.json get /v1/workspace/sections","href":"/api-reference/workspace/sections/list"},{"title":"Create section","deprecated":null,"version":null,"sidebarTitle":"Create section","openapi":"/openapi.json post /v1/workspace/sections","href":"/api-reference/workspace/sections/create"},{"title":"Update section","deprecated":null,"version":null,"sidebarTitle":"Update section","openapi":"/openapi.json patch /v1/workspace/sections/{id}","href":"/api-reference/workspace/sections/update"},{"title":"Delete section","deprecated":null,"version":null,"sidebarTitle":"Delete section","openapi":"/openapi.json delete /v1/workspace/sections/{id}","href":"/api-reference/workspace/sections/delete"}]},{"group":"Shipping profiles","pages":[{"title":"List shipping profiles","deprecated":null,"version":null,"sidebarTitle":"List shipping profiles","openapi":"/openapi.json get /v1/workspace/shipping-profiles","href":"/api-reference/workspace/shippingprofiles/list"},{"title":"Get shipping profile","deprecated":null,"version":null,"sidebarTitle":"Get shipping profile","openapi":"/openapi.json get /v1/workspace/shipping-profiles/{id}","href":"/api-reference/workspace/shippingprofiles/get"},{"title":"Create shipping profile","deprecated":null,"version":null,"sidebarTitle":"Create shipping profile","openapi":"/openapi.json post /v1/workspace/shipping-profiles","href":"/api-reference/workspace/shippingprofiles/create"},{"title":"Update shipping profile","deprecated":null,"version":null,"sidebarTitle":"Update shipping profile","openapi":"/openapi.json patch /v1/workspace/shipping-profiles/{id}","href":"/api-reference/workspace/shippingprofiles/update"},{"title":"Delete shipping profile","deprecated":null,"version":null,"sidebarTitle":"Delete shipping profile","openapi":"/openapi.json delete /v1/workspace/shipping-profiles/{id}","href":"/api-reference/workspace/shippingprofiles/delete"},{"group":"Destinations","pages":[{"title":"List destinations","deprecated":null,"version":null,"sidebarTitle":"List destinations","openapi":"/openapi.json get /v1/workspace/shipping-profiles/{id}/destinations","href":"/api-reference/workspace/shippingprofiles/destinations"},{"title":"Create destination","deprecated":null,"version":null,"sidebarTitle":"Create destination","openapi":"/openapi.json post /v1/workspace/shipping-profiles/{id}/destinations","href":"/api-reference/workspace/shippingprofiles/destinations/create"},{"title":"Update destination","deprecated":null,"version":null,"sidebarTitle":"Update destination","openapi":"/openapi.json patch /v1/workspace/shipping-profiles/{id}/destinations/{destination_id}","href":"/api-reference/workspace/shippingprofiles/destinations/update"},{"title":"Delete destination","deprecated":null,"version":null,"sidebarTitle":"Delete destination","openapi":"/openapi.json delete /v1/workspace/shipping-profiles/{id}/destinations/{destination_id}","href":"/api-reference/workspace/shippingprofiles/destinations/delete"}]},{"group":"Upgrades","pages":[{"title":"List delivery upgrades","deprecated":null,"version":null,"sidebarTitle":"List delivery upgrades","openapi":"/openapi.json get /v1/workspace/shipping-profiles/{id}/upgrades","href":"/api-reference/workspace/shippingprofiles/deliveryoptions"},{"title":"Create upgrade","deprecated":null,"version":null,"sidebarTitle":"Create upgrade","openapi":"/openapi.json post /v1/workspace/shipping-profiles/{id}/upgrades","href":"/api-reference/workspace/shippingprofiles/deliveryoptions/create"},{"title":"Update upgrade","deprecated":null,"version":null,"sidebarTitle":"Update upgrade","openapi":"/openapi.json patch /v1/workspace/shipping-profiles/{id}/upgrades/{upgrade_id}","href":"/api-reference/workspace/shippingprofiles/deliveryoptions/update"},{"title":"Delete upgrade","deprecated":null,"version":null,"sidebarTitle":"Delete upgrade","openapi":"/openapi.json delete /v1/workspace/shipping-profiles/{id}/upgrades/{upgrade_id}","href":"/api-reference/workspace/shippingprofiles/deliveryoptions/delete"}]}]},{"group":"Return policies","pages":[{"title":"List return policies","deprecated":null,"version":null,"sidebarTitle":"List return policies","openapi":"/openapi.json get /v1/workspace/return-policies","href":"/api-reference/workspace/returnpolicies/list"},{"title":"Get return policy","deprecated":null,"version":null,"sidebarTitle":"Get return policy","openapi":"/openapi.json get /v1/workspace/return-policies/{id}","href":"/api-reference/workspace/returnpolicies/get"},{"title":"Create return policy","deprecated":null,"version":null,"sidebarTitle":"Create return policy","openapi":"/openapi.json post /v1/workspace/return-policies","href":"/api-reference/workspace/returnpolicies/create"},{"title":"Update return policy","deprecated":null,"version":null,"sidebarTitle":"Update return policy","openapi":"/openapi.json patch /v1/workspace/return-policies/{id}","href":"/api-reference/workspace/returnpolicies/update"},{"title":"Delete return policy","deprecated":null,"version":null,"sidebarTitle":"Delete return policy","openapi":"/openapi.json delete /v1/workspace/return-policies/{id}","href":"/api-reference/workspace/returnpolicies/delete"},{"title":"Move policy listings","deprecated":null,"version":null,"sidebarTitle":"Move policy listings","openapi":"/openapi.json post /v1/workspace/return-policies/{id}/move-listings","href":"/api-reference/workspace/returnpolicies/movelistings"}]},{"group":"Processing profiles","pages":[{"title":"List profiles","deprecated":null,"version":null,"sidebarTitle":"List profiles","openapi":"/openapi.json get /v1/workspace/processing-profiles","href":"/api-reference/workspace/processingprofiles/list"},{"title":"Get profile","deprecated":null,"version":null,"sidebarTitle":"Get profile","openapi":"/openapi.json get /v1/workspace/processing-profiles/{id}","href":"/api-reference/workspace/processingprofiles/get"},{"title":"Create profile","deprecated":null,"version":null,"sidebarTitle":"Create profile","openapi":"/openapi.json post /v1/workspace/processing-profiles","href":"/api-reference/workspace/processingprofiles/create"},{"title":"Update profile","deprecated":null,"version":null,"sidebarTitle":"Update profile","openapi":"/openapi.json patch /v1/workspace/processing-profiles/{id}","href":"/api-reference/workspace/processingprofiles/update"},{"title":"Delete profile","deprecated":null,"version":null,"sidebarTitle":"Delete profile","openapi":"/openapi.json delete /v1/workspace/processing-profiles/{id}","href":"/api-reference/workspace/processingprofiles/delete"}]},{"group":"Holiday settings","pages":[{"title":"Get holiday settings","deprecated":null,"version":null,"sidebarTitle":"Get holiday settings","openapi":"/openapi.json get /v1/workspace/holiday-settings","href":"/api-reference/workspace/holidaysettings/list"},{"title":"Update holiday settings","deprecated":null,"version":null,"sidebarTitle":"Update holiday settings","openapi":"/openapi.json patch /v1/workspace/holiday-settings","href":"/api-reference/workspace/holidaysettings/update"}]},{"group":"Production partners","pages":[{"title":"List partners","deprecated":null,"version":null,"sidebarTitle":"List partners","openapi":"/openapi.json get /v1/workspace/production-partners","href":"/api-reference/workspace/productionpartners/list"}]}]},{"group":"Stats","pages":[{"title":"Get shop stats","deprecated":null,"version":null,"sidebarTitle":"Get shop stats","openapi":"/openapi.json get /v1/workspace/stats","href":"/api-reference/workspace/stats/get"}]},{"group":"Listings","pages":[{"title":"Search listings","deprecated":null,"version":null,"sidebarTitle":"Search listings","openapi":"/openapi.json get /v1/workspace/listings","href":"/api-reference/workspace/listings/search"},{"title":"Get listing","deprecated":null,"version":null,"sidebarTitle":"Get listing","openapi":"/openapi.json get /v1/workspace/listings/{id}","href":"/api-reference/workspace/listings/get"},{"title":"Get listing stats","deprecated":null,"version":null,"sidebarTitle":"Get listing stats","openapi":"/openapi.json get /v1/workspace/listings/{id}/stats","href":"/api-reference/workspace/listings/stats"},{"title":"Update listing","deprecated":null,"version":null,"sidebarTitle":"Update listing","openapi":"/openapi.json patch /v1/workspace/listings/{id}","href":"/api-reference/workspace/listings/update"},{"title":"Create listing","deprecated":null,"version":null,"sidebarTitle":"Create listing","openapi":"/openapi.json post /v1/workspace/listings","href":"/api-reference/workspace/listings/create"},{"title":"Duplicate listing","deprecated":null,"version":null,"sidebarTitle":"Duplicate listing","openapi":"/openapi.json post /v1/workspace/listings/{id}/duplicate","href":"/api-reference/workspace/listings/duplicate"},{"title":"Delete listing","deprecated":null,"version":null,"sidebarTitle":"Delete listing","openapi":"/openapi.json delete /v1/workspace/listings/{id}","href":"/api-reference/workspace/listings/delete"},{"group":"Images","pages":[{"title":"Add images","deprecated":null,"version":null,"sidebarTitle":"Add images","openapi":"/openapi.json post /v1/workspace/listings/{id}/images","href":"/api-reference/workspace/listings/images/add"},{"title":"Update alt text","deprecated":null,"version":null,"sidebarTitle":"Update alt text","openapi":"/openapi.json patch /v1/workspace/listings/{id}/images/{image_id}","href":"/api-reference/workspace/listings/images/update"},{"title":"Reorder images","deprecated":null,"version":null,"sidebarTitle":"Reorder images","openapi":"/openapi.json put /v1/workspace/listings/{id}/images/order","href":"/api-reference/workspace/listings/images/reorder"},{"title":"Remove image","deprecated":null,"version":null,"sidebarTitle":"Remove image","openapi":"/openapi.json delete /v1/workspace/listings/{id}/images/{image_id}","href":"/api-reference/workspace/listings/images/remove"}]},{"group":"Videos","pages":[{"title":"Add video","deprecated":null,"version":null,"sidebarTitle":"Add video","openapi":"/openapi.json post /v1/workspace/listings/{id}/videos","href":"/api-reference/workspace/listings/videos/add"},{"title":"Feature video","deprecated":null,"version":null,"sidebarTitle":"Feature video","openapi":"/openapi.json put /v1/workspace/listings/{id}/videos/featured","href":"/api-reference/workspace/listings/videos/feature"},{"title":"Remove video","deprecated":null,"version":null,"sidebarTitle":"Remove video","openapi":"/openapi.json delete /v1/workspace/listings/{id}/videos/{video_id}","href":"/api-reference/workspace/listings/videos/remove"}]},{"group":"Files","pages":[{"title":"Add file","deprecated":null,"version":null,"sidebarTitle":"Add file","openapi":"/openapi.json post /v1/workspace/listings/{id}/files","href":"/api-reference/workspace/listings/files/add"},{"title":"Remove file","deprecated":null,"version":null,"sidebarTitle":"Remove file","openapi":"/openapi.json delete /v1/workspace/listings/{id}/files/{file_id}","href":"/api-reference/workspace/listings/files/remove"}]},{"group":"Inventory","pages":[{"title":"Replace inventory","deprecated":null,"version":null,"sidebarTitle":"Replace inventory","openapi":"/openapi.json put /v1/workspace/listings/{id}/inventory","href":"/api-reference/workspace/listings/inventory/replace"},{"title":"Patch offerings","deprecated":null,"version":null,"sidebarTitle":"Patch offerings","openapi":"/openapi.json patch /v1/workspace/listings/{id}/inventory","href":"/api-reference/workspace/listings/inventory/patch"}]},{"group":"Content","pages":[{"title":"Update attributes","deprecated":null,"version":null,"sidebarTitle":"Update attributes","openapi":"/openapi.json patch /v1/workspace/listings/{id}/attributes","href":"/api-reference/workspace/listings/attributes/update"},{"title":"Set translation","deprecated":null,"version":null,"sidebarTitle":"Set translation","openapi":"/openapi.json put /v1/workspace/listings/{id}/translations/{language}","href":"/api-reference/workspace/listings/translations/update"},{"title":"Replace personalization","deprecated":null,"version":null,"sidebarTitle":"Replace personalization","openapi":"/openapi.json put /v1/workspace/listings/{id}/personalization","href":"/api-reference/workspace/listings/personalization/replace"},{"title":"Set variation images","deprecated":null,"version":null,"sidebarTitle":"Set variation images","openapi":"/openapi.json put /v1/workspace/listings/{id}/variation-images","href":"/api-reference/workspace/listings/variation_images/replace"}]}]},{"group":"Orders","pages":[{"title":"Search orders","deprecated":null,"version":null,"sidebarTitle":"Search orders","openapi":"/openapi.json get /v1/workspace/orders","href":"/api-reference/workspace/orders/search"},{"title":"Get order","deprecated":null,"version":null,"sidebarTitle":"Get order","openapi":"/openapi.json get /v1/workspace/orders/{id}","href":"/api-reference/workspace/orders/get"},{"title":"Add shipment","deprecated":null,"version":null,"sidebarTitle":"Add shipment","openapi":"/openapi.json post /v1/workspace/orders/{id}/shipments","href":"/api-reference/workspace/orders/shipments/create"}]},{"group":"Reviews","pages":[{"title":"Search reviews","deprecated":null,"version":null,"sidebarTitle":"Search reviews","openapi":"/openapi.json get /v1/workspace/reviews","href":"/api-reference/workspace/reviews/search"}]},{"group":"Customers","pages":[{"title":"Search customers","deprecated":null,"version":null,"sidebarTitle":"Search customers","openapi":"/openapi.json get /v1/workspace/customers","href":"/api-reference/workspace/customers/search"},{"title":"Get customer","deprecated":null,"version":null,"sidebarTitle":"Get customer","openapi":"/openapi.json get /v1/workspace/customers/{id}","href":"/api-reference/workspace/customers/get"}]},{"group":"Changes","pages":[{"title":"List changes","deprecated":null,"version":null,"sidebarTitle":"List changes","openapi":"/openapi.json get /v1/workspace/changes","href":"/api-reference/workspace/changes/list"},{"title":"Get change","description":"Get one change Alura made to a listing, receipt or shop setting of your connected Etsy shops, by its ID: every field it changed, before and after, and whether you can revert it.","deprecated":null,"version":null,"sidebarTitle":"Get change","openapi":"/openapi.json get /v1/workspace/changes/{id}","href":"/api-reference/workspace/changes/get"},{"title":"Revert change","deprecated":null,"version":null,"sidebarTitle":"Revert change","openapi":"/openapi.json post /v1/workspace/changes/{id}/revert","href":"/api-reference/workspace/changes/revert"}]},{"group":"Syncs","pages":[{"title":"Start sync","description":"Ask Alura to sync your connected Etsy shops now, for example after you changed prices on Etsy. Answers at once with one outcome per shop.","deprecated":null,"version":null,"sidebarTitle":"Start sync","openapi":"/openapi.json post /v1/workspace/syncs","href":"/api-reference/workspace/syncs/start"},{"title":"Get sync","deprecated":null,"version":null,"sidebarTitle":"Get sync","openapi":"/openapi.json get /v1/workspace/syncs/{id}","href":"/api-reference/workspace/syncs/get"},{"title":"List syncs","deprecated":null,"version":null,"sidebarTitle":"List syncs","openapi":"/openapi.json get /v1/workspace/syncs","href":"/api-reference/workspace/syncs/list"}]}]},{"group":"Etsy","pages":[{"group":"Catalog","pages":[{"title":"Search categories","deprecated":null,"version":null,"sidebarTitle":"Search categories","openapi":"/openapi.json get /v1/etsy/categories","href":"/api-reference/etsy/categories/search"},{"title":"Get category","deprecated":null,"version":null,"sidebarTitle":"Get category","openapi":"/openapi.json get /v1/etsy/categories/{id}","href":"/api-reference/etsy/categories/get"},{"title":"Get category properties","deprecated":null,"version":null,"sidebarTitle":"Get category properties","openapi":"/openapi.json get /v1/etsy/categories/{id}/properties","href":"/api-reference/etsy/categories/properties"},{"title":"List languages","deprecated":null,"version":null,"sidebarTitle":"List languages","openapi":"/openapi.json get /v1/etsy/languages","href":"/api-reference/etsy/languages/list"}]},{"group":"Selling","pages":[{"title":"Get listing rules","deprecated":null,"version":null,"sidebarTitle":"Get listing rules","openapi":"/openapi.json get /v1/etsy/listing-rules","href":"/api-reference/etsy/listingrules/get"},{"title":"Get fees","deprecated":null,"version":null,"sidebarTitle":"Get fees","openapi":"/openapi.json get /v1/etsy/fees","href":"/api-reference/etsy/fees/get"}]},{"group":"Countries \u0026 currencies","pages":[{"title":"List countries","deprecated":null,"version":null,"sidebarTitle":"List countries","openapi":"/openapi.json get /v1/etsy/countries","href":"/api-reference/etsy/countries/list"},{"title":"Get country","deprecated":null,"version":null,"sidebarTitle":"Get country","openapi":"/openapi.json get /v1/etsy/countries/{code}","href":"/api-reference/etsy/countries/get"},{"title":"List currencies","deprecated":null,"version":null,"sidebarTitle":"List currencies","openapi":"/openapi.json get /v1/etsy/currencies","href":"/api-reference/etsy/currencies/list"},{"title":"Get currency","deprecated":null,"version":null,"sidebarTitle":"Get currency","openapi":"/openapi.json get /v1/etsy/currencies/{code}","href":"/api-reference/etsy/currencies/get"}]},{"group":"Shipping","pages":[{"title":"Get shipping carriers","deprecated":null,"version":null,"sidebarTitle":"Get shipping carriers","openapi":"/openapi.json get /v1/etsy/shipping-carriers","href":"/api-reference/etsy/shippingcarriers/get"}]},{"group":"News \u0026 updates","pages":[{"title":"List feed","deprecated":null,"version":null,"sidebarTitle":"List feed","openapi":"/openapi.json get /v1/etsy/feed","href":"/api-reference/etsy/feed/list"},{"title":"List updates","deprecated":null,"version":null,"sidebarTitle":"List updates","openapi":"/openapi.json get /v1/etsy/updates","href":"/api-reference/etsy/updates/list"},{"title":"Get update","deprecated":null,"version":null,"sidebarTitle":"Get update","openapi":"/openapi.json get /v1/etsy/updates/{id}","href":"/api-reference/etsy/updates/get"},{"title":"List news","deprecated":null,"version":null,"sidebarTitle":"List news","openapi":"/openapi.json get /v1/etsy/news","href":"/api-reference/etsy/news/list"},{"title":"Get article","deprecated":null,"version":null,"sidebarTitle":"Get article","openapi":"/openapi.json get /v1/etsy/news/{slug}","href":"/api-reference/etsy/news/get"}]}]},{"group":"Webhooks \u0026 events","pages":[{"group":"Webhook endpoints","pages":[{"title":"Create webhook","deprecated":null,"version":null,"sidebarTitle":"Create webhook","openapi":"/openapi.json post /v1/webhooks","href":"/api-reference/webhooks/endpoints/create"},{"title":"List webhooks","deprecated":null,"version":null,"sidebarTitle":"List webhooks","openapi":"/openapi.json get /v1/webhooks","href":"/api-reference/webhooks/endpoints/list"},{"title":"Get webhook","deprecated":null,"version":null,"sidebarTitle":"Get webhook","openapi":"/openapi.json get /v1/webhooks/{id}","href":"/api-reference/webhooks/endpoints/get"},{"title":"Update webhook","deprecated":null,"version":null,"sidebarTitle":"Update webhook","openapi":"/openapi.json patch /v1/webhooks/{id}","href":"/api-reference/webhooks/endpoints/update"},{"title":"Delete webhook","deprecated":null,"version":null,"sidebarTitle":"Delete webhook","openapi":"/openapi.json delete /v1/webhooks/{id}","href":"/api-reference/webhooks/endpoints/delete"},{"title":"Send test event","deprecated":null,"version":null,"sidebarTitle":"Send test event","openapi":"/openapi.json post /v1/webhooks/{id}/test","href":"/api-reference/webhooks/endpoints/test"},{"title":"Rotate secret","deprecated":null,"version":null,"sidebarTitle":"Rotate secret","openapi":"/openapi.json post /v1/webhooks/{id}/rotate-secret","href":"/api-reference/webhooks/endpoints/rotatesecret"}]},{"group":"Deliveries","pages":[{"title":"List deliveries","deprecated":null,"version":null,"sidebarTitle":"List deliveries","openapi":"/openapi.json get /v1/webhooks/{id}/deliveries","href":"/api-reference/webhooks/deliveries/list"}]},{"group":"Events","pages":[{"title":"List events","deprecated":null,"version":null,"sidebarTitle":"List events","openapi":"/openapi.json get /v1/events","href":"/api-reference/events/list"},{"title":"Get event","deprecated":null,"version":null,"sidebarTitle":"Get event","openapi":"/openapi.json get /v1/events/{id}","href":"/api-reference/events/get"}]}]},{"group":"Account","pages":[{"group":"Me","pages":[{"title":"Get current user","deprecated":null,"version":null,"sidebarTitle":"Get current user","openapi":"/openapi.json get /v1/me","href":"/api-reference/account/me/get"}]},{"group":"Workspaces","pages":[{"title":"List workspaces","deprecated":null,"version":null,"sidebarTitle":"List workspaces","openapi":"/openapi.json get /v1/me/workspaces","href":"/api-reference/account/workspaces/list"},{"title":"Switch workspace","deprecated":null,"version":null,"sidebarTitle":"Switch workspace","openapi":"/openapi.json post /v1/me/workspace","href":"/api-reference/account/workspace/switch"}]},{"group":"Usage","pages":[{"title":"Get usage","deprecated":null,"version":null,"sidebarTitle":"Get usage","openapi":"/openapi.json get /v1/usage","href":"/api-reference/account/usage/get"},{"title":"Get usage by day","deprecated":null,"version":null,"sidebarTitle":"Get usage by day","openapi":"/openapi.json get /v1/usage/by-day","href":"/api-reference/account/usage/byday"},{"title":"List usage events","deprecated":null,"version":null,"sidebarTitle":"List usage events","openapi":"/openapi.json get /v1/usage/events","href":"/api-reference/account/usage/events"}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/connect-ai"}]}]},"basePath":"","title":"Revert change - Alura API","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CBsVopKK.js","utils-DZAk68jJ.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D32AYZrP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-D_A5_cny.js","snippetPresets-xNRfS9th.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BIB25-tq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CydJ4w4j.js","shallow-CYPBeQSG.js","getApiPlaygroundDisplay-A5xJVBOu.js","CodeSnippet-BVRTgi3m.js","CodeSnippets-DjD6BSlt.js","Page-Dr40SSJq.js","getPastedJson-D4V4JyrR.js","icon-uhcnG22T.js","MethodPill-CM-ZQdGH.js","DuplicateIcon-B_WnOiNf.js","createIcon-CJsb8utt.js","DynamicMarkdown-D-2HDKEp.js","SectionHeading-KP5xmMgQ.js","axios-vUo_bRtp.js","Markdown-D_k0dg6k.js","clsx-DK3K4Z1S.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DE3EVdvd.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-fN9H9n9g.js"]}