[{"data":1,"prerenderedAt":1142},["ShallowReactive",2],{"learn-chrome-en":3,"nav-en":115,"doc-\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fgetting-started":690,"mdc--fnmfu1-key":1131},{"id":4,"docsPage":5,"docsSidebar":16,"docsTabs":18,"extension":20,"footer":21,"header":93,"localeSwitch":110,"meta":112,"stem":113,"__hash__":114},"chrome_en\u002Fen\u002Fchrome.yml",{"onThisPage":6,"copyPage":7,"copied":8,"copyMenu":9,"copyMarkdownLink":10,"linkCopied":11,"viewMarkdown":12,"openChatGpt":13,"openClaude":14,"platforms":15},"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":17},"Docs sidebar",{"ariaLabel":19},"Docs sections","yml",{"ariaLabel":22,"columns":23,"legal":73,"quote":74,"askAi":77},"Footer",[24,39,51,61],{"label":25,"children":26},"Explore",[27,30,33,36],{"label":28,"to":29},"Docs","\u002Fdocs",{"label":31,"to":32},"Use cases","\u002Fuse-cases",{"label":34,"to":35},"Training","\u002Ftraining",{"label":37,"to":38},"Resources","\u002Fresources",{"label":40,"children":41},"Build",[42,45,48],{"label":43,"to":44},"AI assistants","\u002Fdocs\u002Fai-and-api\u002Fassistants",{"label":46,"to":47},"API","\u002Fdocs\u002Fai-and-api\u002Fapi\u002Fgetting-started",{"label":49,"to":50},"Open Platform","\u002Fdocs\u002Fadministration\u002Faccount\u002Fopen-platform",{"label":52,"children":53},"Updates",[54,57],{"label":55,"to":56},"Releases","\u002Freleases",{"label":58,"to":59,"target":60},"Blog","https:\u002F\u002Fwww.dataglasslabs.com\u002Fblog","_blank",{"label":62,"children":63},"DataGlass",[64,67,70],{"label":65,"to":66,"target":60},"Open DataGlass","https:\u002F\u002Fapp.dataglasslabs.com",{"label":68,"to":69,"target":60},"Website","https:\u002F\u002Fwww.dataglasslabs.com",{"label":71,"to":72},"Pricing","\u002Fdocs\u002Foverview\u002Fexplore\u002Fpricing","DataGlass Labs. All rights reserved.",{"text":75,"caption":76},"Measure what you keep, and then grow what you measure.","The DataGlass team",{"label":78,"prompt":79,"assistants":80},"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.",[81,85,89],{"label":82,"icon":83,"url":84},"ChatGPT","chatgpt","https:\u002F\u002Fchatgpt.com\u002F?prompt={prompt}",{"label":86,"icon":87,"url":88},"Claude","claude","https:\u002F\u002Fclaude.ai\u002Fnew?q={prompt}",{"label":90,"icon":91,"url":92},"Perplexity","perplexity","https:\u002F\u002Fwww.perplexity.ai\u002Fsearch?q={prompt}",{"sections":94,"navLabel":108,"openApp":65,"search":109},[95,98,100,102,104,106],{"key":96,"label":97},"home","Home",{"key":99,"label":28},"docs",{"key":101,"label":31},"use-cases",{"key":103,"label":34},"training",{"key":105,"label":55},"releases",{"key":107,"label":37},"resources","Sections","Start searching",{"label":111},"Region and language",{},"en\u002Fchrome","mobUs3s2Zj3jKhQlnWk_tray3mh7L0ptp0ZGYXlK4NA",[116],{"title":28,"path":29,"stem":99,"children":117,"page":120},[118,185,373,574,653],{"title":119,"draft":120,"path":121,"stem":122,"children":123},"Overview",false,"\u002Fdocs\u002Foverview","docs\u002F01.overview\u002Findex",[124,125,150,175],{"title":119,"path":121,"stem":122,"draft":120},{"title":126,"draft":120,"path":127,"stem":128,"children":129,"page":120},"Get started","\u002Fdocs\u002Foverview\u002Fget-started","docs\u002F01.overview\u002F01.get-started",[130,135,140,145],{"title":131,"path":132,"stem":133,"draft":120,"icon":134},"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":136,"path":137,"stem":138,"draft":120,"icon":139},"Quick start","\u002Fdocs\u002Foverview\u002Fget-started\u002Fquick-start","docs\u002F01.overview\u002F01.get-started\u002F02.quick-start","i-material-symbols-rocket-launch-rounded",{"title":141,"path":142,"stem":143,"draft":120,"icon":144},"Supported platforms","\u002Fdocs\u002Foverview\u002Fget-started\u002Fsupported-platforms","docs\u002F01.overview\u002F01.get-started\u002F03.supported-platforms","i-material-symbols-grid-view-rounded",{"title":146,"path":147,"stem":148,"draft":120,"icon":149},"Connecting shops","\u002Fdocs\u002Foverview\u002Fget-started\u002Fconnecting-shops","docs\u002F01.overview\u002F01.get-started\u002F04.connecting-shops","i-material-symbols-link-rounded",{"title":151,"draft":120,"path":152,"stem":153,"children":154,"page":120},"Foundations","\u002Fdocs\u002Foverview\u002Ffoundations","docs\u002F01.overview\u002F02.foundations",[155,160,165,170],{"title":156,"path":157,"stem":158,"draft":120,"icon":159},"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":161,"path":162,"stem":163,"draft":120,"icon":164},"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":166,"path":167,"stem":168,"draft":120,"icon":169},"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":171,"path":172,"stem":173,"draft":120,"icon":174},"True ROAS","\u002Fdocs\u002Foverview\u002Ffoundations\u002Ftrue-roas","docs\u002F01.overview\u002F02.foundations\u002F04.true-roas","i-material-symbols-ad-group-rounded",{"title":25,"draft":120,"path":176,"stem":177,"children":178,"page":120},"\u002Fdocs\u002Foverview\u002Fexplore","docs\u002F01.overview\u002F03.explore",[179,182],{"title":71,"path":72,"stem":180,"draft":120,"icon":181},"docs\u002F01.overview\u002F03.explore\u002F01.pricing","i-material-symbols-sell-rounded",{"title":55,"path":183,"stem":184,"draft":120,"to":56},"\u002Fdocs\u002Foverview\u002Fexplore\u002Freleases","docs\u002F01.overview\u002F03.explore\u002F02.releases",{"title":186,"draft":120,"path":187,"stem":188,"children":189},"Features","\u002Fdocs\u002Ffeatures","docs\u002F02.features\u002Findex",[190,191,221,271,312,334,354],{"title":119,"path":187,"stem":188,"draft":120},{"title":192,"draft":120,"path":193,"stem":194,"children":195,"page":120},"Shops","\u002Fdocs\u002Ffeatures\u002Fshops","docs\u002F02.features\u002F01.shops",[196,201,206,211,216],{"title":197,"path":198,"stem":199,"draft":120,"icon":200},"Shop overview","\u002Fdocs\u002Ffeatures\u002Fshops\u002Fshop-overview","docs\u002F02.features\u002F01.shops\u002F01.shop-overview","i-material-symbols-space-dashboard-rounded",{"title":202,"path":203,"stem":204,"draft":120,"icon":205},"Understanding the numbers","\u002Fdocs\u002Ffeatures\u002Fshops\u002Funderstanding-the-numbers","docs\u002F02.features\u002F01.shops\u002F02.understanding-the-numbers","i-material-symbols-help-rounded",{"title":207,"path":208,"stem":209,"draft":120,"icon":210},"Attribution & dedup","\u002Fdocs\u002Ffeatures\u002Fshops\u002Fattribution-and-dedup","docs\u002F02.features\u002F01.shops\u002F03.attribution-and-dedup","i-material-symbols-call-merge-rounded",{"title":212,"path":213,"stem":214,"draft":120,"icon":215},"Shop health","\u002Fdocs\u002Ffeatures\u002Fshops\u002Fshop-health","docs\u002F02.features\u002F01.shops\u002F04.shop-health","i-material-symbols-monitor-heart-rounded",{"title":217,"path":218,"stem":219,"draft":120,"icon":220},"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":222,"draft":120,"path":223,"stem":224,"children":225,"page":120},"Products","\u002Fdocs\u002Ffeatures\u002Fproducts","docs\u002F02.features\u002F02.products",[226,231,236,241,246,251,256,261,266],{"title":227,"path":228,"stem":229,"draft":120,"icon":230},"Product table","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fproduct-table","docs\u002F02.features\u002F02.products\u002F01.product-table","i-material-symbols-deployed-code-rounded",{"title":232,"path":233,"stem":234,"draft":120,"icon":235},"Unified products","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Funified-products","docs\u002F02.features\u002F02.products\u002F02.unified-products","i-material-symbols-dashboard-customize-rounded",{"title":237,"path":238,"stem":239,"draft":120,"icon":240},"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":242,"path":243,"stem":244,"draft":120,"icon":245},"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":247,"path":248,"stem":249,"draft":120,"icon":250},"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":252,"path":253,"stem":254,"draft":120,"icon":255},"Stock sync","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fstock-sync","docs\u002F02.features\u002F02.products\u002F06.stock-sync","i-material-symbols-sync-rounded",{"title":257,"path":258,"stem":259,"draft":120,"icon":260},"Commission","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fcommission","docs\u002F02.features\u002F02.products\u002F07.commission","i-material-symbols-price-change-rounded",{"title":262,"path":263,"stem":264,"draft":120,"icon":265},"Auto bump","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fauto-bump","docs\u002F02.features\u002F02.products\u002F08.auto-bump","i-material-symbols-trending-up-rounded",{"title":267,"path":268,"stem":269,"draft":120,"icon":270},"Margin spread","\u002Fdocs\u002Ffeatures\u002Fproducts\u002Fmargin-spread","docs\u002F02.features\u002F02.products\u002F09.margin-spread","i-material-symbols-straighten-rounded",{"title":272,"draft":120,"path":273,"stem":274,"children":275},"Financial breakdown","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown","docs\u002F02.features\u002F03.financial-breakdown\u002Findex",[276,277,282,287,292,297,302,307],{"title":119,"path":273,"stem":274,"draft":120},{"title":278,"path":279,"stem":280,"draft":120,"icon":281},"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":283,"path":284,"stem":285,"draft":120,"icon":286},"Set margin","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fset-margin","docs\u002F02.features\u002F03.financial-breakdown\u002F02.set-margin","i-material-symbols-tune-rounded",{"title":288,"path":289,"stem":290,"draft":120,"icon":291},"Margin optimizer","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fmargin-optimizer","docs\u002F02.features\u002F03.financial-breakdown\u002F03.margin-optimizer","i-material-symbols-instant-mix-rounded",{"title":293,"path":294,"stem":295,"draft":120,"icon":296},"Price elasticity","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fprice-elasticity","docs\u002F02.features\u002F03.financial-breakdown\u002F04.price-elasticity","i-material-symbols-show-chart-rounded",{"title":298,"path":299,"stem":300,"draft":120,"icon":301},"Product calculator","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fproduct-calculator","docs\u002F02.features\u002F03.financial-breakdown\u002F05.product-calculator","i-material-symbols-calculate-rounded",{"title":303,"path":304,"stem":305,"draft":120,"icon":306},"Product history","\u002Fdocs\u002Ffeatures\u002Ffinancial-breakdown\u002Fproduct-history","docs\u002F02.features\u002F03.financial-breakdown\u002F06.product-history","i-material-symbols-history-rounded",{"title":308,"path":309,"stem":310,"draft":120,"icon":311},"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":71,"draft":120,"path":313,"stem":314,"children":315,"page":120},"\u002Fdocs\u002Ffeatures\u002Fpricing","docs\u002F02.features\u002F04.pricing",[316,320,325,330],{"title":317,"path":318,"stem":319,"draft":120,"icon":245},"Price Edit","\u002Fdocs\u002Ffeatures\u002Fpricing\u002Fprice-edit","docs\u002F02.features\u002F04.pricing\u002F01.price-edit",{"title":321,"path":322,"stem":323,"draft":120,"icon":324},"Price increase whitelist","\u002Fdocs\u002Ffeatures\u002Fpricing\u002Fprice-increase-whitelist","docs\u002F02.features\u002F04.pricing\u002F02.price-increase-whitelist","i-lucide-badge-check",{"title":326,"path":327,"stem":328,"draft":120,"icon":329},"Requesting whitelist approval","\u002Fdocs\u002Ffeatures\u002Fpricing\u002Frequest-whitelist-approval","docs\u002F02.features\u002F04.pricing\u002F03.request-whitelist-approval","i-lucide-mail",{"title":331,"path":332,"stem":333,"draft":120,"icon":181},"Price tiers","\u002Fdocs\u002Ffeatures\u002Fpricing\u002Fprice-tiers","docs\u002F02.features\u002F04.pricing\u002F04.price-tiers",{"title":335,"draft":120,"path":336,"stem":337,"children":338},"Campaign simulator","\u002Fdocs\u002Ffeatures\u002Fcampaign-simulator","docs\u002F02.features\u002F05.campaign-simulator\u002Findex",[339,340,345,350],{"title":119,"path":336,"stem":337,"draft":120},{"title":341,"path":342,"stem":343,"draft":120,"icon":344},"Campaign phases","\u002Fdocs\u002Ffeatures\u002Fcampaign-simulator\u002Fphase-model","docs\u002F02.features\u002F05.campaign-simulator\u002F01.phase-model","i-material-symbols-timeline-rounded",{"title":346,"path":347,"stem":348,"draft":120,"icon":349},"Ads planning","\u002Fdocs\u002Ffeatures\u002Fcampaign-simulator\u002Fads-planning","docs\u002F02.features\u002F05.campaign-simulator\u002F02.ads-planning","i-material-symbols-ads-click-rounded",{"title":351,"path":352,"stem":353,"draft":120,"icon":169},"Counterfactual","\u002Fdocs\u002Ffeatures\u002Fcampaign-simulator\u002Fcounterfactual","docs\u002F02.features\u002F05.campaign-simulator\u002F03.counterfactual",{"title":355,"draft":120,"path":356,"stem":357,"children":358,"page":120},"Orders","\u002Fdocs\u002Ffeatures\u002Forders","docs\u002F02.features\u002F06.orders",[359,363,368],{"title":355,"path":360,"stem":361,"draft":120,"icon":362},"\u002Fdocs\u002Ffeatures\u002Forders\u002Forders","docs\u002F02.features\u002F06.orders\u002F01.orders","i-material-symbols-receipt-long-rounded",{"title":364,"path":365,"stem":366,"draft":120,"icon":367},"Reconciliation","\u002Fdocs\u002Ffeatures\u002Forders\u002Freconciliation","docs\u002F02.features\u002F06.orders\u002F02.reconciliation","i-material-symbols-balance",{"title":369,"path":370,"stem":371,"draft":120,"icon":372},"Shipping labels","\u002Fdocs\u002Ffeatures\u002Forders\u002Fshipping-labels","docs\u002F02.features\u002F06.orders\u002F03.shipping-labels","i-material-symbols-local-shipping-rounded",{"title":374,"draft":120,"path":375,"stem":376,"children":377},"Growth","\u002Fdocs\u002Fgrowth","docs\u002F03.growth\u002Findex",[378,379,402,466,490],{"title":119,"path":375,"stem":376,"draft":120},{"title":380,"draft":120,"path":381,"stem":382,"children":383,"page":120},"Actions","\u002Fdocs\u002Fgrowth\u002Factions","docs\u002F03.growth\u002F01.actions",[384,389,393,398],{"title":385,"path":386,"stem":387,"draft":120,"icon":388},"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":390,"path":391,"stem":392,"draft":120},"Action flow","\u002Fdocs\u002Fgrowth\u002Factions\u002Faction-flow","docs\u002F03.growth\u002F01.actions\u002F02.action-flow",{"title":394,"path":395,"stem":396,"draft":120,"icon":397},"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":399,"path":400,"stem":401,"draft":120,"icon":301},"How Results are calculated","\u002Fdocs\u002Fgrowth\u002Factions\u002Fresults","docs\u002F03.growth\u002F01.actions\u002F04.results",{"title":403,"draft":120,"path":404,"stem":405,"children":406,"icon":408},"Action types","\u002Fdocs\u002Fgrowth\u002Faction-types","docs\u002F03.growth\u002F02.action-types\u002Findex",[407,409,414,419,423,428,433,438,443,447,452,457,462],{"title":119,"path":404,"stem":405,"draft":120,"icon":408},"i-material-symbols-format-list-bulleted-rounded",{"title":410,"path":411,"stem":412,"draft":120,"icon":413},"Price buffer","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fprice-buffer","docs\u002F03.growth\u002F02.action-types\u002F01.price-buffer","i-material-symbols-money-range-rounded",{"title":415,"path":416,"stem":417,"draft":120,"icon":418},"Commission adjust","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fcommission-adjust","docs\u002F03.growth\u002F02.action-types\u002F02.commission-adjust","i-material-symbols-percent-discount-rounded",{"title":420,"path":421,"stem":422,"draft":120,"icon":210},"Variant merge","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fvariant-merge","docs\u002F03.growth\u002F02.action-types\u002F03.variant-merge",{"title":424,"path":425,"stem":426,"draft":120,"icon":427},"Target ROAS","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Ftarget-roas","docs\u002F03.growth\u002F02.action-types\u002F04.target-roas","i-material-symbols-target",{"title":429,"path":430,"stem":431,"draft":120,"icon":432},"Bundle Deal","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fbundle-deal","docs\u002F03.growth\u002F02.action-types\u002F05.bundle-deal","i-material-symbols-category-rounded",{"title":434,"path":435,"stem":436,"draft":120,"icon":437},"Product Boost","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fproduct-boost","docs\u002F03.growth\u002F02.action-types\u002F06.product-boost","i-material-symbols-electric-bolt-rounded",{"title":439,"path":440,"stem":441,"draft":120,"icon":442},"Campaign Enrollment","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fcampaign-enrollment","docs\u002F03.growth\u002F02.action-types\u002F07.campaign-enrollment","i-material-symbols-play-arrow-rounded",{"title":444,"path":445,"stem":446,"draft":120,"icon":349},"Ad Adjustment","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fad-adjustment","docs\u002F03.growth\u002F02.action-types\u002F08.ad-adjustment",{"title":448,"path":449,"stem":450,"draft":120,"icon":451},"SEO","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fseo","docs\u002F03.growth\u002F02.action-types\u002F09.seo","i-material-symbols-category-search-rounded",{"title":453,"path":454,"stem":455,"draft":120,"icon":456},"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":458,"path":459,"stem":460,"draft":120,"icon":461},"Stock Up","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Fstock-up","docs\u002F03.growth\u002F02.action-types\u002F11.stock-up","i-material-symbols-inventory-rounded",{"title":463,"path":464,"stem":465,"draft":120,"icon":427},"TikTok Target ROAS","\u002Fdocs\u002Fgrowth\u002Faction-types\u002Ftiktok-target-roas","docs\u002F03.growth\u002F02.action-types\u002F12.tiktok-target-roas",{"title":467,"draft":120,"path":468,"stem":469,"children":470,"page":120},"Ads","\u002Fdocs\u002Fgrowth\u002Fads","docs\u002F03.growth\u002F03.ads",[471,476,480,485],{"title":472,"path":473,"stem":474,"draft":120,"icon":475},"Reading the Sankey","\u002Fdocs\u002Fgrowth\u002Fads\u002Freading-the-sankey","docs\u002F03.growth\u002F03.ads\u002F01.reading-the-sankey","i-material-symbols-schema-rounded",{"title":477,"path":478,"stem":479,"draft":120,"icon":169},"Cannibalization","\u002Fdocs\u002Fgrowth\u002Fads\u002Fcannibalization","docs\u002F03.growth\u002F03.ads\u002F02.cannibalization",{"title":481,"path":482,"stem":483,"draft":120,"icon":484},"Meta (Facebook) Ads","\u002Fdocs\u002Fgrowth\u002Fads\u002Fmeta-ads","docs\u002F03.growth\u002F03.ads\u002F03.meta-ads","i-simple-icons-meta",{"title":486,"path":487,"stem":488,"draft":120,"icon":489},"CPAS profit","\u002Fdocs\u002Fgrowth\u002Fads\u002Fcpas-profit","docs\u002F03.growth\u002F03.ads\u002F04.cpas-profit","i-material-symbols-hub-rounded",{"title":491,"draft":120,"path":492,"stem":493,"children":494,"icon":174},"Optimization groups","\u002Fdocs\u002Fgrowth\u002Foptimization-groups","docs\u002F03.growth\u002F04.optimization-groups\u002Findex",[495,496,501,506,511,516,520,525,530,535,540,545,549,554,559,564,569],{"title":119,"path":492,"stem":493,"draft":120,"icon":174},{"title":497,"path":498,"stem":499,"draft":120,"icon":500},"Planning your groups","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fplanning-your-groups","docs\u002F03.growth\u002F04.optimization-groups\u002F00.planning-your-groups","i-lucide-boxes",{"title":502,"path":503,"stem":504,"draft":120,"icon":505},"Creating a group","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fcreating-a-group","docs\u002F03.growth\u002F04.optimization-groups\u002F01.creating-a-group","i-lucide-plus",{"title":507,"path":508,"stem":509,"draft":120,"icon":510},"Global settings","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fglobal-settings","docs\u002F03.growth\u002F04.optimization-groups\u002F02.global-settings","i-lucide-settings-2",{"title":512,"path":513,"stem":514,"draft":120,"icon":515},"Budget and limits","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fbudget-and-limits","docs\u002F03.growth\u002F04.optimization-groups\u002F03.budget-and-limits","i-lucide-wallet",{"title":374,"path":517,"stem":518,"draft":120,"icon":519},"\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fgrowth","docs\u002F03.growth\u002F04.optimization-groups\u002F04.growth","i-lucide-trending-up",{"title":521,"path":522,"stem":523,"draft":120,"icon":524},"Choosing an objective","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fchoosing-an-objective","docs\u002F03.growth\u002F04.optimization-groups\u002F05.choosing-an-objective","i-lucide-target",{"title":526,"path":527,"stem":528,"draft":120,"icon":529},"Constraints","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fconstraints","docs\u002F03.growth\u002F04.optimization-groups\u002F06.constraints","i-lucide-shield-check",{"title":531,"path":532,"stem":533,"draft":120,"icon":534},"Distribution","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fallocation-preference","docs\u002F03.growth\u002F04.optimization-groups\u002F07.allocation-preference","i-lucide-sliders-horizontal",{"title":536,"path":537,"stem":538,"draft":120,"icon":539},"Pacing and rebalancing","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fpacing-and-rebalancing","docs\u002F03.growth\u002F04.optimization-groups\u002F08.pacing-and-rebalancing","i-lucide-clock",{"title":541,"path":542,"stem":543,"draft":120,"icon":544},"The month plan","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fmonthly-plan","docs\u002F03.growth\u002F04.optimization-groups\u002F09.monthly-plan","i-lucide-calendar-days",{"title":546,"path":547,"stem":548,"draft":120,"icon":539},"The Timeline schedule","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fschedule","docs\u002F03.growth\u002F04.optimization-groups\u002F10.schedule",{"title":550,"path":551,"stem":552,"draft":120,"icon":553},"Automation rules","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fautomation","docs\u002F03.growth\u002F04.optimization-groups\u002F11.automation","i-lucide-workflow",{"title":555,"path":556,"stem":557,"draft":120,"icon":558},"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":560,"path":561,"stem":562,"draft":120,"icon":563},"How the run works","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fdaily-run","docs\u002F03.growth\u002F04.optimization-groups\u002F13.daily-run","i-lucide-refresh-cw",{"title":565,"path":566,"stem":567,"draft":120,"icon":568},"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":570,"path":571,"stem":572,"draft":120,"icon":573},"Glossary","\u002Fdocs\u002Fgrowth\u002Foptimization-groups\u002Fglossary","docs\u002F03.growth\u002F04.optimization-groups\u002F16.glossary","i-lucide-book-a",{"title":575,"draft":120,"path":576,"stem":577,"children":578},"AI and API","\u002Fdocs\u002Fai-and-api","docs\u002F04.ai-and-api\u002Findex",[579,580,620],{"title":119,"path":576,"stem":577,"draft":120},{"title":43,"draft":120,"path":44,"stem":581,"children":582,"icon":584},"docs\u002F04.ai-and-api\u002F01.assistants\u002Findex",[583,585,590,595,600,605,610,615],{"title":119,"path":44,"stem":581,"draft":120,"icon":584},"i-material-symbols-smart-toy-rounded",{"title":586,"path":587,"stem":588,"draft":120,"icon":589},"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":591,"path":592,"stem":593,"draft":120,"icon":594},"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":596,"path":597,"stem":598,"draft":120,"icon":599},"Native playbooks","\u002Fdocs\u002Fai-and-api\u002Fassistants\u002Fplaybooks","docs\u002F04.ai-and-api\u002F01.assistants\u002F03.playbooks","i-material-symbols-route-rounded",{"title":601,"path":602,"stem":603,"draft":120,"icon":604},"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":606,"path":607,"stem":608,"draft":120,"icon":609},"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":611,"path":612,"stem":613,"draft":120,"icon":614},"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":616,"path":617,"stem":618,"draft":120,"icon":619},"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":46,"draft":120,"path":621,"stem":622,"children":623,"page":120},"\u002Fdocs\u002Fai-and-api\u002Fapi","docs\u002F04.ai-and-api\u002F02.api",[624,628,633,638,643,648],{"title":625,"path":47,"stem":626,"draft":120,"icon":627},"Getting started","docs\u002F04.ai-and-api\u002F02.api\u002F01.getting-started","i-material-symbols-key-rounded",{"title":629,"path":630,"stem":631,"draft":120,"icon":632},"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":634,"path":635,"stem":636,"draft":120,"icon":637},"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":639,"path":640,"stem":641,"draft":120,"icon":642},"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":644,"path":645,"stem":646,"draft":120,"icon":647},"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":649,"path":650,"stem":651,"draft":120,"icon":652},"Endpoints: Actions & recommendations","\u002Fdocs\u002Fai-and-api\u002Fapi\u002Frecommendations","docs\u002F04.ai-and-api\u002F02.api\u002F06.recommendations","i-material-symbols-recommend-rounded",{"title":654,"draft":120,"path":655,"stem":656,"children":657},"Administration","\u002Fdocs\u002Fadministration","docs\u002F05.administration\u002Findex",[658,659,679],{"title":119,"path":655,"stem":656,"draft":120},{"title":660,"draft":120,"path":661,"stem":662,"children":663,"page":120},"Team and access","\u002Fdocs\u002Fadministration\u002Fteam-and-access","docs\u002F05.administration\u002F01.team-and-access",[664,669,674],{"title":665,"path":666,"stem":667,"draft":120,"icon":668},"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":670,"path":671,"stem":672,"draft":120,"icon":673},"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":675,"path":676,"stem":677,"draft":120,"icon":678},"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":680,"draft":120,"path":681,"stem":682,"children":683,"page":120},"Account","\u002Fdocs\u002Fadministration\u002Faccount","docs\u002F05.administration\u002F02.account",[684,686],{"title":49,"path":50,"stem":685,"draft":120,"icon":489},"docs\u002F05.administration\u002F02.account\u002F01.open-platform",{"title":687,"path":688,"stem":689,"draft":120,"icon":362},"VAT","\u002Fdocs\u002Fadministration\u002Faccount\u002Fvat","docs\u002F05.administration\u002F02.account\u002F02.vat",{"id":691,"title":625,"body":692,"description":1123,"draft":120,"draftReason":1124,"extension":1125,"layout":1124,"meta":1126,"navigation":1127,"path":47,"platforms":1124,"rawbody":1128,"seo":1129,"stem":626,"__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,82],"a",{"href":587}," or ",[700,704,86],{"href":592}," 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,82],{"href":587}," and ",[700,923,86],{"href":592}," connectors read the same data, but an assistant can additionally request per-domain write scopes that you approve at connect time — see ",[700,926,611],{"href":612},[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":635},"Products & orders"," — your catalog, unified products, orders, inventory, and connected shops",[724,950,951,953],{},[700,952,272],{"href":640}," — true-profit breakdowns, profit-adjusted ROAS, margin tools, and shop overviews",[724,955,956,959],{},[700,957,958],{"href":645},"Raw platform data"," — normalized per-platform product, order, and ad-campaign records",[724,961,962,965],{},[700,963,964],{"href":650},"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":635},[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,629],{"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,629],{"href":630},[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":627},"---\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":625,"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",1792785018031]