[{"data":1,"prerenderedAt":1142},["ShallowReactive",2],{"nav-en":3,"learn-chrome-id":592,"doc-\u002Fid\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fgetting-started":690,"mdc--fnmfu1-key":1131},[4],{"title":5,"path":6,"stem":7,"children":8,"page":11},"Docs","\u002Fdocs","docs",[9,81,269,470,553],{"title":10,"draft":11,"path":12,"stem":13,"children":14},"Overview",false,"\u002Fdocs\u002Foverview","docs\u002F01.overview\u002Findex",[15,16,41,66],{"title":10,"path":12,"stem":13,"draft":11},{"title":17,"draft":11,"path":18,"stem":19,"children":20,"page":11},"Get started","\u002Fdocs\u002Foverview\u002Fget-started","docs\u002F01.overview\u002F01.get-started",[21,26,31,36],{"title":22,"path":23,"stem":24,"draft":11,"icon":25},"What is DataGlass","\u002Fdocs\u002Foverview\u002Fget-started\u002Fwhat-is-dataglass","docs\u002F01.overview\u002F01.get-started\u002F01.what-is-dataglass","i-material-symbols-info-rounded",{"title":27,"path":28,"stem":29,"draft":11,"icon":30},"Quick start","\u002Fdocs\u002Foverview\u002Fget-started\u002Fquick-start","docs\u002F01.overview\u002F01.get-started\u002F02.quick-start","i-material-symbols-rocket-launch-rounded",{"title":32,"path":33,"stem":34,"draft":11,"icon":35},"Supported platforms","\u002Fdocs\u002Foverview\u002Fget-started\u002Fsupported-platforms","docs\u002F01.overview\u002F01.get-started\u002F03.supported-platforms","i-material-symbols-grid-view-rounded",{"title":37,"path":38,"stem":39,"draft":11,"icon":40},"Connecting shops","\u002Fdocs\u002Foverview\u002Fget-started\u002Fconnecting-shops","docs\u002F01.overview\u002F01.get-started\u002F04.connecting-shops","i-material-symbols-link-rounded",{"title":42,"draft":11,"path":43,"stem":44,"children":45,"page":11},"Foundations","\u002Fdocs\u002Foverview\u002Ffoundations","docs\u002F01.overview\u002F02.foundations",[46,51,56,61],{"title":47,"path":48,"stem":49,"draft":11,"icon":50},"This shop vs Unified view","\u002Fdocs\u002Foverview\u002Ffoundations\u002Fthis-shop-vs-unified","docs\u002F01.overview\u002F02.foundations\u002F01.this-shop-vs-unified","i-material-symbols-layers-rounded",{"title":52,"path":53,"stem":54,"draft":11,"icon":55},"COGS and their role","\u002Fdocs\u002Foverview\u002Ffoundations\u002Fcogs-and-their-role","docs\u002F01.overview\u002F02.foundations\u002F02.cogs-and-their-role","i-material-symbols-payments-rounded",{"title":57,"path":58,"stem":59,"draft":11,"icon":60},"What's in your margin","\u002Fdocs\u002Foverview\u002Ffoundations\u002Fideal-vs-realized-margin","docs\u002F01.overview\u002F02.foundations\u002F03.ideal-vs-realized-margin","i-material-symbols-compare-arrows-rounded",{"title":62,"path":63,"stem":64,"draft":11,"icon":65},"True ROAS","\u002Fdocs\u002Foverview\u002Ffoundations\u002Ftrue-roas","docs\u002F01.overview\u002F02.foundations\u002F04.true-roas","i-material-symbols-ad-group-rounded",{"title":67,"draft":11,"path":68,"stem":69,"children":70,"page":11},"Explore","\u002Fdocs\u002Foverview\u002Fexplore","docs\u002F01.overview\u002F03.explore",[71,76],{"title":72,"path":73,"stem":74,"draft":11,"icon":75},"Pricing","\u002Fdocs\u002Foverview\u002Fexplore\u002Fpricing","docs\u002F01.overview\u002F03.explore\u002F01.pricing","i-material-symbols-sell-rounded",{"title":77,"path":78,"stem":79,"draft":11,"to":80},"Releases","\u002Fdocs\u002Foverview\u002Fexplore\u002Freleases","docs\u002F01.overview\u002F03.explore\u002F02.releases","\u002Freleases",{"title":82,"draft":11,"path":83,"stem":84,"children":85},"Features","\u002Fdocs\u002Ffeatures","docs\u002F02.features\u002Findex",[86,87,117,167,208,230,250],{"title":10,"path":83,"stem":84,"draft":11},{"title":88,"draft":11,"path":89,"stem":90,"children":91,"page":11},"Shops","\u002Fdocs\u002Ffeatures\u002Fshops","docs\u002F02.features\u002F01.shops",[92,97,102,107,112],{"title":93,"path":94,"stem":95,"draft":11,"icon":96},"Shop overview","\u002Fdocs\u002Ffeatures\u002Fshops\u002Fshop-overview","docs\u002F02.features\u002F01.shops\u002F01.shop-overview","i-material-symbols-space-dashboard-rounded",{"title":98,"path":99,"stem":100,"draft":11,"icon":101},"Understanding the numbers","\u002Fdocs\u002Ffeatures\u002Fshops\u002Funderstanding-the-numbers","docs\u002F02.features\u002F01.shops\u002F02.understanding-the-numbers","i-material-symbols-help-rounded",{"title":103,"path":104,"stem":105,"draft":11,"icon":106},"Attribution & dedup","\u002Fdocs\u002Ffeatures\u002Fshops\u002Fattribution-and-dedup","docs\u002F02.features\u002F01.shops\u002F03.attribution-and-dedup","i-material-symbols-call-merge-rounded",{"title":108,"path":109,"stem":110,"draft":11,"icon":111},"Shop health","\u002Fdocs\u002Ffeatures\u002Fshops\u002Fshop-health","docs\u002F02.features\u002F01.shops\u002F04.shop-health","i-material-symbols-monitor-heart-rounded",{"title":113,"path":114,"stem":115,"draft":11,"icon":116},"Shop settings and sync","\u002Fdocs\u002Ffeatures\u002Fshops\u002Fshop-settings-and-sync","docs\u002F02.features\u002F01.shops\u002F05.shop-settings-and-sync","i-material-symbols-settings-rounded",{"title":118,"draft":11,"path":119,"stem":120,"children":121,"page":11},"Products","\u002Fdocs\u002Ffeatures\u002Fproducts","docs\u002F02.features\u002F02.products",[122,127,132,137,142,147,152,157,162],{"title":123,"path":124,"stem":125,"draft":11,"icon":126},"Product table","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fproduct-table","docs\u002F02.features\u002F02.products\u002F01.product-table","i-material-symbols-deployed-code-rounded",{"title":128,"path":129,"stem":130,"draft":11,"icon":131},"Unified products","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Funified-products","docs\u002F02.features\u002F02.products\u002F02.unified-products","i-material-symbols-dashboard-customize-rounded",{"title":133,"path":134,"stem":135,"draft":11,"icon":136},"Matching and merging products","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fmatching-and-merging","docs\u002F02.features\u002F02.products\u002F03.matching-and-merging","i-material-symbols-merge-rounded",{"title":138,"path":139,"stem":140,"draft":11,"icon":141},"Bulk edit (Excel)","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fbulk-edit-excel","docs\u002F02.features\u002F02.products\u002F04.bulk-edit-excel","i-material-symbols-grid-on-rounded",{"title":143,"path":144,"stem":145,"draft":11,"icon":146},"Inventory and reorder","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Finventory-and-reorder","docs\u002F02.features\u002F02.products\u002F05.inventory-and-reorder","i-material-symbols-inventory-2-rounded",{"title":148,"path":149,"stem":150,"draft":11,"icon":151},"Stock sync","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fstock-sync","docs\u002F02.features\u002F02.products\u002F06.stock-sync","i-material-symbols-sync-rounded",{"title":153,"path":154,"stem":155,"draft":11,"icon":156},"Commission","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fcommission","docs\u002F02.features\u002F02.products\u002F07.commission","i-material-symbols-price-change-rounded",{"title":158,"path":159,"stem":160,"draft":11,"icon":161},"Auto bump","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fauto-bump","docs\u002F02.features\u002F02.products\u002F08.auto-bump","i-material-symbols-trending-up-rounded",{"title":163,"path":164,"stem":165,"draft":11,"icon":166},"Margin spread","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fmargin-spread","docs\u002F02.features\u002F02.products\u002F09.margin-spread","i-material-symbols-straighten-rounded",{"title":168,"draft":11,"path":169,"stem":170,"children":171},"Financial breakdown","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown","docs\u002F02.features\u002F03.financial-breakdown\u002Findex",[172,173,178,183,188,193,198,203],{"title":10,"path":169,"stem":170,"draft":11},{"title":174,"path":175,"stem":176,"draft":11,"icon":177},"Simulate and draft edit","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fsimulate-and-draft-edit","docs\u002F02.features\u002F03.financial-breakdown\u002F01.simulate-and-draft-edit","i-material-symbols-science-rounded",{"title":179,"path":180,"stem":181,"draft":11,"icon":182},"Set margin","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fset-margin","docs\u002F02.features\u002F03.financial-breakdown\u002F02.set-margin","i-material-symbols-tune-rounded",{"title":184,"path":185,"stem":186,"draft":11,"icon":187},"Margin optimizer","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fmargin-optimizer","docs\u002F02.features\u002F03.financial-breakdown\u002F03.margin-optimizer","i-material-symbols-instant-mix-rounded",{"title":189,"path":190,"stem":191,"draft":11,"icon":192},"Price elasticity","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fprice-elasticity","docs\u002F02.features\u002F03.financial-breakdown\u002F04.price-elasticity","i-material-symbols-show-chart-rounded",{"title":194,"path":195,"stem":196,"draft":11,"icon":197},"Product calculator","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fproduct-calculator","docs\u002F02.features\u002F03.financial-breakdown\u002F05.product-calculator","i-material-symbols-calculate-rounded",{"title":199,"path":200,"stem":201,"draft":11,"icon":202},"Product history","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fproduct-history","docs\u002F02.features\u002F03.financial-breakdown\u002F06.product-history","i-material-symbols-history-rounded",{"title":204,"path":205,"stem":206,"draft":11,"icon":207},"Net profit & hidden cost","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fnet-profit-and-hidden-cost","docs\u002F02.features\u002F03.financial-breakdown\u002F07.net-profit-and-hidden-cost","i-material-symbols-visibility-off-rounded",{"title":72,"draft":11,"path":209,"stem":210,"children":211,"page":11},"\u002Fdocs\u002Ffeatures\u002Fpricing","docs\u002F02.features\u002F04.pricing",[212,216,221,226],{"title":213,"path":214,"stem":215,"draft":11,"icon":141},"Price Edit","\u002Fdocs\u002Ffeatures\u002Fpricing\u002Fprice-edit","docs\u002F02.features\u002F04.pricing\u002F01.price-edit",{"title":217,"path":218,"stem":219,"draft":11,"icon":220},"Price increase whitelist","\u002Fdocs\u002Ffeatures\u002Fpricing\u002Fprice-increase-whitelist","docs\u002F02.features\u002F04.pricing\u002F02.price-increase-whitelist","i-lucide-badge-check",{"title":222,"path":223,"stem":224,"draft":11,"icon":225},"Requesting whitelist approval","\u002Fdocs\u002Ffeatures\u002Fpricing\u002Frequest-whitelist-approval","docs\u002F02.features\u002F04.pricing\u002F03.request-whitelist-approval","i-lucide-mail",{"title":227,"path":228,"stem":229,"draft":11,"icon":75},"Price tiers","\u002Fdocs\u002Ffeatures\u002Fpricing\u002Fprice-tiers","docs\u002F02.features\u002F04.pricing\u002F04.price-tiers",{"title":231,"draft":11,"path":232,"stem":233,"children":234},"Campaign simulator","\u002Fdocs\u002Ffeatures\u002Fcampaign-simulator","docs\u002F02.features\u002F05.campaign-simulator\u002Findex",[235,236,241,246],{"title":10,"path":232,"stem":233,"draft":11},{"title":237,"path":238,"stem":239,"draft":11,"icon":240},"Campaign phases","\u002Fdocs\u002Ffeatures\u002Fcampaign-simulator\u002Fphase-model","docs\u002F02.features\u002F05.campaign-simulator\u002F01.phase-model","i-material-symbols-timeline-rounded",{"title":242,"path":243,"stem":244,"draft":11,"icon":245},"Ads planning","\u002Fdocs\u002Ffeatures\u002Fcampaign-simulator\u002Fads-planning","docs\u002F02.features\u002F05.campaign-simulator\u002F02.ads-planning","i-material-symbols-ads-click-rounded",{"title":247,"path":248,"stem":249,"draft":11,"icon":60},"Counterfactual","\u002Fdocs\u002Ffeatures\u002Fcampaign-simulator\u002Fcounterfactual","docs\u002F02.features\u002F05.campaign-simulator\u002F03.counterfactual",{"title":251,"draft":11,"path":252,"stem":253,"children":254,"page":11},"Orders","\u002Fdocs\u002Ffeatures\u002Forders","docs\u002F02.features\u002F06.orders",[255,259,264],{"title":251,"path":256,"stem":257,"draft":11,"icon":258},"\u002Fdocs\u002Ffeatures\u002Forders\u002Forders","docs\u002F02.features\u002F06.orders\u002F01.orders","i-material-symbols-receipt-long-rounded",{"title":260,"path":261,"stem":262,"draft":11,"icon":263},"Reconciliation","\u002Fdocs\u002Ffeatures\u002Forders\u002Freconciliation","docs\u002F02.features\u002F06.orders\u002F02.reconciliation","i-material-symbols-balance",{"title":265,"path":266,"stem":267,"draft":11,"icon":268},"Shipping labels","\u002Fdocs\u002Ffeatures\u002Forders\u002Fshipping-labels","docs\u002F02.features\u002F06.orders\u002F03.shipping-labels","i-material-symbols-local-shipping-rounded",{"title":270,"draft":11,"path":271,"stem":272,"children":273},"Growth","\u002Fdocs\u002Fgrowth","docs\u002F03.growth\u002Findex",[274,275,298,362,386],{"title":10,"path":271,"stem":272,"draft":11},{"title":276,"draft":11,"path":277,"stem":278,"children":279,"page":11},"Actions","\u002Fdocs\u002Fgrowth\u002Factions","docs\u002F03.growth\u002F01.actions",[280,285,289,294],{"title":281,"path":282,"stem":283,"draft":11,"icon":284},"What are Actions","\u002Fdocs\u002Fgrowth\u002Factions\u002Fwhat-are-actions","docs\u002F03.growth\u002F01.actions\u002F01.what-are-actions","i-material-symbols-app-spark-rounded",{"title":286,"path":287,"stem":288,"draft":11},"Action flow","\u002Fdocs\u002Fgrowth\u002Factions\u002Faction-flow","docs\u002F03.growth\u002F01.actions\u002F02.action-flow",{"title":290,"path":291,"stem":292,"draft":11,"icon":293},"Deployed and dismissed","\u002Fdocs\u002Fgrowth\u002Factions\u002Fdeployed-and-dismissed","docs\u002F03.growth\u002F01.actions\u002F03.deployed-and-dismissed","i-material-symbols-published-with-changes-rounded",{"title":295,"path":296,"stem":297,"draft":11,"icon":197},"How Results are calculated","\u002Fdocs\u002Fgrowth\u002Factions\u002Fresults","docs\u002F03.growth\u002F01.actions\u002F04.results",{"title":299,"draft":11,"path":300,"stem":301,"children":302,"icon":304},"Action types","\u002Fdocs\u002Fgrowth\u002Faction-types","docs\u002F03.growth\u002F02.action-types\u002Findex",[303,305,310,315,319,324,329,334,339,343,348,353,358],{"title":10,"path":300,"stem":301,"draft":11,"icon":304},"i-material-symbols-format-list-bulleted-rounded",{"title":306,"path":307,"stem":308,"draft":11,"icon":309},"Price buffer","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fprice-buffer","docs\u002F03.growth\u002F02.action-types\u002F01.price-buffer","i-material-symbols-money-range-rounded",{"title":311,"path":312,"stem":313,"draft":11,"icon":314},"Commission adjust","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fcommission-adjust","docs\u002F03.growth\u002F02.action-types\u002F02.commission-adjust","i-material-symbols-percent-discount-rounded",{"title":316,"path":317,"stem":318,"draft":11,"icon":106},"Variant merge","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fvariant-merge","docs\u002F03.growth\u002F02.action-types\u002F03.variant-merge",{"title":320,"path":321,"stem":322,"draft":11,"icon":323},"Target ROAS","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Ftarget-roas","docs\u002F03.growth\u002F02.action-types\u002F04.target-roas","i-material-symbols-target",{"title":325,"path":326,"stem":327,"draft":11,"icon":328},"Bundle Deal","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fbundle-deal","docs\u002F03.growth\u002F02.action-types\u002F05.bundle-deal","i-material-symbols-category-rounded",{"title":330,"path":331,"stem":332,"draft":11,"icon":333},"Product Boost","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fproduct-boost","docs\u002F03.growth\u002F02.action-types\u002F06.product-boost","i-material-symbols-electric-bolt-rounded",{"title":335,"path":336,"stem":337,"draft":11,"icon":338},"Campaign Enrollment","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fcampaign-enrollment","docs\u002F03.growth\u002F02.action-types\u002F07.campaign-enrollment","i-material-symbols-play-arrow-rounded",{"title":340,"path":341,"stem":342,"draft":11,"icon":245},"Ad Adjustment","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fad-adjustment","docs\u002F03.growth\u002F02.action-types\u002F08.ad-adjustment",{"title":344,"path":345,"stem":346,"draft":11,"icon":347},"SEO","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fseo","docs\u002F03.growth\u002F02.action-types\u002F09.seo","i-material-symbols-category-search-rounded",{"title":349,"path":350,"stem":351,"draft":11,"icon":352},"Add-on Deal","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fadd-on-deal","docs\u002F03.growth\u002F02.action-types\u002F10.add-on-deal","i-material-symbols-add-box-rounded",{"title":354,"path":355,"stem":356,"draft":11,"icon":357},"Stock Up","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fstock-up","docs\u002F03.growth\u002F02.action-types\u002F11.stock-up","i-material-symbols-inventory-rounded",{"title":359,"path":360,"stem":361,"draft":11,"icon":323},"TikTok Target ROAS","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Ftiktok-target-roas","docs\u002F03.growth\u002F02.action-types\u002F12.tiktok-target-roas",{"title":363,"draft":11,"path":364,"stem":365,"children":366,"page":11},"Ads","\u002Fdocs\u002Fgrowth\u002Fads","docs\u002F03.growth\u002F03.ads",[367,372,376,381],{"title":368,"path":369,"stem":370,"draft":11,"icon":371},"Reading the Sankey","\u002Fdocs\u002Fgrowth\u002Fads\u002Freading-the-sankey","docs\u002F03.growth\u002F03.ads\u002F01.reading-the-sankey","i-material-symbols-schema-rounded",{"title":373,"path":374,"stem":375,"draft":11,"icon":60},"Cannibalization","\u002Fdocs\u002Fgrowth\u002Fads\u002Fcannibalization","docs\u002F03.growth\u002F03.ads\u002F02.cannibalization",{"title":377,"path":378,"stem":379,"draft":11,"icon":380},"Meta (Facebook) Ads","\u002Fdocs\u002Fgrowth\u002Fads\u002Fmeta-ads","docs\u002F03.growth\u002F03.ads\u002F03.meta-ads","i-simple-icons-meta",{"title":382,"path":383,"stem":384,"draft":11,"icon":385},"CPAS profit","\u002Fdocs\u002Fgrowth\u002Fads\u002Fcpas-profit","docs\u002F03.growth\u002F03.ads\u002F04.cpas-profit","i-material-symbols-hub-rounded",{"title":387,"draft":11,"path":388,"stem":389,"children":390,"icon":65},"Optimization groups","\u002Fdocs\u002Fgrowth\u002Foptimization-groups","docs\u002F03.growth\u002F04.optimization-groups\u002Findex",[391,392,397,402,407,412,416,421,426,431,436,441,445,450,455,460,465],{"title":10,"path":388,"stem":389,"draft":11,"icon":65},{"title":393,"path":394,"stem":395,"draft":11,"icon":396},"Planning your groups","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fplanning-your-groups","docs\u002F03.growth\u002F04.optimization-groups\u002F00.planning-your-groups","i-lucide-boxes",{"title":398,"path":399,"stem":400,"draft":11,"icon":401},"Creating a group","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fcreating-a-group","docs\u002F03.growth\u002F04.optimization-groups\u002F01.creating-a-group","i-lucide-plus",{"title":403,"path":404,"stem":405,"draft":11,"icon":406},"Global settings","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fglobal-settings","docs\u002F03.growth\u002F04.optimization-groups\u002F02.global-settings","i-lucide-settings-2",{"title":408,"path":409,"stem":410,"draft":11,"icon":411},"Budget and limits","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fbudget-and-limits","docs\u002F03.growth\u002F04.optimization-groups\u002F03.budget-and-limits","i-lucide-wallet",{"title":270,"path":413,"stem":414,"draft":11,"icon":415},"\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fgrowth","docs\u002F03.growth\u002F04.optimization-groups\u002F04.growth","i-lucide-trending-up",{"title":417,"path":418,"stem":419,"draft":11,"icon":420},"Choosing an objective","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fchoosing-an-objective","docs\u002F03.growth\u002F04.optimization-groups\u002F05.choosing-an-objective","i-lucide-target",{"title":422,"path":423,"stem":424,"draft":11,"icon":425},"Constraints","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fconstraints","docs\u002F03.growth\u002F04.optimization-groups\u002F06.constraints","i-lucide-shield-check",{"title":427,"path":428,"stem":429,"draft":11,"icon":430},"Distribution","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fallocation-preference","docs\u002F03.growth\u002F04.optimization-groups\u002F07.allocation-preference","i-lucide-sliders-horizontal",{"title":432,"path":433,"stem":434,"draft":11,"icon":435},"Pacing and rebalancing","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fpacing-and-rebalancing","docs\u002F03.growth\u002F04.optimization-groups\u002F08.pacing-and-rebalancing","i-lucide-clock",{"title":437,"path":438,"stem":439,"draft":11,"icon":440},"The month plan","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fmonthly-plan","docs\u002F03.growth\u002F04.optimization-groups\u002F09.monthly-plan","i-lucide-calendar-days",{"title":442,"path":443,"stem":444,"draft":11,"icon":435},"The Timeline schedule","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fschedule","docs\u002F03.growth\u002F04.optimization-groups\u002F10.schedule",{"title":446,"path":447,"stem":448,"draft":11,"icon":449},"Automation rules","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fautomation","docs\u002F03.growth\u002F04.optimization-groups\u002F11.automation","i-lucide-workflow",{"title":451,"path":452,"stem":453,"draft":11,"icon":454},"Managing campaigns in a group","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fmanaging-campaigns","docs\u002F03.growth\u002F04.optimization-groups\u002F12.managing-campaigns","i-lucide-list-checks",{"title":456,"path":457,"stem":458,"draft":11,"icon":459},"How the run works","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fdaily-run","docs\u002F03.growth\u002F04.optimization-groups\u002F13.daily-run","i-lucide-refresh-cw",{"title":461,"path":462,"stem":463,"draft":11,"icon":464},"When the ads model is updating","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fmodel-training","docs\u002F03.growth\u002F04.optimization-groups\u002F14.model-training","i-lucide-brain-circuit",{"title":466,"path":467,"stem":468,"draft":11,"icon":469},"Glossary","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fglossary","docs\u002F03.growth\u002F04.optimization-groups\u002F16.glossary","i-lucide-book-a",{"title":471,"draft":11,"path":472,"stem":473,"children":474},"AI and API","\u002Fdocs\u002Fai-and-api","docs\u002F04.ai-and-api\u002Findex",[475,476,518],{"title":10,"path":472,"stem":473,"draft":11},{"title":477,"draft":11,"path":478,"stem":479,"children":480,"icon":482},"AI assistants","\u002Fdocs\u002Fai-and-api\u002Fassistants","docs\u002F04.ai-and-api\u002F01.assistants\u002Findex",[481,483,488,493,498,503,508,513],{"title":10,"path":478,"stem":479,"draft":11,"icon":482},"i-material-symbols-smart-toy-rounded",{"title":484,"path":485,"stem":486,"draft":11,"icon":487},"Connect to ChatGPT","\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fconnect-chatgpt","docs\u002F04.ai-and-api\u002F01.assistants\u002F01.connect-chatgpt","i-simple-icons-openai",{"title":489,"path":490,"stem":491,"draft":11,"icon":492},"Connect to Claude","\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fconnect-claude","docs\u002F04.ai-and-api\u002F01.assistants\u002F02.connect-claude","i-simple-icons-claude",{"title":494,"path":495,"stem":496,"draft":11,"icon":497},"Native playbooks","\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fplaybooks","docs\u002F04.ai-and-api\u002F01.assistants\u002F03.playbooks","i-material-symbols-route-rounded",{"title":499,"path":500,"stem":501,"draft":11,"icon":502},"Prompt library","\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fprompt-library","docs\u002F04.ai-and-api\u002F01.assistants\u002F04.prompt-library","i-material-symbols-forum-rounded",{"title":504,"path":505,"stem":506,"draft":11,"icon":507},"MCP tool catalog","\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Ftool-catalog","docs\u002F04.ai-and-api\u002F01.assistants\u002F05.tool-catalog","i-material-symbols-build-rounded",{"title":509,"path":510,"stem":511,"draft":11,"icon":512},"Permissions and safety","\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fusage-and-safety","docs\u002F04.ai-and-api\u002F01.assistants\u002F06.usage-and-safety","i-material-symbols-health-and-safety-rounded",{"title":514,"path":515,"stem":516,"draft":11,"icon":517},"Worked MCP examples","\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fworked-examples","docs\u002F04.ai-and-api\u002F01.assistants\u002F07.worked-examples","i-material-symbols-menu-book-rounded",{"title":519,"draft":11,"path":520,"stem":521,"children":522,"page":11},"API","\u002Fdocs\u002Fai-and-api\u002Fapi","docs\u002F04.ai-and-api\u002F02.api",[523,528,533,538,543,548],{"title":524,"path":525,"stem":526,"draft":11,"icon":527},"Getting started","\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fgetting-started","docs\u002F04.ai-and-api\u002F02.api\u002F01.getting-started","i-material-symbols-key-rounded",{"title":529,"path":530,"stem":531,"draft":11,"icon":532},"API security & limits","\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fsecurity","docs\u002F04.ai-and-api\u002F02.api\u002F02.security","i-material-symbols-verified-user-rounded",{"title":534,"path":535,"stem":536,"draft":11,"icon":537},"Endpoints: products & orders","\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fproducts-and-orders","docs\u002F04.ai-and-api\u002F02.api\u002F03.products-and-orders","i-material-symbols-package-2-rounded",{"title":539,"path":540,"stem":541,"draft":11,"icon":542},"Endpoints: financial breakdown","\u002Fdocs\u002Fai-and-api\u002Fapi\u002Ffinancial-breakdown","docs\u002F04.ai-and-api\u002F02.api\u002F04.financial-breakdown","i-material-symbols-account-balance-rounded",{"title":544,"path":545,"stem":546,"draft":11,"icon":547},"Endpoints: raw platform data","\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fplatform-data","docs\u002F04.ai-and-api\u002F02.api\u002F05.platform-data","i-material-symbols-database-rounded",{"title":549,"path":550,"stem":551,"draft":11,"icon":552},"Endpoints: Actions & recommendations","\u002Fdocs\u002Fai-and-api\u002Fapi\u002Frecommendations","docs\u002F04.ai-and-api\u002F02.api\u002F06.recommendations","i-material-symbols-recommend-rounded",{"title":554,"draft":11,"path":555,"stem":556,"children":557},"Administration","\u002Fdocs\u002Fadministration","docs\u002F05.administration\u002Findex",[558,559,579],{"title":10,"path":555,"stem":556,"draft":11},{"title":560,"draft":11,"path":561,"stem":562,"children":563,"page":11},"Team and access","\u002Fdocs\u002Fadministration\u002Fteam-and-access","docs\u002F05.administration\u002F01.team-and-access",[564,569,574],{"title":565,"path":566,"stem":567,"draft":11,"icon":568},"Team & roles","\u002Fdocs\u002Fadministration\u002Fteam-and-access\u002Fteam-and-roles","docs\u002F05.administration\u002F01.team-and-access\u002F01.team-and-roles","i-material-symbols-group-rounded",{"title":570,"path":571,"stem":572,"draft":11,"icon":573},"Adding teammates","\u002Fdocs\u002Fadministration\u002Fteam-and-access\u002Fadding-teammates","docs\u002F05.administration\u002F01.team-and-access\u002F02.adding-teammates","i-material-symbols-person-add-rounded",{"title":575,"path":576,"stem":577,"draft":11,"icon":578},"Managing access","\u002Fdocs\u002Fadministration\u002Fteam-and-access\u002Fmanaging-access","docs\u002F05.administration\u002F01.team-and-access\u002F03.managing-access","i-material-symbols-admin-panel-settings-rounded",{"title":580,"draft":11,"path":581,"stem":582,"children":583,"page":11},"Account","\u002Fdocs\u002Fadministration\u002Faccount","docs\u002F05.administration\u002F02.account",[584,588],{"title":585,"path":586,"stem":587,"draft":11,"icon":385},"Open Platform","\u002Fdocs\u002Fadministration\u002Faccount\u002Fopen-platform","docs\u002F05.administration\u002F02.account\u002F01.open-platform",{"title":589,"path":590,"stem":591,"draft":11,"icon":258},"VAT","\u002Fdocs\u002Fadministration\u002Faccount\u002Fvat","docs\u002F05.administration\u002F02.account\u002F02.vat",{"id":593,"docsPage":594,"docsSidebar":605,"docsTabs":607,"extension":609,"footer":610,"header":669,"localeSwitch":685,"meta":687,"stem":688,"__hash__":689},"chrome_en\u002Fen\u002Fchrome.yml",{"onThisPage":595,"copyPage":596,"copied":597,"copyMenu":598,"copyMarkdownLink":599,"linkCopied":600,"viewMarkdown":601,"openChatGpt":602,"openClaude":603,"platforms":604},"On this page","Copy page","Copied","More copy options","Copy Markdown link","Copied to clipboard","View as Markdown","Open in ChatGPT","Open in Claude","Works on",{"label":606},"Docs sidebar",{"ariaLabel":608},"Docs sections","yml",{"ariaLabel":611,"columns":612,"legal":649,"quote":650,"askAi":653},"Footer",[613,625,631,639],{"label":67,"children":614},[615,616,619,622],{"label":5,"to":6},{"label":617,"to":618},"Use cases","\u002Fuse-cases",{"label":620,"to":621},"Training","\u002Ftraining",{"label":623,"to":624},"Resources","\u002Fresources",{"label":626,"children":627},"Build",[628,629,630],{"label":477,"to":478},{"label":519,"to":525},{"label":585,"to":586},{"label":632,"children":633},"Updates",[634,635],{"label":77,"to":80},{"label":636,"to":637,"target":638},"Blog","https:\u002F\u002Fwww.dataglasslabs.com\u002Fblog","_blank",{"label":640,"children":641},"DataGlass",[642,645,648],{"label":643,"to":644,"target":638},"Open DataGlass","https:\u002F\u002Fapp.dataglasslabs.com",{"label":646,"to":647,"target":638},"Website","https:\u002F\u002Fwww.dataglasslabs.com",{"label":72,"to":73},"DataGlass Labs. All rights reserved.",{"text":651,"caption":652},"Measure what you keep, and then grow what you measure.","The DataGlass team",{"label":654,"prompt":655,"assistants":656},"Ask AI about DataGlass","I want to learn how to use DataGlass, a decision engine for Shopee, Lazada and TikTok Shop sellers that optimizes ads, pricing and promotions for true profit. Use web search to read the DataGlass docs at https:\u002F\u002Flearn.dataglasslabs.com\u002Fdocs (with an agent-readable summary at https:\u002F\u002Flearn.dataglasslabs.com\u002Fllms.txt), then explain what DataGlass does, how to get started and which guides to read first.",[657,661,665],{"label":658,"icon":659,"url":660},"ChatGPT","chatgpt","https:\u002F\u002Fchatgpt.com\u002F?prompt={prompt}",{"label":662,"icon":663,"url":664},"Claude","claude","https:\u002F\u002Fclaude.ai\u002Fnew?q={prompt}",{"label":666,"icon":667,"url":668},"Perplexity","perplexity","https:\u002F\u002Fwww.perplexity.ai\u002Fsearch?q={prompt}",{"sections":670,"navLabel":683,"openApp":643,"search":684},[671,674,675,677,679,681],{"key":672,"label":673},"home","Home",{"key":7,"label":5},{"key":676,"label":617},"use-cases",{"key":678,"label":620},"training",{"key":680,"label":77},"releases",{"key":682,"label":623},"resources","Sections","Start searching",{"label":686},"Region and language",{},"en\u002Fchrome","mobUs3s2Zj3jKhQlnWk_tray3mh7L0ptp0ZGYXlK4NA",{"id":691,"title":524,"body":692,"description":1123,"draft":11,"draftReason":1124,"extension":1125,"layout":1124,"meta":1126,"navigation":1127,"path":525,"platforms":1124,"rawbody":1128,"seo":1129,"stem":526,"__hash__":1130},"docs_en\u002Fdocs\u002F04.ai-and-api\u002F02.api\u002F01.getting-started.md",{"type":693,"value":694,"toc":1116},"minimark",[695,715,720,766,777,781,795,837,848,901,904,908,927,937,940,966,970,973,1086,1090,1104,1112],[696,697,698,699,702,703,705,706,710,711,714],"p",{},"If you'd rather wire DataGlass into your own script, notebook, or custom agent — instead of the one-click ",[700,701,658],"a",{"href":485}," or ",[700,704,662],{"href":490}," connectors — you can issue an ",[707,708,709],"strong",{},"API key"," and call the DataGlass REST API directly. An API key (also called a Personal Access Token) carries the same access your account has, but ",[707,712,713],{},"read-only",".",[716,717,719],"h2",{"id":718},"create-a-key","Create a key",[721,722,723,730,736,759],"ol",{},[724,725,726,727,714],"li",{},"Open the account menu (top-right) and go to ",[707,728,729],{},"Settings → API keys",[724,731,732,733,714],{},"Click ",[707,734,735],{},"Create API key",[724,737,738,739,742,743,702,747,750,751,754,755,758],{},"Give it a ",[707,740,741],{},"label"," you'll recognize later (e.g. ",[744,745,746],"em",{},"\"Profit script\"",[744,748,749],{},"\"Claude Desktop\"",") and, optionally, an ",[707,752,753],{},"expiry"," — ",[744,756,757],{},"Never",", 30, 60, 90, or 365 days.",[724,760,761,762,714],{},"Copy the token that appears. It starts with ",[763,764,765],"code",{},"dg_pat_",[767,768,770],"callout",{"icon":769},"i-lucide-triangle-alert",[696,771,772,773,776],{},"The token is shown ",[707,774,775],{},"exactly once",". We store only a hash of it, so we can't show it again — if you lose it, revoke the key and create a new one.",[716,778,780],{"id":779},"call-the-api","Call the API",[696,782,783,784,787,788,791,792,714],{},"Send the token as a ",[707,785,786],{},"Bearer"," token on the ",[763,789,790],{},"Authorization"," header. The API lives at ",[763,793,794],{},"https:\u002F\u002Fprod-api.dataglasslabs.com",[796,797,802],"pre",{"className":798,"code":799,"language":800,"meta":801,"style":801},"language-bash shiki shiki-themes github-light","# List your connected Shopee shops\ncurl https:\u002F\u002Fprod-api.dataglasslabs.com\u002Fapi\u002Fshopee\u002Ffetch-all-user-shops \\\n  -H \"Authorization: Bearer dg_pat_your_token_here\"\n","bash","",[763,803,804,813,828],{"__ignoreMap":801},[805,806,809],"span",{"class":807,"line":808},"line",1,[805,810,812],{"class":811},"sAwPA","# List your connected Shopee shops\n",[805,814,816,820,824],{"class":807,"line":815},2,[805,817,819],{"class":818},"s7eDp","curl",[805,821,823],{"class":822},"sYBdl"," https:\u002F\u002Fprod-api.dataglasslabs.com\u002Fapi\u002Fshopee\u002Ffetch-all-user-shops",[805,825,827],{"class":826},"sYu0t"," \\\n",[805,829,831,834],{"class":807,"line":830},3,[805,832,833],{"class":826},"  -H",[805,835,836],{"class":822}," \"Authorization: Bearer dg_pat_your_token_here\"\n",[696,838,839,840,843,844,847],{},"Most endpoints are ",[763,841,842],{},"POST"," and take a JSON body — send ",[763,845,846],{},"Content-Type: application\u002Fjson",":",[796,849,851],{"className":798,"code":850,"language":800,"meta":801,"style":801},"# Free-text product search\ncurl -X POST https:\u002F\u002Fprod-api.dataglasslabs.com\u002Fapi\u002Fcanonical-product-controller\u002Fcanonical\u002Fsearch-products \\\n  -H \"Authorization: Bearer dg_pat_your_token_here\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"query\": \"phone case\" }'\n",[763,852,853,858,873,882,892],{"__ignoreMap":801},[805,854,855],{"class":807,"line":808},[805,856,857],{"class":811},"# Free-text product search\n",[805,859,860,862,865,868,871],{"class":807,"line":815},[805,861,819],{"class":818},[805,863,864],{"class":826}," -X",[805,866,867],{"class":822}," POST",[805,869,870],{"class":822}," https:\u002F\u002Fprod-api.dataglasslabs.com\u002Fapi\u002Fcanonical-product-controller\u002Fcanonical\u002Fsearch-products",[805,872,827],{"class":826},[805,874,875,877,880],{"class":807,"line":830},[805,876,833],{"class":826},[805,878,879],{"class":822}," \"Authorization: Bearer dg_pat_your_token_here\"",[805,881,827],{"class":826},[805,883,885,887,890],{"class":807,"line":884},4,[805,886,833],{"class":826},[805,888,889],{"class":822}," \"Content-Type: application\u002Fjson\"",[805,891,827],{"class":826},[805,893,895,898],{"class":807,"line":894},5,[805,896,897],{"class":826},"  -d",[805,899,900],{"class":822}," '{ \"query\": \"phone case\" }'\n",[696,902,903],{},"Every request runs as you — it sees exactly the shops, products, orders, and reports your account can see, and nothing from anyone else's.",[716,905,907],{"id":906},"what-you-can-reach","What you can reach",[696,909,910,911,914,915,918,919,921,922,924,925,714],{},"API keys can call the ",[707,912,913],{},"read"," side of DataGlass: your products and unified catalog, orders, financial breakdowns, True ROAS, inventory, and the same recommendations that power your Actions. A key you create here has no scope picker, so it is ",[707,916,917],{},"read-only by construction",". The ",[700,920,658],{"href":485}," and ",[700,923,662],{"href":490}," connectors read the same data, but an assistant can additionally request per-domain write scopes that you approve at connect time — see ",[700,926,509],{"href":510},[767,928,930],{"icon":929},"i-lucide-info",[696,931,932,933,936],{},"There is no publicly reachable OpenAPI spec today. An ",[763,934,935],{},"agent"," spec is generated internally from the live access rules — so it can never list an endpoint a key would be denied — but it is not currently served to the public internet. The endpoint references below are the authoritative public list.",[696,938,939],{},"This documentation groups the same endpoints into four references:",[941,942,943,949,954,960],"ul",{},[724,944,945,948],{},[700,946,947],{"href":535},"Products & orders"," — your catalog, unified products, orders, inventory, and connected shops",[724,950,951,953],{},[700,952,168],{"href":540}," — true-profit breakdowns, profit-adjusted ROAS, margin tools, and shop overviews",[724,955,956,959],{},[700,957,958],{"href":545},"Raw platform data"," — normalized per-platform product, order, and ad-campaign records",[724,961,962,965],{},[700,963,964],{"href":550},"Actions & recommendations"," — the profit-improving Actions the engine generates",[716,967,969],{"id":968},"conventions","Conventions",[696,971,972],{},"A few things that apply to every endpoint:",[941,974,975,983,993,1009,1021,1049,1077],{},[724,976,977,754,980,982],{},[707,978,979],{},"Base URL",[763,981,794],{},". All documented paths are relative to it.",[724,984,985,988,989,992],{},[707,986,987],{},"Auth"," — send your key as ",[763,990,991],{},"Authorization: Bearer dg_pat_…"," on every request.",[724,994,995,998,999,918,1002,1005,1006,714],{},[707,996,997],{},"Response envelope"," — responses are wrapped as ",[763,1000,1001],{},"{ \"status\": \"SUCCESS\", \"statusCode\": 200, \"message\": …, \"data\": \u003Cresult> }",[707,1003,1004],{},"Response"," type shown for each endpoint is the shape of ",[763,1007,1008],{},"data",[724,1010,1011,754,1014,1017,1018,714],{},[707,1012,1013],{},"Dates",[763,1015,1016],{},"date","-typed fields that carry a time component are serialized as arrays: ",[763,1019,1020],{},"[year, month (1-based), day, hour, minute, second]",[724,1022,1023,1028,1029,1032,1033,1042,1043,1046,1047,714],{},[707,1024,1025],{},[763,1026,1027],{},"region"," — marketplace region code (e.g. ",[763,1030,1031],{},"TH","). ",[707,1034,1035,1038,1039],{},[763,1036,1037],{},"shopId"," \u002F ",[763,1040,1041],{},"sellerId"," — the platform identifiers returned by the ",[744,1044,1045],{},"shops"," endpoints in ",[700,1048,947],{"href":535},[724,1050,1051,1054,1055,1058,1059,1062,1063,1066,1067,1070,1071,1038,1074,714],{},[707,1052,1053],{},"Pagination"," — cursor-paginated endpoints return ",[763,1056,1057],{},"{ rows\u002Fdata, nextCursor }","; pass ",[763,1060,1061],{},"nextCursor"," back to fetch the next page. Offset-paginated (v3) endpoints take ",[763,1064,1065],{},"page"," (0-based) + ",[763,1068,1069],{},"pageSize"," and return ",[763,1072,1073],{},"totalItems",[763,1075,1076],{},"totalPages",[724,1078,1079,1082,1083,714],{},[707,1080,1081],{},"Rate limit"," — 60 requests\u002Fminute per key; see ",[700,1084,529],{"href":1085},"\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fsecurity#rate-limit-60-requests-minute",[716,1087,1089],{"id":1088},"manage-and-revoke","Manage and revoke",[696,1091,1092,1093,1095,1096,1099,1100,1103],{},"Back on ",[707,1094,729],{}," you'll see every key with its label, prefix, last-used date, expiry, and status. Click ",[707,1097,1098],{},"Revoke"," on any key to disable it ",[707,1101,1102],{},"immediately and permanently"," — do this the moment a token might be exposed.",[767,1105,1107],{"icon":1106},"i-lucide-shield",[696,1108,1109,1110,714],{},"For the read-only policy, rate limits, and the rest of the safety rules around keys, see ",[700,1111,529],{"href":530},[1113,1114,1115],"style",{},"html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":801,"searchDepth":830,"depth":830,"links":1117},[1118,1119,1120,1121,1122],{"id":718,"depth":815,"text":719},{"id":779,"depth":815,"text":780},{"id":906,"depth":815,"text":907},{"id":968,"depth":815,"text":969},{"id":1088,"depth":815,"text":1089},"Create a read-only API key and call the DataGlass API directly from your own script or agent.",null,"md",{},{"icon":527},"---\ntitle: Getting started\ndescription: Create a read-only API key and call the DataGlass API directly from your own script or agent.\nnavigation:\n  icon: i-material-symbols-key-rounded\n---\n\nIf you'd rather wire DataGlass into your own script, notebook, or custom agent — instead of the one-click [ChatGPT](\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fconnect-chatgpt) or [Claude](\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fconnect-claude) connectors — you can issue an **API key** and call the DataGlass REST API directly. An API key (also called a Personal Access Token) carries the same access your account has, but **read-only**.\n\n## Create a key\n\n1. Open the account menu (top-right) and go to **Settings → API keys**.\n2. Click **Create API key**.\n3. Give it a **label** you'll recognize later (e.g. *\"Profit script\"* or *\"Claude Desktop\"*) and, optionally, an **expiry** — *Never*, 30, 60, 90, or 365 days.\n4. Copy the token that appears. It starts with `dg_pat_`.\n\n::callout{icon=\"i-lucide-triangle-alert\"}\nThe token is shown **exactly once**. We store only a hash of it, so we can't show it again — if you lose it, revoke the key and create a new one.\n::\n\n## Call the API\n\nSend the token as a **Bearer** token on the `Authorization` header. The API lives at `https:\u002F\u002Fprod-api.dataglasslabs.com`.\n\n```bash\n# List your connected Shopee shops\ncurl https:\u002F\u002Fprod-api.dataglasslabs.com\u002Fapi\u002Fshopee\u002Ffetch-all-user-shops \\\n  -H \"Authorization: Bearer dg_pat_your_token_here\"\n```\n\nMost endpoints are `POST` and take a JSON body — send `Content-Type: application\u002Fjson`:\n\n```bash\n# Free-text product search\ncurl -X POST https:\u002F\u002Fprod-api.dataglasslabs.com\u002Fapi\u002Fcanonical-product-controller\u002Fcanonical\u002Fsearch-products \\\n  -H \"Authorization: Bearer dg_pat_your_token_here\" \\\n  -H \"Content-Type: application\u002Fjson\" \\\n  -d '{ \"query\": \"phone case\" }'\n```\n\nEvery request runs as you — it sees exactly the shops, products, orders, and reports your account can see, and nothing from anyone else's.\n\n## What you can reach\n\nAPI keys can call the **read** side of DataGlass: your products and unified catalog, orders, financial breakdowns, True ROAS, inventory, and the same recommendations that power your Actions. A key you create here has no scope picker, so it is **read-only by construction**. The [ChatGPT](\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fconnect-chatgpt) and [Claude](\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fconnect-claude) connectors read the same data, but an assistant can additionally request per-domain write scopes that you approve at connect time — see [Permissions and safety](\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fusage-and-safety).\n\n::callout{icon=\"i-lucide-info\"}\nThere is no publicly reachable OpenAPI spec today. An `agent` spec is generated internally from the live access rules — so it can never list an endpoint a key would be denied — but it is not currently served to the public internet. The endpoint references below are the authoritative public list.\n::\n\nThis documentation groups the same endpoints into four references:\n\n- [Products & orders](\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fproducts-and-orders) — your catalog, unified products, orders, inventory, and connected shops\n- [Financial breakdown](\u002Fdocs\u002Fai-and-api\u002Fapi\u002Ffinancial-breakdown) — true-profit breakdowns, profit-adjusted ROAS, margin tools, and shop overviews\n- [Raw platform data](\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fplatform-data) — normalized per-platform product, order, and ad-campaign records\n- [Actions & recommendations](\u002Fdocs\u002Fai-and-api\u002Fapi\u002Frecommendations) — the profit-improving Actions the engine generates\n\n## Conventions\n\nA few things that apply to every endpoint:\n\n- **Base URL** — `https:\u002F\u002Fprod-api.dataglasslabs.com`. All documented paths are relative to it.\n- **Auth** — send your key as `Authorization: Bearer dg_pat_…` on every request.\n- **Response envelope** — responses are wrapped as `{ \"status\": \"SUCCESS\", \"statusCode\": 200, \"message\": …, \"data\": \u003Cresult> }`. The **Response** type shown for each endpoint is the shape of `data`.\n- **Dates** — `date`-typed fields that carry a time component are serialized as arrays: `[year, month (1-based), day, hour, minute, second]`.\n- **`region`** — marketplace region code (e.g. `TH`). **`shopId` \u002F `sellerId`** — the platform identifiers returned by the *shops* endpoints in [Products & orders](\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fproducts-and-orders).\n- **Pagination** — cursor-paginated endpoints return `{ rows\u002Fdata, nextCursor }`; pass `nextCursor` back to fetch the next page. Offset-paginated (v3) endpoints take `page` (0-based) + `pageSize` and return `totalItems` \u002F `totalPages`.\n- **Rate limit** — 60 requests\u002Fminute per key; see [API security & limits](\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fsecurity#rate-limit-60-requests-minute).\n\n## Manage and revoke\n\nBack on **Settings → API keys** you'll see every key with its label, prefix, last-used date, expiry, and status. Click **Revoke** on any key to disable it **immediately and permanently** — do this the moment a token might be exposed.\n\n::callout{icon=\"i-lucide-shield\"}\nFor the read-only policy, rate limits, and the rest of the safety rules around keys, see [API security & limits](\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fsecurity).\n::\n",{"title":524,"description":1123},"35nXAQ76AFsFQmbx2sTNDptSqR0X4MBtPIfRR-YWOG8",{"data":1132,"body":1133},{},{"type":1134,"children":1135},"root",[1136],{"type":1137,"tag":696,"props":1138,"children":1139},"element",{},[1140],{"type":1141,"value":1123},"text",1792785225869]