Returns the current state of an optimization workflow, including status, current_step, current_hitl_gate (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries.
Poll this endpoint to track a workflow through its lifecycle. A 401 response indicates that the access token has expired; re-authenticate and retry the request.
The status value progresses through PENDING, then RUNNING or IN_PROGRESS, then REVIEW_PENDING when paused at a human-in-the-loop gate, and ultimately COMPLETED. FAILED and CANCELLED are terminal alternatives.
When status is REVIEW_PENDING, the value of current_hitl_gate identifies the active gate. Gate approval is performed in the CommerceOS web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.
GET
/
v2
/
optimize
/
workflows
/
{workflow_id}
Retrieve optimization workflow status
curl --request GET \ --url https://commerceos.aiagents.fabric.inc/api/v2/optimize/workflows/{workflow_id} \ --header 'domain: <domain>'
The brand domain name (for example, vessel.com or containerstore.com) used to scope the request to a specific brand's data and configuration. The authenticated principal must be authorized for the specified brand.
Workflow identifier returned by POST /v2/optimize/workflows.
Example:
"9349773c-27fe-4d4f-a093-a5793dff8702"
Response
Workflow state
Workflow state envelope returned by POST /v2/optimize/workflows and GET /v2/optimize/workflows/{workflow_id}. The status value progresses through PENDING, then RUNNING or IN_PROGRESS, then REVIEW_PENDING, and ultimately COMPLETED. FAILED and CANCELLED are terminal alternatives.
Active human-in-the-loop review gate. Populated when status is REVIEW_PENDING. One of VALIDATION_REVIEW, TAXONOMY_REVIEW, SAMPLE_REVIEW, ENRICHMENT_SAMPLE_REVIEW, FULL_ENRICHMENT_REVIEW, ENRICHMENT_FULL_REVIEW, or PUBLISH_APPROVAL.
Phase-keyed progress for the workflow, computed at read time. The phases object contains one key per phase (validation, taxonomy, enrichment, publish), each carrying a phase-specific structure.
Aggregate counts across categories at the current enrichment-side review gate. This summary supports diagnosing which categories are blocking progression. For non-enrichment gates (taxonomy, validation, publish) the counts are typically zero, because those gates are workflow-level rather than per-category.
Resolved reference for the created_by and updated_by audit fields. A type of unknown is returned when the referenced identifier can no longer be resolved (for example, when a user has been hard-deleted).
Resolved reference for the created_by and updated_by audit fields. A type of unknown is returned when the referenced identifier can no longer be resolved (for example, when a user has been hard-deleted).
Show child attributes
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Fabric","colors":{"primary":"#ff2ec1","light":"#ff2ec1","dark":"#ff2ec1"},"logo":{"light":"https://mintcdn.com/fabric-demo/OzlZxX-hOwze1Aen/logo/darkneon.png?fit=max\u0026auto=format\u0026n=OzlZxX-hOwze1Aen\u0026q=85\u0026s=332d2284d5f41dc42f5b9e0bcd473872","dark":"https://mintcdn.com/fabric-demo/OzlZxX-hOwze1Aen/logo/darkneon.png?fit=max\u0026auto=format\u0026n=OzlZxX-hOwze1Aen\u0026q=85\u0026s=332d2284d5f41dc42f5b9e0bcd473872","href":"https://developer.fabric.inc"},"favicon":"https://mintcdn.com/fabric-demo/ZXHlkaduf1S9hYir/neon-favicon.webp?fit=max\u0026auto=format\u0026n=ZXHlkaduf1S9hYir\u0026q=85\u0026s=fc87341b907a3b0ed573af9c896468b2","navbar":{"primary":{"type":"button","label":"Request Demo","href":"https://fabric.inc/demo-request"}},"footer":{"socials":{"twitter":"https://twitter.com/fabric_commerce?lang=en","linkedin":"https://www.linkedin.com/company/teamfabric"}},"integrations":{"ga4":{"measurementId":"G-5RS60WM116"}},"contextual":{"options":["copy","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"fabric-demo","hasAudioNarration":false,"actualSubdomain":"fabric-demo","customDomains":["developer.fabric.inc"],"gitSource":{"type":"gitlab","owner":"fabric2/docs","repo":"developer-docs","projectId":58049997,"deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a27c05109a51e5ad494d5d6","collectionId":"7afabdbc-2ae6-4c34-9795-efeea513c17c","schemaVersion":"v3"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6a905beb40741431493de2c3:failure","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API Reference","count":721},{"language":"default","tag":"Orders \u0026 Inventory","count":276},{"language":"default","tag":"Product Catalog","count":245},{"language":"default","tag":"Dropship","count":242},{"language":"default","tag":"Orders v2 (OMS v2)","count":162},{"language":"default","tag":"Orders API Endpoints","count":145},{"language":"default","tag":"Customer","count":144},{"language":"default","tag":"Offers","count":118},{"language":"default","tag":"Product Catalog API","count":102},{"language":"default","tag":"Orders v1 (OMS v1)","count":100}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 100;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tDMPKzSQ.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 100;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tMMPKzSQ.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 100;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiAyp8kv8JHgFVrJJLmE0tCMPI.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 200;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVFteOcEg.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 200;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVGdeOcEg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 200;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmv1pVF9eO.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVFteOcEg.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVGdeOcEg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm21lVF9eO.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiGyp8kv8JHgFVrJJLucXtAKPY.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiGyp8kv8JHgFVrJJLufntAKPY.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiGyp8kv8JHgFVrJJLucHtA.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVFteOcEg.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVGdeOcEg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmg1hVF9eO.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VFteOcEg.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VGdeOcEg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmr19VF9eO.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VFteOcEg.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VGdeOcEg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLmy15VF9eO.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VFteOcEg.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VGdeOcEg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm111VF9eO.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVFteOcEg.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVGdeOcEg.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: italic;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiDyp8kv8JHgFVrJJLm81xVF9eO.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 100;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiGyp8kv8JHgFVrLPTucXtAKPY.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 100;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiGyp8kv8JHgFVrLPTufntAKPY.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 100;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiGyp8kv8JHgFVrLPTucHtA.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 200;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z11lFc-K.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 200;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z1JlFc-K.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 200;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLFj_Z1xlFQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z11lFc-K.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 300;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z11lFc-K.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 600;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z11lFc-K.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 800;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\n/* devanagari */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z11lFc-K.woff2) format('woff2');\n unicode-range: U+0900-097F, U+1CD0-1CF4, U+1CF7-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B0A;\n}\n/* latin-ext */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z1JlFc-K.woff2) format('woff2');\n unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;\n}\n/* latin */\n@font-face {\n font-family: 'Poppins';\n font-style: normal;\n font-weight: 900;\n font-display: swap;\n src: url(/_mintlify/assets/fonts/google/s/poppins/v24/pxiByp8kv8JHgFVrLBT5Z1xlFQ.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n}\na,body,h1,h2,h3,h4,h5,h6,html,p,span{font-family:Poppins}#navbar,#navbar .bg-background-light{background:#000}#navbar #search-bar-entry{background:rgb(var(--background-dark)/var(--tw-bg-opacity))}#navbar [id^=radix].bg-background-light{border-radius:8px;background:#fff;color:rgb(var(--gray-500));border:0}#navbar .dark\\:text-gray-300{color:rgb(var(--gray-300))}#navbar .dark\\:bg-primary-light{--tw-bg-opacity:1;background-color:rgb(var(--primary-light)/var(--tw-bg-opacity))}#navbar .text-gray-800{color:rgb(var(--gray-200))}#navbar .text-gray-600{color:#d4d4d4}#topbar-cta-button .rounded-full,#topbar-cta-button .rounded-full:is(.dark *){border-radius:31px;background:#000;box-shadow:0 7.57px 30.28px 0 rgba(0,0,0,.08);border:0}#topbar-cta-button .dark\\:text-primary-light,#topbar-cta-button .dark\\:text-primary-light:is(.dark *){color:#fff;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;letter-spacing:-.084px}.bodyContainer{max-width:63rem;margin:auto;background:0 0}.bodyFull{background:url(images/hero-background-unmasked-1.svg);position:relative;overflow:hidden}.bodyContainer:is(.dark *),.bodyFull:is(.dark *){background-color:transparent}.box-full{border-radius:8px;box-shadow:0 7.57px 30.28px 0 rgba(0,0,0,.08);padding:16px 20px}.box-full:is(.dark *){background-color:#4d354d;border:1px solid rgba(255,255,255,.2)}button p{font-size:18px}button .bg-primary-light{background-color:#121213}.twocol-cntr{width:75%;margin:auto;margin-top:1rem}.gap-x-4{column-gap:1rem;row-gap:1rem}.pink-boxes .card.block{background-color:#fff;border:1px solid #d9acd9;height:161px}.pink-boxes .card.block h2{font-size:28px;font-weight:300}.my-2{margin:0}.pink-boxes.dark\\:bg-background-dark:is(.dark *),.three-col.dark\\:bg-background-dark:is(.dark *),.twocol-cntr.dark\\:bg-background-dark:is(.dark *){background-color:#0c0a0f!important;z-index:-1;border-radius:15px}.pink-boxes.dark\\:bg-background-dark:is(.dark *) .card.block{background-color:transparent;border:1px solid #494949;position:relative}.three-col.dark\\:bg-background-dark:not(.dark *),.twocol-cntr.dark\\:bg-background-dark:not(.dark *){background-color:#fff!important;z-index:-1;border-radius:15px}.bg-primary{background-color:rgb(var(--gray-950)/var(--tw-bg-opacity))}.image-boxes h2{font-size:24px;font-weight:600;line-height:32px;letter-spacing:-.2px}.subtitle{text-align:center;font-size:20px;font-style:normal;font-weight:400;line-height:28px;letter-spacing:.04px;width:70%;margin:auto}.spacer{height:80px}.resource-boxes{text-align:center}.resource-boxes .dark\\:bg-background-dark:is(.dark *){background-color:#121213}.bodyContainer hr{border-color:#e3dfe2}.bodyContainer:is(.dark *) hr{border-color:#27272a}.col-lg-6{width:50%}.footer{padding-bottom:2.5rem;display:flex;background:0 0}.footer .dark\\:bg-background-dark:is(.dark *){background-color:transparent}.footer li,.footer p{font-size:14px;font-style:normal;font-weight:600;line-height:24px;letter-spacing:-.084px;margin-top:12px}.footer li a{color:#ff2ec1}.footer .updated.col-lg-6{display:flex;justify-content:flex-end}.fa-thin.fa-headphones,.fa-thin.fa-list,.fa-thin.fa-question-circle{mask-image:url(https://mintlify.b-cdn.net/v6.6.0/regular/question.svg);mask-repeat:no-repeat;mask-position:center center}.fa-thin.fa-headphones,.fa-thin.fa-list{mask-image:url(https://mintlify.b-cdn.net/v6.6.0/regular/headphones.svg)}.fa-thin.fa-list{mask-image:url(https://mintlify.b-cdn.net/v6.6.0/regular/list.svg)}.fa-thin:is(.dark *){background-color:#fff}.footer.bg-background-light{background-color:transparent}.dark\\:text-gray-400:is(.dark *){color:#fff}#navbar-transition{display:none}.callout{border-color:rgba(255 46 193 .5);background-color:rgba(255 46 193 .3)}"}],"page":{"pagePath":"product-agent/api-reference/optimize/get-workflow","slug":"/product-agent/api-reference/optimize/get-workflow","pageMetadata":{"openapi":"product-agent.openapi get /v2/optimize/workflows/{workflow_id}","title":"Retrieve optimization workflow status","description":"Returns the current state of an optimization workflow, including `status`, `current_step`, `current_hitl_gate` (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries.\n\nPoll this endpoint to track a workflow through its lifecycle. A `401` response indicates that the access token has expired; re-authenticate and retry the request.\n\nThe `status` value progresses through `PENDING`, then `RUNNING` or `IN_PROGRESS`, then `REVIEW_PENDING` when paused at a human-in-the-loop gate, and ultimately `COMPLETED`. `FAILED` and `CANCELLED` are terminal alternatives.\n\n**When `status` is `REVIEW_PENDING`**, the value of `current_hitl_gate` identifies the active gate. Gate approval is performed in the [CommerceOS](https://commerceos.fabric.inc) web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\n","href":"/product-agent/api-reference/optimize/get-workflow"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Returns the current state of an optimization workflow, including \", _jsx(_components.code, {\n children: \"status\"\n }), \", \", _jsx(_components.code, {\n children: \"current_step\"\n }), \", \", _jsx(_components.code, {\n children: \"current_hitl_gate\"\n }), \" (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Poll this endpoint to track a workflow through its lifecycle. A \", _jsx(_components.code, {\n children: \"401\"\n }), \" response indicates that the access token has expired; re-authenticate and retry the request.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The \", _jsx(_components.code, {\n children: \"status\"\n }), \" value progresses through \", _jsx(_components.code, {\n children: \"PENDING\"\n }), \", then \", _jsx(_components.code, {\n children: \"RUNNING\"\n }), \" or \", _jsx(_components.code, {\n children: \"IN_PROGRESS\"\n }), \", then \", _jsx(_components.code, {\n children: \"REVIEW_PENDING\"\n }), \" when paused at a human-in-the-loop gate, and ultimately \", _jsx(_components.code, {\n children: \"COMPLETED\"\n }), \". \", _jsx(_components.code, {\n children: \"FAILED\"\n }), \" and \", _jsx(_components.code, {\n children: \"CANCELLED\"\n }), \" are terminal alternatives.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsxs(_components.strong, {\n children: [\"When \", _jsx(_components.code, {\n children: \"status\"\n }), \" is \", _jsx(_components.code, {\n children: \"REVIEW_PENDING\"\n })]\n }), \", the value of \", _jsx(_components.code, {\n children: \"current_hitl_gate\"\n }), \" identifies the active gate. Gate approval is performed in the \", _jsx(_components.a, {\n href: \"https://commerceos.fabric.inc\",\n children: \"CommerceOS\"\n }), \" web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"product-agent.openapi get /v2/optimize/workflows/{workflow_id}","title":"Retrieve optimization workflow status","description":"Returns the current state of an optimization workflow, including `status`, `current_step`, `current_hitl_gate` (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries.\n\nPoll this endpoint to track a workflow through its lifecycle. A `401` response indicates that the access token has expired; re-authenticate and retry the request.\n\nThe `status` value progresses through `PENDING`, then `RUNNING` or `IN_PROGRESS`, then `REVIEW_PENDING` when paused at a human-in-the-loop gate, and ultimately `COMPLETED`. `FAILED` and `CANCELLED` are terminal alternatives.\n\n**When `status` is `REVIEW_PENDING`**, the value of `current_hitl_gate` identifies the active gate. Gate approval is performed in the [CommerceOS](https://commerceos.fabric.inc) web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\n","href":"/product-agent/api-reference/optimize/get-workflow"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/fabric-demo/6a81ae5b5ebc4bb2/theme.js","/_mintlify/custom/fabric-demo/aebbe2ead0ce64f7/top-form.v1.js","/_mintlify/custom/fabric-demo/5b243c7a49e8f495/gtag.js"],"openApiReferenceData":{"operation":{"summary":"Retrieve optimization workflow status","description":"Returns the current state of an optimization workflow, including `status`, `current_step`, `current_hitl_gate` (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries.\n\nPoll this endpoint to track a workflow through its lifecycle. A `401` response indicates that the access token has expired; re-authenticate and retry the request.\n\nThe `status` value progresses through `PENDING`, then `RUNNING` or `IN_PROGRESS`, then `REVIEW_PENDING` when paused at a human-in-the-loop gate, and ultimately `COMPLETED`. `FAILED` and `CANCELLED` are terminal alternatives.\n\n**When `status` is `REVIEW_PENDING`**, the value of `current_hitl_gate` identifies the active gate. Gate approval is performed in the [CommerceOS](https://commerceos.fabric.inc) web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\n","operationId":"getOptimizeWorkflowStatus","security":["287f1676-4d7a-4537-abbd-aa3816a11679"],"parameters":["f746ce96-1426-41b0-8446-b2d54809b8dc","7631dae9-04ef-4faa-a04a-7f91d925099f"],"responses":{"200":"8659ab6f-f4f2-45e4-a177-793a56a1beb5","401":"27709d77-ea28-4ee9-9423-4632a63d59c1","403":"e51c46b5-0f71-40c0-921e-2af96b549312","404":"5b92beca-e874-4eb7-95a9-6aa91ec36035","500":"c33cbeb9-4c05-4a63-a109-d0d1b2f0892b"},"method":"get","type":"path","servers":["e07865d4-66ec-4299-81b1-509ce4c54f15"],"path":"/v2/optimize/workflows/{workflow_id}","baseUrlOptions":["https://commerceos.aiagents.fabric.inc/api"],"title":"Retrieve optimization workflow status","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"f746ce96-1426-41b0-8446-b2d54809b8dc":{"name":"domain","in":"header","required":true,"schema":{"type":"string","example":"vessel.com","isRequired":true,"description":"The brand domain name (for example, `vessel.com` or `containerstore.com`) used to scope the request to a specific brand's data and configuration. The authenticated principal must be authorized for the specified brand.","uniqueKey":"","typeLabel":"string"},"description":"The brand domain name (for example, `vessel.com` or `containerstore.com`) used to scope the request to a specific brand's data and configuration. The authenticated principal must be authorized for the specified brand."},"7631dae9-04ef-4faa-a04a-7f91d925099f":{"name":"workflow_id","in":"path","required":true,"description":"Workflow identifier returned by `POST /v2/optimize/workflows`.","schema":{"type":"string","example":"9349773c-27fe-4d4f-a093-a5793dff8702","isRequired":true,"description":"Workflow identifier returned by `POST /v2/optimize/workflows`.","uniqueKey":"","typeLabel":"string"}}},"responses":{"8659ab6f-f4f2-45e4-a177-793a56a1beb5":{"description":"Workflow state","content":{"application/json":{"schema":{"type":"object","required":["id","brand_id","status","created_at","updated_at"],"description":"Workflow state envelope returned by `POST /v2/optimize/workflows` and `GET /v2/optimize/workflows/{workflow_id}`. The `status` value progresses through `PENDING`, then `RUNNING` or `IN_PROGRESS`, then `REVIEW_PENDING`, and ultimately `COMPLETED`. `FAILED` and `CANCELLED` are terminal alternatives.\n","properties":{"id":{"type":"string","description":"Workflow identifier. Use this value to poll for status and to construct deep links into the Commerce OS UI.","example":"9349773c-27fe-4d4f-a093-a5793dff8702","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"brand_id":{"type":"string","example":"691df5949676c8e0b1d7b6b3","isRequired":true,"uniqueKey":"brand_id","typeLabel":"string"},"status":{"type":"string","description":"Current lifecycle state.","enum":["PENDING","RUNNING","IN_PROGRESS","REVIEW_PENDING","COMPLETED","FAILED","CANCELLED"],"example":"REVIEW_PENDING","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","example":"2026-05-15T10:35:00Z","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","example":"2026-05-15T10:42:08Z","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"type":{"oneOf":[{"type":"string","example":"OPTIMIZE","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","example":"OPTIMIZE","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"origin":{"oneOf":[{"type":"string","enum":["COMMERCEOS","API"],"example":"API","uniqueKey":"origin.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["COMMERCEOS","API"],"example":"API","uniqueKey":"origin.oneOf.1","typeLabel":"null"}],"uniqueKey":"origin","typeLabel":"enum\u003cstring> | null"},"mode":{"oneOf":[{"type":"string","enum":["dev","test","prod"],"description":"The publish target the run's enriched catalog is published to. Null when the run uses the brand's existing configured destination.","example":"prod","uniqueKey":"mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["dev","test","prod"],"description":"The publish target the run's enriched catalog is published to. Null when the run uses the brand's existing configured destination.","example":"prod","uniqueKey":"mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"mode","typeLabel":"enum\u003cstring> | null"},"workflow_type":{"oneOf":[{"type":"string","example":null,"uniqueKey":"workflow_type.oneOf.0","typeLabel":"string"},{"type":"null","example":null,"uniqueKey":"workflow_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"workflow_type","typeLabel":"string | null"},"current_step":{"oneOf":[{"type":"string","description":"Current step in the workflow. One of `VALIDATE` / `VALIDATION`, `TAXONOMY_MAP` / `TAXONOMY`, `ENRICH` / `ENRICHMENT`, or `PUBLISH` / `PUBLISHED`.\n","example":"TAXONOMY_MAP","uniqueKey":"current_step.oneOf.0","typeLabel":"string"},{"type":"null","description":"Current step in the workflow. One of `VALIDATE` / `VALIDATION`, `TAXONOMY_MAP` / `TAXONOMY`, `ENRICH` / `ENRICHMENT`, or `PUBLISH` / `PUBLISHED`.\n","example":"TAXONOMY_MAP","uniqueKey":"current_step.oneOf.1","typeLabel":"null"}],"uniqueKey":"current_step","typeLabel":"string | null"},"current_hitl_gate":{"oneOf":[{"type":"string","description":"Active human-in-the-loop review gate. Populated when `status` is `REVIEW_PENDING`. One of `VALIDATION_REVIEW`, `TAXONOMY_REVIEW`, `SAMPLE_REVIEW`, `ENRICHMENT_SAMPLE_REVIEW`, `FULL_ENRICHMENT_REVIEW`, `ENRICHMENT_FULL_REVIEW`, or `PUBLISH_APPROVAL`.\n","example":"TAXONOMY_REVIEW","uniqueKey":"current_hitl_gate.oneOf.0","typeLabel":"string"},{"type":"null","description":"Active human-in-the-loop review gate. Populated when `status` is `REVIEW_PENDING`. One of `VALIDATION_REVIEW`, `TAXONOMY_REVIEW`, `SAMPLE_REVIEW`, `ENRICHMENT_SAMPLE_REVIEW`, `FULL_ENRICHMENT_REVIEW`, `ENRICHMENT_FULL_REVIEW`, or `PUBLISH_APPROVAL`.\n","example":"TAXONOMY_REVIEW","uniqueKey":"current_hitl_gate.oneOf.1","typeLabel":"null"}],"uniqueKey":"current_hitl_gate","typeLabel":"string | null"},"name":{"oneOf":[{"type":"string","example":"Spring 2026 catalog enrichment","uniqueKey":"name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Spring 2026 catalog enrichment","uniqueKey":"name.oneOf.1","typeLabel":"null"}],"uniqueKey":"name","typeLabel":"string | null"},"tags":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"tags.items.[INDEX]","typeLabel":"any"},"example":[],"uniqueKey":"tags","typeLabel":"any[]"},"started_at":{"oneOf":[{"type":"string","format":"date-time","example":"2026-05-15T10:35:12Z","uniqueKey":"started_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":"2026-05-15T10:35:12Z","uniqueKey":"started_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"started_at","typeLabel":"string\u003cdate-time> | null"},"completed_at":{"oneOf":[{"type":"string","format":"date-time","example":null,"uniqueKey":"completed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","example":null,"uniqueKey":"completed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"completed_at","typeLabel":"string\u003cdate-time> | null"},"last_error":{"oneOf":[{"type":"string","description":"Most recent error message. Populated when `status` is `FAILED`.","example":null,"uniqueKey":"last_error.oneOf.0","typeLabel":"string"},{"type":"null","description":"Most recent error message. Populated when `status` is `FAILED`.","example":null,"uniqueKey":"last_error.oneOf.1","typeLabel":"null"}],"uniqueKey":"last_error","typeLabel":"string | null"},"retry_count":{"type":"integer","default":0,"example":0,"uniqueKey":"retry_count","typeLabel":"integer"},"workflow_metadata":{"oneOf":[{"type":"object","additionalProperties":true,"uniqueKey":"workflow_metadata.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":true,"uniqueKey":"workflow_metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"workflow_metadata","typeLabel":"object | null"},"progress":{"oneOf":[{"type":"object","description":"Phase-keyed progress for the workflow, computed at read time. The `phases` object contains one key per phase (`validation`, `taxonomy`, `enrichment`, `publish`), each carrying a phase-specific structure.\n","properties":{"current_phase":{"oneOf":[{"type":"string","example":"taxonomy","uniqueKey":"progress.oneOf.0.current_phase.oneOf.0","typeLabel":"string"},{"type":"null","example":"taxonomy","uniqueKey":"progress.oneOf.0.current_phase.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress.oneOf.0.current_phase","typeLabel":"string | null"},"current_step":{"oneOf":[{"type":"string","example":"TAXONOMY_MAP","uniqueKey":"progress.oneOf.0.current_step.oneOf.0","typeLabel":"string"},{"type":"null","example":"TAXONOMY_MAP","uniqueKey":"progress.oneOf.0.current_step.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress.oneOf.0.current_step","typeLabel":"string | null"},"current_gate":{"oneOf":[{"type":"string","example":"TAXONOMY_REVIEW","uniqueKey":"progress.oneOf.0.current_gate.oneOf.0","typeLabel":"string"},{"type":"null","example":"TAXONOMY_REVIEW","uniqueKey":"progress.oneOf.0.current_gate.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress.oneOf.0.current_gate","typeLabel":"string | null"},"phases":{"type":"object","additionalProperties":true,"description":"Phase-keyed progress map. Keys are `validation`, `taxonomy`, `enrichment`, `publish`; each value is a phase-specific progress object.","uniqueKey":"progress.oneOf.0.phases","typeLabel":"object"}},"uniqueKey":"progress.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"progress.oneOf.1","typeLabel":"null"}],"uniqueKey":"progress","typeLabel":"object | null"},"review_summary":{"type":"object","description":"Aggregate counts across categories at the current enrichment-side review gate. This summary supports diagnosing which categories are blocking progression. For non-enrichment gates (taxonomy, validation, publish) the counts are typically zero, because those gates are workflow-level rather than per-category.\n","properties":{"total_categories":{"type":"integer","default":0,"uniqueKey":"review_summary.total_categories","typeLabel":"integer"},"decided_categories":{"type":"integer","default":0,"uniqueKey":"review_summary.decided_categories","typeLabel":"integer"},"pending_categories":{"type":"integer","default":0,"uniqueKey":"review_summary.pending_categories","typeLabel":"integer"},"rerunning_categories":{"type":"integer","default":0,"uniqueKey":"review_summary.rerunning_categories","typeLabel":"integer"},"rejected_categories":{"type":"integer","default":0,"uniqueKey":"review_summary.rejected_categories","typeLabel":"integer"},"ready_for_publish_categories":{"type":"integer","default":0,"uniqueKey":"review_summary.ready_for_publish_categories","typeLabel":"integer"},"published_categories":{"type":"integer","default":0,"uniqueKey":"review_summary.published_categories","typeLabel":"integer"}},"uniqueKey":"review_summary","typeLabel":"object"},"reviewer_summary":{"type":"array","items":{"type":"object","required":["reviewer_user_id"],"description":"Per-reviewer summary included in the workflow response. The `name` and `email` fields are resolved from `auth_users` at read time.","properties":{"reviewer_user_id":{"type":"string","example":"user_xyz","isRequired":true,"uniqueKey":"reviewer_summary.items.[INDEX].reviewer_user_id","typeLabel":"string"},"name":{"oneOf":[{"type":"string","example":"Alex Reviewer","uniqueKey":"reviewer_summary.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Alex Reviewer","uniqueKey":"reviewer_summary.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"uniqueKey":"reviewer_summary.items.[INDEX].name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","example":"alex@acme.com","uniqueKey":"reviewer_summary.items.[INDEX].email.oneOf.0","typeLabel":"string"},{"type":"null","example":"alex@acme.com","uniqueKey":"reviewer_summary.items.[INDEX].email.oneOf.1","typeLabel":"null"}],"uniqueKey":"reviewer_summary.items.[INDEX].email","typeLabel":"string | null"},"first_name":{"oneOf":[{"type":"string","example":"Alex","uniqueKey":"reviewer_summary.items.[INDEX].first_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Alex","uniqueKey":"reviewer_summary.items.[INDEX].first_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"reviewer_summary.items.[INDEX].first_name","typeLabel":"string | null"},"last_name":{"oneOf":[{"type":"string","example":"Reviewer","uniqueKey":"reviewer_summary.items.[INDEX].last_name.oneOf.0","typeLabel":"string"},{"type":"null","example":"Reviewer","uniqueKey":"reviewer_summary.items.[INDEX].last_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"reviewer_summary.items.[INDEX].last_name","typeLabel":"string | null"},"category_ids":{"type":"array","items":{"type":"string","uniqueKey":"reviewer_summary.items.[INDEX].category_ids.items.[INDEX]","typeLabel":"string"},"example":["cat_apparel","cat_outerwear"],"uniqueKey":"reviewer_summary.items.[INDEX].category_ids","typeLabel":"string[]"},"categories_at_open_gate":{"type":"integer","default":0,"example":2,"uniqueKey":"reviewer_summary.items.[INDEX].categories_at_open_gate","typeLabel":"integer"},"current_gate":{"oneOf":[{"type":"string","example":"TAXONOMY_REVIEW","uniqueKey":"reviewer_summary.items.[INDEX].current_gate.oneOf.0","typeLabel":"string"},{"type":"null","example":"TAXONOMY_REVIEW","uniqueKey":"reviewer_summary.items.[INDEX].current_gate.oneOf.1","typeLabel":"null"}],"uniqueKey":"reviewer_summary.items.[INDEX].current_gate","typeLabel":"string | null"}},"uniqueKey":"reviewer_summary.items.[INDEX]","typeLabel":"object"},"uniqueKey":"reviewer_summary","typeLabel":"object[]"},"created_by":{"oneOf":[{"type":"object","description":"Resolved reference for the `created_by` and `updated_by` audit fields. A `type` of `unknown` is returned when the referenced identifier can no longer be resolved (for example, when a user has been hard-deleted).\n","required":["id","type"],"properties":{"id":{"type":"string","description":"Either `auth_users.id` or `auth_service_clients.client_id`.","example":"user_xyz","isRequired":true,"uniqueKey":"created_by.oneOf.0.id","typeLabel":"string"},"type":{"type":"string","enum":["user","service","unknown"],"description":"Indicates the principal type: `user` for end-user actors, `service` for machine clients, and `unknown` when the principal cannot be resolved.","isRequired":true,"uniqueKey":"created_by.oneOf.0.type","typeLabel":"enum\u003cstring>"},"name":{"oneOf":[{"type":"string","description":"Display name. Null when `type` is `unknown`.","example":"Alex Reviewer","uniqueKey":"created_by.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name. Null when `type` is `unknown`.","example":"Alex Reviewer","uniqueKey":"created_by.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_by.oneOf.0.name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"Email address. Null when `type` is `service` or `unknown`.","example":"alex@acme.com","uniqueKey":"created_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"Email address. Null when `type` is `service` or `unknown`.","example":"alex@acme.com","uniqueKey":"created_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_by.oneOf.0.email","typeLabel":"string | null"}},"uniqueKey":"created_by.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"created_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"created_by","typeLabel":"object | null"},"updated_by":{"oneOf":[{"type":"object","description":"Resolved reference for the `created_by` and `updated_by` audit fields. A `type` of `unknown` is returned when the referenced identifier can no longer be resolved (for example, when a user has been hard-deleted).\n","required":["id","type"],"properties":{"id":{"type":"string","description":"Either `auth_users.id` or `auth_service_clients.client_id`.","example":"user_xyz","isRequired":true,"uniqueKey":"updated_by.oneOf.0.id","typeLabel":"string"},"type":{"type":"string","enum":["user","service","unknown"],"description":"Indicates the principal type: `user` for end-user actors, `service` for machine clients, and `unknown` when the principal cannot be resolved.","isRequired":true,"uniqueKey":"updated_by.oneOf.0.type","typeLabel":"enum\u003cstring>"},"name":{"oneOf":[{"type":"string","description":"Display name. Null when `type` is `unknown`.","example":"Alex Reviewer","uniqueKey":"updated_by.oneOf.0.name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Display name. Null when `type` is `unknown`.","example":"Alex Reviewer","uniqueKey":"updated_by.oneOf.0.name.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_by.oneOf.0.name","typeLabel":"string | null"},"email":{"oneOf":[{"type":"string","description":"Email address. Null when `type` is `service` or `unknown`.","example":"alex@acme.com","uniqueKey":"updated_by.oneOf.0.email.oneOf.0","typeLabel":"string"},{"type":"null","description":"Email address. Null when `type` is `service` or `unknown`.","example":"alex@acme.com","uniqueKey":"updated_by.oneOf.0.email.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_by.oneOf.0.email","typeLabel":"string | null"}},"uniqueKey":"updated_by.oneOf.0","typeLabel":"object"},{"type":"null","uniqueKey":"updated_by.oneOf.1","typeLabel":"null"}],"uniqueKey":"updated_by","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"9349773c-27fe-4d4f-a093-a5793dff8702","brand_id":"691df5949676c8e0b1d7b6b3","type":"OPTIMIZE","origin":"API","mode":"prod","workflow_type":null,"status":"REVIEW_PENDING","current_step":"TAXONOMY_MAP","current_hitl_gate":"TAXONOMY_REVIEW","name":"Spring 2026 catalog enrichment","tags":[],"started_at":"2026-05-15T10:35:12Z","completed_at":null,"last_error":null,"retry_count":0,"workflow_metadata":null,"progress":{"current_phase":"taxonomy","current_step":"TAXONOMY_MAP","current_gate":"TAXONOMY_REVIEW","phases":{"validation":{"status":"COMPLETED"},"taxonomy":{"status":"REVIEW_PENDING"},"enrichment":{"status":"NOT_STARTED"},"publish":{"status":"NOT_STARTED"}}},"review_summary":{"total_categories":12,"decided_categories":3,"pending_categories":9,"rerunning_categories":0,"rejected_categories":0,"ready_for_publish_categories":0,"published_categories":0},"reviewer_summary":[{"reviewer_user_id":"user_xyz","name":"Alex Reviewer","email":"alex@acme.com","first_name":"Alex","last_name":"Reviewer","category_ids":["cat_apparel","cat_outerwear"],"categories_at_open_gate":2,"current_gate":"TAXONOMY_REVIEW"}],"created_by":{"id":"user_xyz","type":"user","name":"Integration Bot","email":"integration@acme.com"},"updated_by":{"id":"user_xyz","type":"user","name":"Integration Bot","email":"integration@acme.com"},"created_at":"2026-05-15T10:35:00Z","updated_at":"2026-05-15T10:42:08Z"},"examples":{"Example":{"title":"Example","value":{"id":"9349773c-27fe-4d4f-a093-a5793dff8702","brand_id":"691df5949676c8e0b1d7b6b3","type":"OPTIMIZE","origin":"API","mode":"prod","workflow_type":null,"status":"REVIEW_PENDING","current_step":"TAXONOMY_MAP","current_hitl_gate":"TAXONOMY_REVIEW","name":"Spring 2026 catalog enrichment","tags":[],"started_at":"2026-05-15T10:35:12Z","completed_at":null,"last_error":null,"retry_count":0,"workflow_metadata":null,"progress":{"current_phase":"taxonomy","current_step":"TAXONOMY_MAP","current_gate":"TAXONOMY_REVIEW","phases":{"validation":{"status":"COMPLETED"},"taxonomy":{"status":"REVIEW_PENDING"},"enrichment":{"status":"NOT_STARTED"},"publish":{"status":"NOT_STARTED"}}},"review_summary":{"total_categories":12,"decided_categories":3,"pending_categories":9,"rerunning_categories":0,"rejected_categories":0,"ready_for_publish_categories":0,"published_categories":0},"reviewer_summary":[{"reviewer_user_id":"user_xyz","name":"Alex Reviewer","email":"alex@acme.com","first_name":"Alex","last_name":"Reviewer","category_ids":["cat_apparel","cat_outerwear"],"categories_at_open_gate":2,"current_gate":"TAXONOMY_REVIEW"}],"created_by":{"id":"user_xyz","type":"user","name":"Integration Bot","email":"integration@acme.com"},"updated_by":{"id":"user_xyz","type":"user","name":"Integration Bot","email":"integration@acme.com"},"created_at":"2026-05-15T10:35:00Z","updated_at":"2026-05-15T10:42:08Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"27709d77-ea28-4ee9-9423-4632a63d59c1":{"description":"Unauthorized. The access token is missing or has expired.","content":{"application/json":{"schema":{"description":"Error response","properties":{"errors":{"description":"Errors","items":{"$circularRef":"358b1fe4-e531-4e1b-a3ce-1d6c8b9956a6"},"type":"array","uniqueKey":"errors","typeLabel":"array"},"message":{"description":"Error message","example":"Bad request","type":"string","uniqueKey":"message","typeLabel":"string"},"type":{"description":"Error type","example":"CLIENT_ERROR","type":"string","uniqueKey":"type","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":"\u003carray>","message":"Bad request","type":"CLIENT_ERROR"}}},"exampleType":"generated"}},"exampleType":"generated"},"e51c46b5-0f71-40c0-921e-2af96b549312":{"description":"Forbidden. The workflow belongs to a different brand.","content":{"application/json":{"schema":{"description":"Error response","properties":{"errors":{"description":"Errors","items":{"$circularRef":"358b1fe4-e531-4e1b-a3ce-1d6c8b9956a6"},"type":"array","uniqueKey":"errors","typeLabel":"array"},"message":{"description":"Error message","example":"Bad request","type":"string","uniqueKey":"message","typeLabel":"string"},"type":{"description":"Error type","example":"CLIENT_ERROR","type":"string","uniqueKey":"type","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":"\u003carray>","message":"Bad request","type":"CLIENT_ERROR"}}},"exampleType":"generated"}},"exampleType":"generated"},"5b92beca-e874-4eb7-95a9-6aa91ec36035":{"description":"Workflow not found","content":{"application/json":{"schema":{"description":"Error response","properties":{"errors":{"description":"Errors","items":{"$circularRef":"358b1fe4-e531-4e1b-a3ce-1d6c8b9956a6"},"type":"array","uniqueKey":"errors","typeLabel":"array"},"message":{"description":"Error message","example":"Bad request","type":"string","uniqueKey":"message","typeLabel":"string"},"type":{"description":"Error type","example":"CLIENT_ERROR","type":"string","uniqueKey":"type","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":"\u003carray>","message":"Bad request","type":"CLIENT_ERROR"}}},"exampleType":"generated"}},"exampleType":"generated"},"c33cbeb9-4c05-4a63-a109-d0d1b2f0892b":{"description":"Internal server error","content":{"application/json":{"schema":{"description":"Error response","properties":{"errors":{"description":"Errors","items":{"$circularRef":"358b1fe4-e531-4e1b-a3ce-1d6c8b9956a6"},"type":"array","uniqueKey":"errors","typeLabel":"array"},"message":{"description":"Error message","example":"Bad request","type":"string","uniqueKey":"message","typeLabel":"string"},"type":{"description":"Error type","example":"CLIENT_ERROR","type":"string","uniqueKey":"type","typeLabel":"string"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"errors":"\u003carray>","message":"Bad request","type":"CLIENT_ERROR"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"287f1676-4d7a-4537-abbd-aa3816a11679":{"bearerAuth":{"$ref":"4f2f06d5-6171-45a2-9ea3-8336cae89544","scopes":[]}}},"servers":{"e07865d4-66ec-4299-81b1-509ce4c54f15":{"url":"https://commerceos.aiagents.fabric.inc/api","description":"Production API"}},"schemas":{"358b1fe4-e531-4e1b-a3ce-1d6c8b9956a6":{"description":"Error response","properties":{"errors":{"description":"Errors","items":{"$circularRef":"358b1fe4-e531-4e1b-a3ce-1d6c8b9956a6"},"type":"array"},"message":{"description":"Error message","example":"Bad request","type":"string"},"type":{"description":"Error type","example":"CLIENT_ERROR","type":"string"}},"type":"object"}}},"originalFileLocation":"openapi/product-agent/product-agent.openapi.yaml"},"subdomain":"fabric-demo","siteName":"Fabric","title":"Retrieve optimization workflow status - Fabric","navMaps":{"firstHrefInVersion":{"Product Agent":{"href":"/product-agent/api-reference/optimize/get-workflow","matchLevel":0},"v3":{"href":"/v3/home","matchLevel":4},"v2":{"href":"/v2/home","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-05-18T11:09:02.438Z","originalFileLocation":"product-agent/api-reference/optimize/get-workflow.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=\"Returns the current state of an optimization workflow, including status, current_step, current_hitl_gate (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries. Poll this endpoint to track a workflow through its lifecycle. A 401 response indicates that the access token has expired; re-authenticate and retry the request. The status value progresses through PENDING, then RUNNING or IN_PROGRESS, then REVIEW_PENDING when paused at a human-in-the-loop gate, and ultimately COMPLETED. FAILED and CANCELLED are terminal alternatives. When status is REVIEW_PENDING, the value of current_hitl_gate identifies the active gate. Gate approval is performed in the CommerceOS web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Fabric\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/fabric-demo/4aXl3Y2Jab1lmXrs/_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/fabric-demo/4aXl3Y2Jab1lmXrs/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/fabric-demo/4aXl3Y2Jab1lmXrs/_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/fabric-demo/4aXl3Y2Jab1lmXrs/_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/fabric-demo/4aXl3Y2Jab1lmXrs/_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/fabric-demo/4aXl3Y2Jab1lmXrs/_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/fabric-demo/4aXl3Y2Jab1lmXrs/_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/fabric-demo/4aXl3Y2Jab1lmXrs/_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/fabric-demo/4aXl3Y2Jab1lmXrs/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Retrieve optimization workflow status - Fabric\">\u003cmeta data-mint-head property=\"og:description\" content=\"Returns the current state of an optimization workflow, including status, current_step, current_hitl_gate (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries. Poll this endpoint to track a workflow through its lifecycle. A 401 response indicates that the access token has expired; re-authenticate and retry the request. The status value progresses through PENDING, then RUNNING or IN_PROGRESS, then REVIEW_PENDING when paused at a human-in-the-loop gate, and ultimately COMPLETED. FAILED and CANCELLED are terminal alternatives. When status is REVIEW_PENDING, the value of current_hitl_gate identifies the active gate. Gate approval is performed in the CommerceOS web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Fabric\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://fabric-demo.mintlify.app/_mintlify/api/og/v2?division=Optimize\u0026amp;title=Retrieve+optimization+workflow+status\u0026amp;description=Returns+the+current+state+of+an+optimization+workflow%2C+including+%60status%60%2C+%60current_step%60%2C+%60current_hitl_gate%60+%28when+the+workflow+is+paused+at+a+review+gate%29%2C+p\u0026amp;theme=d21d2e5604bc479b7e92e42c\u0026amp;signature=0039bfc00e3f8ed517f07eab08f8deb292ef68691ad4352c1fdb6fbcd6029c00\">\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=\"Retrieve optimization workflow status - Fabric\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Returns the current state of an optimization workflow, including status, current_step, current_hitl_gate (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries. Poll this endpoint to track a workflow through its lifecycle. A 401 response indicates that the access token has expired; re-authenticate and retry the request. The status value progresses through PENDING, then RUNNING or IN_PROGRESS, then REVIEW_PENDING when paused at a human-in-the-loop gate, and ultimately COMPLETED. FAILED and CANCELLED are terminal alternatives. When status is REVIEW_PENDING, the value of current_hitl_gate identifies the active gate. Gate approval is performed in the CommerceOS web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://fabric-demo.mintlify.app/_mintlify/api/og/v2?division=Optimize\u0026amp;title=Retrieve+optimization+workflow+status\u0026amp;description=Returns+the+current+state+of+an+optimization+workflow%2C+including+%60status%60%2C+%60current_step%60%2C+%60current_hitl_gate%60+%28when+the+workflow+is+paused+at+a+review+gate%29%2C+p\u0026amp;theme=d21d2e5604bc479b7e92e42c\u0026amp;signature=0039bfc00e3f8ed517f07eab08f8deb292ef68691ad4352c1fdb6fbcd6029c00\">\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/fabric-demo/4aXl3Y2Jab1lmXrs/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Fabric\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff2ec1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/product-agent/api-reference/optimize/get-workflow.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developer.fabric.inc/#organization\",\"name\":\"Fabric\",\"url\":\"https://developer.fabric.inc\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/fabric-demo/OzlZxX-hOwze1Aen/logo/darkneon.png?fit=max\u0026auto=format\u0026n=OzlZxX-hOwze1Aen\u0026q=85\u0026s=332d2284d5f41dc42f5b9e0bcd473872\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developer.fabric.inc#website\",\"name\":\"Fabric\",\"url\":\"https://developer.fabric.inc\",\"publisher\":{\"@id\":\"https://developer.fabric.inc/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow#webpage\",\"url\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow\",\"name\":\"Retrieve optimization workflow status\",\"description\":\"Returns the current state of an optimization workflow, including status, current_step, current_hitl_gate (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries. Poll this endpoint to track a workflow through its lifecycle. A 401 response indicates that the access token has expired; re-authenticate and retry the request. The status value progresses through PENDING, then RUNNING or IN_PROGRESS, then REVIEW_PENDING when paused at a human-in-the-loop gate, and ultimately COMPLETED. FAILED and CANCELLED are terminal alternatives. When status is REVIEW_PENDING, the value of current_hitl_gate identifies the active gate. Gate approval is performed in the CommerceOS web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\",\"dateModified\":\"2026-05-18T11:09:02.438Z\",\"isPartOf\":{\"@id\":\"https://developer.fabric.inc#website\"},\"breadcrumb\":{\"@id\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Endpoints\",\"item\":\"https://developer.fabric.inc/product-agent/developer-guides/postman-import-csv-guide\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optimize\",\"item\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/create-workflow\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Retrieve optimization workflow status\",\"item\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow#apireference\",\"headline\":\"Retrieve optimization workflow status\",\"name\":\"Retrieve optimization workflow status\",\"description\":\"Returns the current state of an optimization workflow, including status, current_step, current_hitl_gate (when the workflow is paused at a review gate), per-phase progress, and aggregated review and reviewer summaries. Poll this endpoint to track a workflow through its lifecycle. A 401 response indicates that the access token has expired; re-authenticate and retry the request. The status value progresses through PENDING, then RUNNING or IN_PROGRESS, then REVIEW_PENDING when paused at a human-in-the-loop gate, and ultimately COMPLETED. FAILED and CANCELLED are terminal alternatives. When status is REVIEW_PENDING, the value of current_hitl_gate identifies the active gate. Gate approval is performed in the CommerceOS web application — direct the assigned reviewer to CommerceOS to evaluate and approve the gate. Once the reviewer acts, the workflow resumes and subsequent polls reflect the new state.\",\"url\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow\",\"mainEntityOfPage\":{\"@id\":\"https://developer.fabric.inc/product-agent/api-reference/optimize/get-workflow#webpage\"},\"dateModified\":\"2026-05-18T11:09:02.438Z\",\"publisher\":{\"@id\":\"https://developer.fabric.inc/#organization\"},\"isPartOf\":{\"@id\":\"https://developer.fabric.inc#website\"}}]}\u003c/script>","siteName":"Fabric","nav":{"global":null,"versions":[{"version":"Product Agent","tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/home"}]},{"tab":"Overview","pages":[{"title":"Overview","href":"/product-agent/overview"}]},{"tab":"Monitor","pages":[{"title":"Monitor","href":"/product-agent/monitor/overview"}]},{"tab":"Activate","groups":[{"group":"Activate","pages":[{"title":"Overview","href":"/product-agent/activate/overview"},{"group":"Product Activation","pages":[{"title":"Introduction","href":"/product-agent/activate/activating-products/introduction"},{"title":"Experiments","href":"/product-agent/activate/activating-products/experiments"},{"title":"Importing Products","href":"/product-agent/activate/activating-products/importing-products"}]},{"title":"Taxonomy Mapping","href":"/product-agent/activate/taxonomy-mapping"},{"title":"Enriching Products","href":"/product-agent/activate/enriching-products"},{"title":"Sampled Enrichment","href":"/product-agent/activate/sampled-enrichment"},{"title":"Enrich All \u0026 Review","href":"/product-agent/activate/enrich-all-review"},{"title":"Publishing Products","href":"/product-agent/activate/publishing-products"}]},{"group":"API Endpoints","pages":[{"title":"Product Import Developer Guide","href":"/product-agent/developer-guides/postman-import-csv-guide"},{"group":"Authentication","pages":[{"openapi":"product-agent.openapi post /platform/v1/auth/token","title":"Create Access Token","href":"/product-agent/api-reference/authorization/get-token"}]},{"group":"Attributes","pages":[{"openapi":"product-agent.openapi post /v2/attributes/import","title":"Import attributes from CSV","href":"/product-agent/api-reference/attributes/import-attributes"},{"openapi":"product-agent.openapi get /v2/attributes/import/{import_id}","title":"Get attribute import status","href":"/product-agent/api-reference/attributes/get-import-status"}]},{"group":"Categories","pages":[{"openapi":"product-agent.openapi post /v2/categories/import","title":"Bulk Import Categories","href":"/product-agent/api-reference/categories/import-categories"},{"openapi":"product-agent.openapi get /v2/categories/import/{import_id}","title":"Get category import status","href":"/product-agent/api-reference/categories/get-import-status"}]},{"group":"Artifacts","pages":[{"openapi":"product-agent.openapi post /v2/optimize/artifacts","title":"Upload a catalog artifact","href":"/product-agent/api-reference/artifacts/upload-artifact"},{"openapi":"product-agent.openapi get /v2/optimize/artifacts/{artifact_id}","title":"Retrieve artifact metadata and download URL","href":"/product-agent/api-reference/artifacts/get-artifact"}]},{"group":"Optimize","pages":[{"openapi":"product-agent.openapi post /v2/optimize/workflows","title":"Create an optimization workflow","description":"Creates an optimization workflow that processes a previously uploaded artifact. Provide the `artifact_id` returned by `POST /v2/optimize/artifacts` as `input.artifact.artifact_id`.\n\nWorkflows run in supervised mode by default. The workflow pauses at human-in-the-loop review gates that allow reviewers to approve taxonomy mappings, sample enrichments, and the final publish step.\n\n**Review gates are approved in the CommerceOS web application, not through the API.** When a workflow reaches `status: REVIEW_PENDING`, direct a reviewer to [CommerceOS](https://commerceos.fabric.inc) to evaluate and approve the active gate. Once the reviewer acts in the UI, the workflow resumes automatically and the next poll of `GET /v2/optimize/workflows/{workflow_id}` reflects the new state.\n","href":"/product-agent/api-reference/optimize/create-workflow"},{"openapi":"product-agent.openapi get /v2/optimize/workflows/{workflow_id}","title":"Retrieve optimization workflow status","href":"/product-agent/api-reference/optimize/get-workflow"}]}]}]},{"tab":"Admin \u0026 Settings","pages":[{"title":"Admin \u0026 Settings","href":"/product-agent/admin-settings/admin/overview"}]}]},{"version":"v3","pages":[{"title":"v3","href":"/v3/home"}]},{"version":"v2","pages":[{"title":"v2","href":"/v2/home"}]}]},"title":"Retrieve optimization workflow status - Fabric","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}