Helium 10
Access your Helium 10 data
- Category
- Commerce
- Primary Subcategory
- Marketplace Seller, Dropship & Wholesale Tools
Integration details
Description
Access your Helium 10 data directly in ChatGPT for Amazon sellers and FBA brands. Query keyword and ASIN data, analyze PPC campaign performance and profitability, and extract insights from your listings and rank tracking. Make Helium 10 a native part of your ChatGPT workflows without switching between dashboards or exporting files. Built for active e-commerce brands with real account data across Product Research, Ads, and Commerce.
- Integration type
- Plugin
- Verification status
- Not applicable
- Platform
- ChatGPT
- Primary Subcategory
- Marketplace Seller, Dropship & Wholesale Tools
- Secondary Subcategories
- None listed
- Brand
- Helium 10
- Access
- Account required
- First tracked
- 2026-09-15
- Tool count
- 117
- Geography
- US
The Primary Subcategory used for this profile’s headline score.
Other Subcategories where the Integration is listed.
Get alerts for Helium 10
Get updates when Helium 10’s Discoverability Score or category rank changes.
ChatGPT Plugin Discovery Score
ChatGPT Plugin discovery is coming soon
ChatGPT can surface a Plugin when it matches a user's request.Your Plugin Discovery Score measures how often yours appears.
No spam. Unsubscribe any time.
What discovery looks like

Competing in ChatGPT Marketplace Seller, Dropship & Wholesale Tools
View Category117 tools agents can invoke
Helium 10 ASIN BSR history. Returns Best Sellers Rank history for one ASIN (asin): main-category constant-rank segments (start / end / bsr) plus per-subcategory daily points (date / bsr) when available. Default last 30 days when both dates omitted. Pass start_date and end_date together (both YYYY-MM-DD within the last 3 years), or omit both for the default last 30 days; do not pass only one date. Use when the user explicitly asks for BSR history or rank trend. Not for price (use get_asin_price_history), reviews/rating (use get_asin_reviews_history), keyword ranking (use Keyword Tracker), batch multi-ASIN, or discovery.
get_asin_bsr_history
Helium 10 ASIN price history. Returns price segments (start / end / price) for one ASIN (asin); identical values may merge. Default last 30 days when both dates omitted. Pass start_date and end_date together (both YYYY-MM-DD within the last 3 years), or omit both for the default last 30 days; do not pass only one date. Use when the user explicitly asks for price history or trend. Not for BSR (use get_asin_bsr_history), reviews/rating (use get_asin_reviews_history), search volume (use get_keywords_search_volume_history), sales history, batch multi-ASIN, or product discovery.
get_asin_price_history
Helium 10 ASIN Review Insights (HCE Review Insights Phase 1) via Amazon Customer Feedback. Given one marketplace and exactly one Amazon ASIN (child, parent, or standalone), returns positive/negative review topics sorted by mentions and by star-rating impact, plus topic trends (~6 months) for that ASIN. Use for product research, listing optimization, and competitor review-theme comparison. For multi-variation comparison, call get_listing_details then invoke this tool once per selected ASIN. Not for: category-level returns or browse-node analysis (use get_category_review_analysis); more than one ASIN per call (split calls; do not rely on silent truncation). Marketplace must be uppercase (e.g. US). Read-only. A successful call consumes one MCP quota unit even when topic payloads are empty/null after omit-null.
get_asin_review_analysis
Helium 10 ASIN reviews history. Returns Review Count and Rating for one ASIN (asin) in one call, as daily points (date / review_count / rating). Default last 30 days when both dates omitted. Pass start_date and end_date together (both YYYY-MM-DD within the last 3 years), or omit both for the default last 30 days; do not pass only one date. Use when the user explicitly asks for reviews or rating history/trend. Not for price (use get_asin_price_history), BSR (use get_asin_bsr_history), search volume, batch multi-ASIN, or product discovery.
get_asin_reviews_history
Helium 10 Account P&L Breakdown (formerly Profits). Returns an account-level nested breakdown for selected breakdown_metrics only — { name, value, metrics[] } trees showing what drives each metric (which fee type, ad channel, or refund component is largest). Snapshot, not a time series. Use when a top-line number looks off and you need to see what's inside it, or to compare cost-component sizes at the store level. Not for: totals only (use get_account_profit_and_loss_summary); breakdown over time (use get_account_profit_and_loss_breakdown_series); per-product breakdown (use get_product_profit_and_loss_breakdown). A cost_of_goods or indirect_cost node of 0 may mean the cost was never configured rather than genuinely zero — verify with list_amazon_cogs / list_amazon_indirect_cost_settings before treating the cost picture as complete.Comparing two periods? Both must span the same number of days: read data.meta.period_days from each response and require them to match. A 30-day window against a 31-day one inflates every percentage delta by roughly 2pp. If they differ, align the windows, switch to daily averages, or state the difference and its effect on every percentage you report.Amounts are converted into the requested currency per marketplace before aggregation; omitting marketplace means the figures are the combined total across every authorised marketplace, so say so when reporting them. data.meta echoes both.
get_account_profit_and_loss_breakdown
Helium 10 Account P&L Breakdown Trends (formerly Profits). Returns an account-level breakdown time series for selected breakdown_metrics — nodes carry values maps, children (e.g. ad channels) carry trend values; bucketed by interval. Use when you need drill-down detail and over-time trends together — e.g. Sponsored Products vs Sponsored Brands spend week over week. Not for: a snapshot breakdown (use get_account_profit_and_loss_breakdown); Level 1 trends only (use get_account_profit_and_loss_summary_series); product breakdown trends (use get_product_profit_and_loss_breakdown_series). A cost_of_goods or indirect_cost node of 0 may mean the cost was never configured rather than genuinely zero — verify with list_amazon_cogs / list_amazon_indirect_cost_settings before treating the cost picture as complete.Comparing two periods? Both must span the same number of days: read data.meta.period_days from each response and require them to match. A 30-day window against a 31-day one inflates every percentage delta by roughly 2pp. If they differ, align the windows, switch to daily averages, or state the difference and its effect on every percentage you report.Amounts are converted into the requested currency per marketplace before aggregation; omitting marketplace means the figures are the combined total across every authorised marketplace, so say so when reporting them. data.meta echoes both.
get_account_profit_and_loss_breakdown_series
Helium 10 Account P&L Summary (formerly Profits). For a single date range, returns rolled-up account/store-level P&L — all Level 1 metrics (revenue, COGS, FBA & referral fees, ad spend, refunds, net margin, etc.) as a snapshot map; no product rows, no time buckets, no breakdown trees. Use for overall business performance (total profit, total fees, net-margin %) before drilling into products, trends, or fee line items. Prefer this first unless the question needs product granularity, a time series, or drill-down. Not for: per-product figures (use get_product_profit_and_loss_summary); trends (use get_account_profit_and_loss_summary_series); fee/ad/refund components (use get_account_profit_and_loss_breakdown). A cost_of_goods or indirect_cost of 0 may mean the cost was never configured rather than genuinely zero — data.caveats flags that when it happens. Verify with list_amazon_cogs / list_amazon_indirect_cost_settings before describing the figures as normal: net_profit and margin are upper bounds until you do.Comparing two periods? Both must span the same number of days: read data.meta.period_days from each response and require them to match. A 30-day window against a 31-day one inflates every percentage delta by roughly 2pp. If they differ, align the windows, switch to daily averages, or state the difference and its effect on every percentage you report.Amounts are converted into the requested currency per marketplace before aggregation; omitting marketplace means the figures are the combined total across every authorised marketplace, so say so when reporting them. data.meta echoes both.
get_account_profit_and_loss_summary
Helium 10 Account P&L Trends (formerly Profits). Returns account-level Level 1 P&L as a time series bucketed by granularity (day/week/month) — each metric as one series (metric_key, values); no breakdowns, no product rows. Use to visualize how the overall business trends, compare period-over-period, and pinpoint when a metric shifted. Not for: single-period totals (use get_account_profit_and_loss_summary); per-product trends (use get_product_profit_and_loss_summary_series); fee/ad sub-component trends (use get_account_profit_and_loss_breakdown_series). A cost_of_goods or indirect_cost series that is 0 in every bucket may mean the cost was never configured rather than genuinely zero — data.caveats flags that when it happens. Verify with list_amazon_cogs / list_amazon_indirect_cost_settings before describing the figures as normal: net_profit and margin are upper bounds until you do.Comparing two periods? Both must span the same number of days: read data.meta.period_days from each response and require them to match. A 30-day window against a 31-day one inflates every percentage delta by roughly 2pp. If they differ, align the windows, switch to daily averages, or state the difference and its effect on every percentage you report.Amounts are converted into the requested currency per marketplace before aggregation; omitting marketplace means the figures are the combined total across every authorised marketplace, so say so when reporting them. data.meta echoes both.
get_account_profit_and_loss_summary_series
Helium 10 Ad Campaign Lookup (Data Query, step 4 of 5). Given a platform, a level (typically profile / campaign / adgroup / target — see get_ads_query_list) and the entity dimensions you want returned, lists the resolved stable ids in your Ads account. Use to convert profile/campaign names into the ids execute_ads_query needs. Pass a name-substring filter (e.g. {field: "campaign_name", op: "like", value: "Brand%"}) to behave like a target lookup. dimensions must be a list of OBJECTS (e.g. [{"field":"campaign_id"},{"field":"campaign_name"}], illustrative — use real fields from get_ads_query_schema), not bare strings. profile_ids is OPTIONAL — the upstream accepts an empty list and interprets it as 'every profile the user has access to' (tenant isolation stays enforced via the inbound bearer token); pass an explicit list only when the user named a specific profile. Internally this targets the same POST /query endpoint as execute_ads_query with measures / having / orderBy hard-coded to []. Prerequisite: get_ads_query_schema (for valid dimension and filter fields). Next: execute_ads_query.
get_ads_query_materials
Helium 10 Ad Data Hierarchy (Data Query, step 2 of 5). Given a platform key, returns its full level hierarchy (root → leaf, e.g. profile → campaign → adgroup → target) plus cross-level attribute and tag tables. Use to understand the data structure and identify the correct level name for the schema step. Prerequisite: get_ads_query_platforms. Next: get_ads_query_schema(platform, level).
get_ads_query_list
Helium 10 Ad Query Schema (Data Query, step 3 of 5). Given a platform key and a level, returns the full queryable definition — every dimension, measure, filter, allowed operator, aggregation, granularity, and enum value. Fully self-describing: it contains everything needed to build a valid query, including the state-like enum used for the default exclusion filter in execute_ads_query. Use to learn what fields exist and how to filter them before running a query. Prerequisite: get_ads_query_list (for valid level names). Next: optionally get_ads_query_materials, otherwise execute_ads_query.
get_ads_query_schema
Helium 10 Keyword Tracker — START TRACKING keywords for a product. Adds a product to Keyword Tracker together with the keywords if it is not being tracked, or appends the keywords when it already is being tracked; you do not need to check which case applies first. Amazon only, one ASIN per call. Any valid ASIN is allowed, including competitors'. BEFORE CALLING: track_variations is required and has no default — if the user has not said whether they want the parent ASIN and all its variations tracked, or only the exact ASIN they gave, ASK THEM. Do not decide on their behalf.
add_untracked_product_keywords
Helium 10 Ads Rule Platforms (Ads Rule, step 1 of 4). Lists the advertising platforms and automation rule types available for this account, and for each rule type the supported actions and whether it is supported yet. The entry point for creating or editing an automation rule. Returns only names (no field catalog). ### Ads Rule pipeline ① get_ads_rule_platforms → ② get_ads_rule_schema(platform, rule_type) → ③ resolve profile_id / campaign ids via get_ads_query_materials → ④ manage_ads_rule (draft_open → draft_save → [confirm] → draft_commit). v1 supports amazon + rule_type=BID only; other rule types report supported=false. Next: get_ads_rule_schema(platform, rule_type). ### Editing constraint A rule that uses a Tactic CANNOT be edited through the MCP (draft_open mode=edit / draft_commit return UNSUPPORTED.RULE_HAS_TACTIC). Before planning an edit, check the rule's uneditable_reason from list_ads_rules / get_ads_rule; if set, direct the user to the Helium 10 Ads Rules & Automation page instead of building an edit.
get_ads_rule_platforms
Helium 10 Ads Rule Schema (Ads Rule, step 2 of 4). Given a platform and rule_type (from get_ads_rule_platforms), returns the complete field catalog for that rule type: metrics, operators, actions, guardrails, lookback, frequency, timezone, targeting, constraints and dependencies. Always full (no section filter). Every enum value you put in a draft (metric / operator / action / frequency / timezone) MUST come from this return -- do not invent wire values -- and numbers are actual values per unitHints (e.g. ACOS 12% → 0.12, $0.50 → 0.50). Prerequisite: get_ads_rule_platforms. Next: get_ads_query_materials to resolve profile_id / campaign ids, then manage_ads_rule.
get_ads_rule_schema
Amazon Average Budget Utilization (Helium 10 Ads). Returns, per campaign, how much of its budget was used on average across a date range, plus a total for the whole selection. AMAZON ONLY -- there is no platform argument, and no equivalent exists for Walmart or any other platform. Definition: total spend in the range divided by the sum of that range's per-day budgets -- a weighted ratio, NOT the average of the daily percentages, and the total is computed the same weighted way (so it will not equal the mean of the rows). Values are ratios, not percentages: 0.83 means 83% of budget used. A value above 1.0 means the campaign overspent its budget and is a real state, not an error. Use it for 'how fully did I spend my budget over the last N days', budget pacing reviews, and finding chronically under- or over-spending campaigns. Not for today's live consumption -- use get_amazon_ads_current_budget_utilization. Covers all four campaign types (sponsoredProducts, sponsoredBrands, sponsoredDisplay, sponsoredTV) and reads from daily report data, so the most recent hours of today are not reflected. A date range is required. Omit campaign_ids to cover every campaign of the profile; there is no paging, so check the returned truncated flag against total_count. Prerequisite: get_ads_query_materials(level=profile) for profile_id. ### Response shape Returns {rows, total_average_budget_utilization, total_count, truncated}. Each row is {campaign_id, campaign_name, campaign_type, state, daily_budget, average_budget_utilization}. Read the overall figure from total_average_budget_utilization -- do NOT average the rows yourself, it is weighted and stays correct even when rows are truncated. campaign_id is a STRING, not a number: these ids exceed the range integers hold exactly, so compare and join them as strings. truncated=true means the row cap cut the list short and total_count tells you the real number of matching campaigns. ### Caveats worth surfacing to the user Campaigns with no delivery in the range come back with 0 rather than being absent, so a long tail of zeros is normal and does not mean the query was wrong. Days a campaign had no delivery contribute no budget to the denominator, which pushes the ratio up for intermittently-paused campaigns.
get_amazon_ads_average_budget_utilization
Amazon Current Budget Utilization (Helium 10 Ads). Returns how much of TODAY's budget each of the given campaigns has consumed so far, read live from Amazon at call time. AMAZON ONLY -- there is no platform argument, and no equivalent exists for Walmart or any other platform. Values are ratios, not percentages, and can exceed 1.0: 0.95 means 95% of today's budget spent. Each row carries usage_updated_timestamp so you can tell a fresh reading from a stale one. Use it for 'which campaigns are about to run out of budget today', intraday pacing checks and budget top-up decisions. Not for historical pacing over a range -- use get_amazon_ads_average_budget_utilization. campaign_ids is REQUIRED (max 500 per call) and there is no date range, no paging and no total: Amazon's API answers per campaign id only. You do not pass campaign types; they are resolved server-side. Covers Sponsored Products, Brands and Display only -- Sponsored TV has no budget-usage API and comes back under unsupported. Prerequisite: get_ads_query_materials for profile_id and campaign ids. ### Response shape Returns {rows, errors, unsupported} and nothing else -- no totals. Each row is {campaign_id, campaign_type, budget, current_budget_utilization, usage_updated_timestamp}; each errors entry is {campaign_id, code, details}; each unsupported entry is {campaign_id, campaign_type, reason}. campaign_id is a STRING, not a number: these ids exceed the range integers hold exactly. ### Reading the response rows = live readings. errors = ids Amazon rejected or did not answer (code NO_RESPONSE). unsupported = ids that were never sent, either because they do not belong to this profile (reason 'campaign not found in this profile') or because their campaign type is outside SP / SB / SD (reason 'campaign type is not supported by Amazon's budget usage API') -- Sponsored TV in particular has no budget-usage API. Those two reasons mean different things: an unsupported type means switch to get_amazon_ads_average_budget_utilization, which does cover Sponsored TV; a not-found id means the id is wrong or belongs to another profile. EVERY id you pass lands in exactly one of the three arrays, so reconcile against your request. Report unsupported and errored ids to the user rather than treating them as zero. A reading of 0.0 is normal early in the advertiser's day -- check usage_updated_timestamp before calling it stale.
get_amazon_ads_current_budget_utilization
Helium 10 Listing Builder — extracts structured product attributes (product_name, brand_name, category, description, key_features, brand_voice, target_audience) from 1-5 product images. Live multimodal call, non-idempotent: re-running the same images may vary the attributes. Two input channels, mixable up to 5 combined — `image_urls` for catalog or public URLs, `image_refs` for LOCAL files, which come from request_image_upload_url rather than base64-ing a file into a data URL. Use to turn product photos into a structured product profile: copywriting attributes, brand voice, and target audience. Not for: pure OCR / screenshot text extraction (use a generic vision tool — this one is purpose-built for ecommerce attribute extraction).
analyze_product_images
Helium 10 Available Ad Platforms (Data Query, step 1 of 5). Returns the advertising platforms available to query in your account (e.g. amazon, walmart). No inputs required — platforms are derived from your account credentials (the inbound bearer token). The entry point: use it to get valid platform keys before steps 2–5. Not for: actual performance numbers (use execute_ads_query after the intermediate steps). Next: get_ads_query_list(platform). ### Data Query pipeline ① get_ads_query_platforms → ② get_ads_query_list → ③ get_ads_query_schema → ④ get_ads_query_materials → ⑤ user selects specific profile(s) → ⑥ execute_ads_query ### Required profile selection Before calling execute_ads_query, the user must choose specific profiles from the profile/material results. 1. Call get_ads_query_materials for the relevant scope (profile, advertiser, vendor_account, or seller_account). 2. Build a concise selection list from the returned materials. Each option should include the display name plus the id that will be sent to execute_ads_query. 3. Use Cursor's AskQuestion tool with multi-select enabled when available so the user gets a real choice list. Do not proceed from a plain text assumption. 4. Continue only after the user selects at least one option. Send only the selected ids in profile_ids or the matching scope id field. 5. Never call execute_ads_query with all profiles by default, a guessed default profile, or profiles inferred only from prior context. If the returned material list is too large, show the most relevant profiles first and include an 'Other profile id' option. If there is only one returned profile, still ask the user to confirm that profile before executing.
get_ads_query_platforms
Helium 10 Frequently Bought Together history. Returns raw daily observation records of the given product's "Frequently Bought Together" slot: each record is (event_date, product_id, bought_with), meaning the bought-with product was observed in this product's FBT slot on that date. IDs are marketplace-specific product IDs (ASIN on Amazon); the bought_with value can be passed directly to other tools' asin parameters. Daily snapshot data, not order counts. Default last 30 days when both dates omitted; pass start_date and end_date together (both within the last 3 years), do not pass only one date. Use when the user asks for "bought together", "FBT", bundle, or cross-sell partners of a product. Returns up to `limit` rows per call (default 100, max 10000); one page inlines at most ~500 rows / ~1MB, and requests far above that (>1000 rows or >~2MB) are delivered as a download link instead of inline rows. If data.pagination.has_more is true the result is incomplete: call again with `cursor` = data.pagination.next_cursor, but prefer narrowing filters over paginating through everything. Cursors expire 30 minutes after being issued and are bound to the query that issued them. Set response_format='download' when the user explicitly wants the data as a file. Not for: similar/competing listings (use search_competitors_by_asin); product targeting ads data (use search_product_targets_by_asin); product details like title/price (use get_listing_details per ASIN).
get_bought_together_history
Helium 10 helper — discovers and disambiguates a Brand-Registered Amazon seller × marketplace pair before an SQA call. Lists the caller's linked Brand-Registered sellers (non-Brand-Registered links are filtered out here, so downstream never sees them); each row is one seller_id with store_name and a marketplaces[] list (one card may span a region, e.g. NA = US/CA/MX). Drive it as a two-step picker: pick a row to lock seller_id, then pick one value from that row's marketplaces[] to lock marketplace, and pass both to get_search_query_performance. Use when the user references 'my store / my account / this listing' without naming a pair, or when one seller spans multiple marketplaces. Not for: a pair already provided or locked this session (skip it); adding/editing seller links (Helium 10 account settings); seller-level sales/fee/inventory analytics.
get_brand_seller_profiles
Helium 10 Browse Node Finder for Review Insights. Given a marketplace and a fuzzy Amazon category phrase (query), returns up to 5 candidate browse_node_id values, each paired with the official Amazon category name (displayName) and its root-to-leaf category path for disambiguating same-name categories. Use when the user names a category in natural language and does not yet have a confirmed browse node id—before calling get_category_review_analysis. Does not return Customer Feedback review or return analysis. Ask the user to confirm one browse_node_id, then call get_category_review_analysis. Not for: already-confirmed browse node ids (call get_category_review_analysis directly); ASIN-level review insights (use get_asin_review_analysis). Marketplace must be a two-letter uppercase code (e.g. US). Successful calls do not consume MCP quota.
search_browse_nodes
Helium 10 Campaign Management Action Schema (Campaign Mgmt, step 2 of 3). Given a platform key and an action type, returns the JSON Schema needed to execute that specific action on a given platform.Use to learn what the request_body of an action must contain before calling execute_ads_campaign_mgmt_actions. Prerequisite: get_ads_campaign_mgmt_platforms (for valid platform + actionType pairs). Next: resolve profileId via get_ads_query_materials, then execute_ads_campaign_mgmt_actions.
get_ads_campaign_mgmt_schema
Helium 10 Campaign Management Platforms (Campaign Mgmt, step 1 of 3). Lists the advertising platforms available for ad management (e.g. amazon, walmart) and, for each, the supported action types (campaign_create, keyword_update, ...). The entry point: use it to discover valid platform keys and action types before steps 2–3. Next: get_ads_campaign_mgmt_schema(platform, actionType). ### Campaign Management pipeline ① get_ads_campaign_mgmt_platforms → ② get_ads_campaign_mgmt_schema → ③ resolve profileId via get_ads_query_materials → ④ execute_ads_campaign_mgmt_actions. Note: there is no dedicated materials tool in this pipeline — resolve the profileId (or advertiser / vendor_account / seller_account id, per the platform) with the Data Query tool get_ads_query_materials before calling execute_ads_campaign_mgmt_actions.
get_ads_campaign_mgmt_platforms
Helium 10 Category Review Insights (HCE Review Insights Phase 2, including Returns) via Amazon Customer Feedback. Given one marketplace and exactly one confirmed browse_node_id, returns category review topics (by mentions and by star-rating impact), review trends, and return topics/trends (~6 months). Use for category feedback research, return-risk checks, and category trend monitoring. Requires a confirmed browse node id—not a fuzzy category name. If the user only has a phrase, call search_browse_nodes and confirm one id first—never pass unresolved candidate sets. Not for: ASIN-level returns; ASIN-level review topics (use get_asin_review_analysis); more than one browse node per call. Marketplace must be uppercase (e.g. US). Read-only. A successful call consumes one MCP quota unit even when payloads are empty after omit-null.
get_category_review_analysis
Helium 10 Change Log Platforms (Change Log, step 1). Lists the advertising platforms available for change-log queries (e.g. amazon, walmart) and, for each, the supported change types (budget_changed, bid_changed, keyword_changed, ...). The entry point: use it to discover valid platform keys and change types before querying change-log data. Call with no arguments to list every platform, or pass ``platform`` to restrict the result to one.
get_ads_changelog_platforms
Helium 10 Change Log Query (Change Log, terminal step). Runs the paged change-log list query for a profile and change type. Dates are DD-MM-YYYY (e.g. 30-07-2026). Filters must respect get_ads_changelog_schema: pass change_by only when change_source is auto/semi_auto; omit change_source when 'all'; target_name only when the schema marks it available. Resolve campaign_id via get_ads_query_materials(level=campaign). change_source_id takes rule ids / schedule uuids the caller already holds (AI change_source_id values come from the schema's static enum). Returns {items, total, page, perPage, hasMore}; paginate with page += 1 while hasMore is true. Prerequisites: get_ads_changelog_schema (valid filters), get_ads_query_materials (profile_id / campaign_id).
execute_ads_changelog_query
Helium 10 Change Log Schema (Change Log, step 2). Given a platform key and a change type, returns the full self-describing schema for querying that change type: available filters, the change_source / change_by / change_source_id cascade, result columns, and the sort / paging contracts. Use it to learn which filters and option values are valid before querying change-log data. If supported=false, read issues and stop — do not proceed. Prerequisite: get_ads_changelog_platforms (for valid platform + change_type).
get_ads_changelog_schema
Helium 10 Keyword Research (Cerebro). Multi-ASIN keyword comparison for one main ASIN vs 1–10 competitors: returns the compare scope (union of organic phrases from the main ASIN and each competitor — not intersection only) with each phrase's CPS, search volume, main organic rank, competitor coverage, and competitive average rank; the scope includes main-only keywords (cps = 0), gap/opportunity keywords, and shared competitive keywords. When to use: call when the user's question — across multiple ASINs — involves keyword competition, shared keywords, competitor organic ranking, competitive pressure, CPS, or gap/opportunity keywords, even if they never say "CPS". Complement with get_keywords_by_asin as needed for richer per-ASIN metrics. Not for: single-ASIN questions with no compare intent. Edge case: the main ASIN may return no Cerebro rows — still call; results are then driven by the competitor side (rows where the main ASIN does not rank organically omit main_organic_rank). `limit` accepts 1-10000 rows per call (default 150); up to 1000 rows per page are returned inline and a larger ask is delivered as a downloadable file instead (data.export.download_url) — set response_format='download' when the user explicitly wants a file. If data.pagination.has_more is true the result is incomplete: call again with `cursor` = data.pagination.next_cursor, but prefer narrowing the query over paginating through everything — this tool can page to at most 100,000 rows for one query, past which the result is truncated (truncation_reason='traversal_bound') and only a narrower query reaches the rest. Cursors expire 30 minutes after being issued and are bound to the query that issued them.
compare_asin_keywords
Helium 10 Keyword Research for Walmart (Walmart Cerebro). Multi-item keyword comparison for one main Walmart item vs 1-10 competitors: returns the compare scope (union of the phrases the main item and each competitor rank on, not intersection only) with each phrase's CPS, Walmart search trend score, the main item's organic rank, competitor coverage, and competitive average rank. The scope includes main-only keywords (cps = 0), gap keywords the competitors rank on but the main item does not, and shared competitive keywords. Use for: keyword competition, shared keywords, competitor organic ranking, competitive pressure, CPS, or gap/opportunity keywords across several Walmart items - even if the user never says "CPS". If which item is the main one is unclear, ask once before calling. Single-item questions with no compare intent - use get_keywords_by_item_id. Not for: Amazon products - use compare_asin_keywords instead. Edge case: the main item may return no rows of its own - still call; results are then driven by the competitor side, and rows where the main item does not rank organically omit main_organic_rank. `limit` accepts 1-10000 rows per call (default 150); up to 1000 rows per page are returned inline and a larger ask is delivered as a downloadable file instead (data.export.download_url) — set response_format='download' when the user explicitly wants a file. If data.pagination.has_more is true the result is incomplete: call again with `cursor` = data.pagination.next_cursor, but prefer narrowing the query over paginating through everything — this tool can page to at most 100,000 rows for one query, past which the result is truncated (truncation_reason='traversal_bound') and only a narrower query reaches the rest. Cursors expire 30 minutes after being issued and are bound to the query that issued them.
compare_item_keywords
Helium 10 Competitor Benchmark. For an ASIN group (main + up to 10 competitors), returns competitive benchmark data across 6 metrics — sales, revenue, price, BSR, review count, rating — for every ASIN in the session alongside two group averages: searched_products_avg (your session competitors) and top_competitors_avg (top 5 market performers, auto-resolved by LA). All ASINs returned in one call; the agent pairs each ASIN's values with the group averages to answer comparison questions. Omit competitor_asins to rely on top_competitors_avg only. Use for competitive health checks, pre-launch positioning, and finding the biggest performance gaps. Not for: full attribute comparison (use compare_listings); keyword-level analysis (use get_top_keywords).
get_competitor_overview
Helium 10 Competitor Keyword Rank Tracker. For a main ASIN with competitor ASINs configured in Keyword Tracker, returns the tracked keywords with your rank, each competitor's rank, relative_rank, rank_avg, and Competitor Performance Score (CPS) side-by-side. Use to find rank gaps on shared keywords, prioritize which keywords deserve PPC or listing investment, and monitor whether competitor moves are eroding your visibility. Not for: a single-ASIN view (use list_tracked_keywords); discovering new keywords (use get_keywords_new_suggestion); competitors not yet in Keyword Tracker (add them there first). Errors: invalid_input / invalid_asin / no_result / no_data / rate_limited / upstream_timeout. Returns up to `limit` rows per call (default 100, max 500); one page inlines at most ~500 rows / ~1MB, and oversized pages are truncated and continue via cursor. If data.pagination.has_more is true the result is incomplete: call again with `cursor` = data.pagination.next_cursor, but prefer narrowing filters over paginating through everything. Cursors expire 30 minutes after being issued and are bound to the query that issued them.
list_tracked_competitor_keywords
Create ONE Amazon Indirect Cost setting (a configuration/contract rule for a seller-maintained expense that is NOT an Amazon platform fee and NOT COGS — e.g. payroll, brand registration fee, product photography, offline promo). The setting is later expanded into day-level charges that feed P&L indirect_cost. Provide cost_name, amount (> 0), currency (ISO 4217, REQUIRED), date_tz (IANA, REQUIRED), frequency, starts_at, and optional ends_at / amortize_daily / scope fields. DO NOT send cost_level or cost_type — the level is INFERRED from scope fields: no seller_id -> h10_account; seller_id only -> seller; seller_id + marketplace -> marketplace; seller_id + marketplace + non-empty skus -> product. Skipping a level (marketplace without seller_id, or skus without seller_id + marketplace) -> INVALID_INPUT. Use SHORT country codes for marketplace (US, CA, UK, DE, …), never Amazon marketplace IDs or domains. For marketplace/product level, currency and date_tz must equal that marketplace's currency and report timezone. date_tz only stamps the calendar day of created_at — it is not stored on the setting and does not make the cost timezone-scoped (charges land on plain calendar dates); per-cost timezone billing is not supported. cost_name must be UNIQUE within the H10 account (duplicate -> error; not idempotent). amortize_daily=true is ignored for one_time/daily frequencies. Amazon only — Walmart/TikTok are rejected; account_id / platform are never accepted. On SUCCESS the tool returns an EMPTY object ({}) — no cost_id and no setting body: to get the new cost_id (e.g. before edit/delete) call list_amazon_indirect_cost_settings and filter by cost_name. NOT for editing (edit_amazon_indirect_cost), deleting (delete_amazon_indirect_costs), browsing settings/charges, or COGS unit costs (use the COGS tools).
create_amazon_indirect_cost
Delete one or more configured Amazon COGS records by cogs_id (batch, max 100). Obtain ids from list_amazon_cogs first. Before calling this tool, double-confirm with the user: restate what will be deleted (number of cogs_ids and, when available from the list result, seller / marketplace / SKU / period) and wait for EXPLICIT user approval. Do not call on a vague 'clean up COGS' / 'remove costs' request without that confirmation, and do not treat a host Skill's confirm-before-delete as a substitute for restating the delete target here. Only rows owned by token-authorised sellers are deleted; foreign / unknown / already-deleted ids are silently ignored (deleted_count may be < ids sent — treat as success). Deleting a middle by_period segment leaves a gap on that SKU's timeline (expected). Deleting all rows for a SKU removes it from subsequent list results (SKU becomes unconfigured). NOT for create/update (use edit_amazon_cogs, which does not use cogs_id) or browsing (use list_amazon_cogs).
delete_amazon_cogs
Delete one or more Amazon Indirect Cost settings by cost_id (batch, max 100). Obtain ids from list_amazon_indirect_cost_settings first. Before calling this tool, double-confirm with the user: restate what will be deleted (number of cost_ids and, when available from the list result, cost_name / seller / marketplace / level) and wait for EXPLICIT user approval. Do not call on a vague 'remove indirect costs' / 'clean up' request without that confirmation, and do not treat a host Skill's confirm-before-delete as a substitute for restating the delete target here. Only settings owned by token-authorised sellers are deleted; foreign / unknown / already-deleted ids are silently ignored (deleted_count may be < ids sent — treat as success). Duplicates are de-duplicated server-side. Deleting a setting removes (or stops generating) its expanded charges per backend rules. Idempotent: re-deleting the same ids returns deleted_count 0. NOT for create/edit (use create_amazon_indirect_cost / edit_amazon_indirect_cost) or browsing (settings / charges lists); COGS delete → delete_amazon_cogs.
delete_amazon_indirect_costs
Helium 10 Keyword Tracker — STOP TRACKING specific keywords on a product. Permanently removes the given keywords and their rank history from the respective tracked product. The product itself stays tracked, even when every one of its keywords is removed. Amazon only, one ASIN per call. THIS CANNOT BE UNDONE and the historical rank data for those keywords is lost forever. BEFORE CALLING: list the exact keywords you are about to remove and get the user's explicit confirmation. When the user's request is vague ("drop the useless ones"), present the candidates and let them confirm — never decide on their behalf. Keywords are matched EXACTLY against the tracking list, including case, spacing and punctuation; there is no fuzzy matching or spelling correction. Call list_tracked_keywords first and pass the keyword strings exactly as returned, rather than the wording the user typed — otherwise they will come back in failed_keywords and nothing will be removed. Keywords that are not found are reported in failed_keywords and do NOT make the call fail. To stop tracking the product entirely, use delete_tracked_product instead.
delete_tracked_keywords
Helium 10 Keyword Tracker — STOP TRACKING a product. Permanently removes the product from Keyword Tracker together with ALL of its tracked keywords, its competitors, and their entire rank history. Amazon only, one ASIN per call. THIS CANNOT BE UNDONE and the historical rank data is lost forever — re-tracking the product later starts its history from zero. BEFORE CALLING: state the exact ASIN you are about to untrack, state that its keywords, competitors and rank history will be deleted with it, and get the user's explicit confirmation. Never infer the ASIN from a vague request. The ASIN must be the one shown in the user's tracking list. If the product was tracked as a parent with all its variations, the tracking list holds the PARENT ASIN — passing a child ASIN returns "not tracked" and deletes nothing. Use list_tracked_keywords first when unsure. To remove only some keywords and keep the product, use delete_tracked_keywords instead.
delete_tracked_product
Helium 10 Product Research (formerly Black Box — Products, inactive view). Discovers Amazon listings that are now inactive/discontinued/dropped but were active and tracked within the last 360 days, by filters (category, last-active-date, historical sales/revenue, reviews, price, brand, fulfillment). Returns last known price, 360-day historical sales & revenue, review count, and rating. Use for market-gap mining, vacated-niche discovery, dropped-competitor post-mortems, and replication-candidate research. Returns up to `limit` rows per call (default 25, max 500); one page inlines at most ~500 rows / ~1MB, and oversized pages are truncated and continue via cursor. If data.pagination.has_more is true the result is incomplete: call again with `cursor` = data.pagination.next_cursor, but prefer narrowing filters over paginating through everything. Cursors expire 30 minutes after being issued and are bound to the query that issued them. Not for: active listings (use search_products); keyword research (use search_amazon_keywords). If the user asks for historical Price for returned inactive products, call get_asin_price_history once per selected ASIN.
search_inactive_products
Warning: This tool can overwrite or remove existing COGS history. Overlay updates may trim or split overlapping records, while persistent updates may clear and replace prior period records. Create or update Amazon COGS via interval overlay upsert (batch, max 100 items). Each item identifies a SKU by seller_id + marketplace (short country code) + sku and sets cogs_type, cost components, and (for by_period) an effective date interval. Describe the DESIRED new interval and costs, not 'edit row N': this is a cover-and-replace overlay, NOT row-ID targeting — there is no cogs_id on input (any cogs_id/asin/currency/total_cogs passed is ignored; currency follows marketplace; shipping_cost/tariffs omit/null → 0). New intervals overlay existing ones: overlapping history is trimmed/split, non-overlapping history preserved; writing persistent clears prior by_period rows for that SKU. Transaction is all-or-nothing. Use to set/update per-SKU unit costs before trusting net profit. NOT for reading (use list_amazon_cogs) or deleting (use delete_amazon_cogs, which deletes by cogs_id). After success call list_amazon_cogs to see the resulting timeline (overlay may split/rewrite rows into new ids). Do not mix persistent and by_period for the same SKU in one batch; by_period items for the same SKU must not overlap each other.
edit_amazon_cogs
Update an existing Amazon Indirect Cost setting identified by cost_id (obtain it from list_amazon_indirect_cost_settings). You may change ONLY cost_name, amount (> 0), starts_at, and ends_at. You CANNOT change frequency, amortize_daily, currency, date_tz, seller_id, marketplace, skus, or the level — those are fixed; to alter the SKUs / level / frequency, delete the setting (delete_amazon_indirect_costs) and create a new one (create_amazon_indirect_cost). Only your own account's settings can be edited; an unknown or foreign cost_id is an error (not silently ignored). Renaming to a cost_name that already exists in the H10 account is an error. Editing dates/amount makes the backend regenerate the setting's expanded charges — re-list with list_amazon_indirect_costs to audit. Idempotent: re-submitting the same values succeeds with no further change. On SUCCESS the tool returns an EMPTY object ({}) — no setting body. account_id / platform are never accepted; Amazon only. NOT for creating, deleting, or browsing.
edit_amazon_indirect_cost
Helium 10 Alerts — turns Alerts monitoring ON or OFF for one seller listing; action picks which. Keyed by seller_id + asin + marketplace + seller_sku. Monitoring is the prerequisite for search_alert_events / search_buybox_history to return data on an ASIN. One seller can sell the same ASIN under several SKUs, each monitored separately: read seller_sku from get_monitoring_status(asin).asin_rows[] — never guess it. action='disable' loses data: changes that happen while a listing is off are never recorded and cannot be backfilled by turning it back on, so confirm with the user before disabling. Already-collected alert history is kept. Slots count distinct ASINs, not SKUs; slot_changed says whether this call moved slot usage, and get_monitoring_status has the current totals. Returns outcome='enabled'/'disabled' when the switch was flipped, or 'already_enabled'/'already_disabled' when it was already in that state (no-op). On action='enable' only, the call can be rejected for plan quota, an ASIN the upstream cannot resolve, a missing SP notification subscription, or a lapsed SP-API authorization. Also on enable only: baseline data loads asynchronously and an ASIN the upstream rejects is turned back off, so don't call it permanent. Write tool: never retry automatically.
edit_product_monitoring
Helium 10 Execute Campaign Management Actions (Campaign Mgmt, step 3 of 3, terminal, WRITE). Submits one or more ad-management actions (create / update / delete campaigns, ad groups, keywords, ...) to Helium 10 for a single platform + profileId. ### Confirmation is REQUIRED before calling This tool mutates live advertising state. BEFORE invoking it, you MUST present the exact platform, profileId, and the full list of actions to the user and get explicit confirmation via an AskUserQuestion-style prompt. Do not call it on inferred intent, and never batch-confirm — the user must see each action. Deletes are irreversible. ### profileId (required) profileId is mandatory. Resolve it with the Data Query tool get_ads_query_materials (materialType/level=profile). There is no materials tool in this pipeline. ### Hierarchical creation (Campaign → Ad Group → Product / Keyword) Campaigns contain Ad Groups; Ad Groups contain Products and Keywords. When a creation response returns an id-name mapping, use those ids directly as parent references for the next-level creation — do not re-resolve them. ### Limits maxActionsPerRequest (from get_ads_campaign_mgmt_platforms) caps the number of actions per call; split larger batches across calls. Prerequisites: get_ads_campaign_mgmt_platforms (valid platform + actionType), get_ads_campaign_mgmt_schema (request_body shape per action), get_ads_query_materials (profileId).
execute_ads_campaign_mgmt_actions
Helium 10 Listing Builder — builds a Keyword Bank: fetches keywords from one or more Helium 10 sources for the main ASIN and/or its competitors and returns a merged, deduplicated, ranked list (up to 300 rows), each row carrying a priority_score. `asin` and `competitor_asins` are each optional but at least one is required; both together give the best coverage. Live multi-source fetch. Use to build the keyword pool for a listing draft — multiple Helium 10 sources merged into one deduplicated list, each phrase scored for allocation priority. Not for: single-source keyword lookups (get_keywords_by_asin / get_keywords_by_keyword / search_amazon_keywords) — this tool is the multi-source aggregator, and only its merged rows carry the tiering fields Listing Builder needs, so single-source output cannot be substituted.
find_keywords_with_multi_source
Helium 10 Listing Builder — AI-generates a complete Amazon listing from a keyword-to-slot allocation: `title` and `item_highlight` (Amazon's Item Highlight, generated together with the title as a matched pair), 5-10 bullet points, and a description. Live LLM call, non-idempotent; output language is derived server-side from `marketplace` (e.g. JP → Japanese, DE → German). Amazon now splits the legacy single <=200-character title into TWO fields: `title` (concise, <=75 characters) and `item_highlight` (<=125 characters). A short ~75-character title is CORRECT and compliant - do NOT lengthen it, keyword-stuff it, or treat it as incomplete; extra selling points and keywords belong in item_highlight. The two fields together replace the old long title. Use to draft complete listing copy — title, item highlight, bullets, and description — from an approved keyword-to-slot allocation. Not for: refining one section of an already-generated listing (use rewrite_listing_section).
generate_listing
Helium 10 Get Ads Rule (Ads Rule, read). Returns the full detail of a single live automation rule (source=live, id=rule_id) or a single draft (source=draft, id=draft_id) as the generic rule document (each criteria carries its own conditions + action + lookback). Use it to review a rule before editing (manage_ads_rule draft_open mode=edit) or deleting (rule_delete). A live rule that carries uneditable_reason (e.g. UNSUPPORTED.RULE_HAS_TACTIC, meaning it uses a Tactic) CANNOT be edited through the MCP: do NOT open an edit draft for it -- direct the user to the Helium 10 Ads Rules & Automation page instead (delete is still allowed). source=live is tenant-scoped: pass profile_id, or omit it and the server auto-resolves the single accessible profile (returns a candidate list when several exist). Prerequisite: list_ads_rules to find the id.
get_ads_rule
Helium 10 Alerts — current Buy Box standing across a brand's monitored ASINs. Omit marketplace for an all-marketplaces overview (winning/losing counts and win rate per marketplace); pass marketplace for single-market detail including the specific losing ASINs, their current Buy Box winner, and ASINs lost in the last 7 days. ASINs with no Buy Box winner data at all (neutral — not yet synced or no competing offers) are excluded from every losing_count, but still count toward win_rate's total-monitored denominator. For one ASIN's Buy Box history over time use search_buybox_history.
get_buybox_summary
Helium 10 Alerts — account-level rollup of what changed in the last 24h or 7d for a seller in one marketplace. Aggregates alert events (plus Seller Feedback notifications) by urgency (P0–P3), by event type, and by ASIN, and returns the P0 critical events that need immediate action. Use to answer 'what changed today / this week?' and 'what's most urgent?'. For raw per-event detail use search_alert_events.
get_change_rollup
Return FBA inventory health metrics per product row: days of supply (a decimal number of days, e.g. 12.75 — report it as-is, do not present it as a whole number) and inventory age bucket unit counts (<31 days, 31-180 days, >180 days). Each row includes standard product information (without fulfillment_type — implicit FBA). Not on-hand/inbound quantity counts; not FBM; not a time series. The unit counts here are health signals only — use them to judge aging/slow-moving risk, never as an authoritative quantity source. Do NOT compare or reconcile them with get_inventory_values; the two use different methodologies and are not expected to match. Use when the user asks about FBA stock health, days of supply, slow-moving or aged inventory in Amazon fulfillment centers, or restock risk from an FBA aging perspective. Not for: quantity snapshots (available, inbound, unfulfillable) or FBM (use get_inventory_values); sales velocity over time (use get_sales_velocity); profit & loss or fees (use Phase 1 P&L tools). Combine seller_ids, marketplace, asins, skus, and pagination to limit payload size. Do not pass fulfillment_type — this tool does not accept it. Pass days_of_supply_min / days_of_supply_max to filter by supply days server-side (inclusive bounds); rows with null days_of_supply are omitted when a range filter is active — do not assume they were evaluated as zero. Pass inv_age_stage (less_31_days | 31_to_180_days | over_180_days) to find SKUs that HAVE units in that age bucket: this is a presence filter, so returned rows still show all three inv_age_* counts and a SKU with over-180-day stock may also have younger inventory. Combine inv_age_stage with days_of_supply_max for restock / long-term-storage triage.
get_fba_inventory_health_status
Return current Amazon inventory quantity metrics per product row, with fulfillment_type (FBA or FBM) on each row. FBA rows include available, inbound pipeline quantities, and unfulfillable. FBM rows include available only (FBA-only keys are omitted, not zero-filled). Not a time series; not inventory age or days-of-supply. This is the authoritative source for inventory quantities; do NOT reconcile or cross-check these counts against get_fba_inventory_health_status, whose numbers are health signals only and follow a different methodology. Use when the user asks how much stock is on hand, in transit to Amazon (inbound), or unfulfillable; needs SKU/ASIN-level inventory counts across sellers/marketplaces; restock or fulfillment planning based on quantity snapshots. Not for: FBA health/aging/days of supply (use get_fba_inventory_health_status); sales velocity or units sold over time (use get_sales_velocity); profit & loss or fees (use Phase 1 P&L tools). Pass seller_ids, marketplace, asins, skus, and/or fulfillment_type (FBA | FBM) to limit rows; omit fulfillment_type for both channels. Use pagination when listing many SKUs. Pass available_min / available_max to filter rows by on-hand quantity (inclusive bounds on inventory.available) without post-processing in agent context. Combine sort_by=available with a small page_size to retrieve top/bottom N SKUs by stock level in one call: sort_order=asc surfaces lowest-stock SKUs first (restock prioritization), sort_order=desc surfaces highest-stock SKUs first.
get_inventory_values
Helium 10 Keyword Research (formerly Cerebro). Reverse keyword search for one Amazon ASIN: returns every phrase where the ASIN is visible on Amazon — organic, sponsored, or in Amazon's recommendations — with search volume, rank, CPC, ABA top-3 click/conversion share, and H10 metrics (CPR, IQ score, title density). Use for keyword discovery from your own listing, competitor reverse-search, listing coverage audits, and PPC keyword selection. Not for: seed-keyword expansion with no ASIN (use get_keywords_by_keyword); scoring a finalized list (use analyze_keywords). Pass optional time_period (YYYY-MM) to look back at a single past month (e.g. last November's related keywords); omit for current data. One month per request; query each month separately for multi-month comparisons. `limit` accepts 1-10000 rows per call (default 150); up to 1000 rows per page are returned inline and a larger ask is delivered as a downloadable file instead (data.export.download_url) — set response_format='download' when the user explicitly wants a file. If data.pagination.has_more is true the result is incomplete: call again with `cursor` = data.pagination.next_cursor, but prefer narrowing the query over paginating through everything — this tool can page to at most 100,000 rows for one query, past which the result is truncated (truncation_reason='traversal_bound') and only a narrower query reaches the rest. Cursors expire 30 minutes after being issued and are bound to the query that issued them.
get_keywords_by_asin
Helium 10 Keyword Research (formerly Magnet). Seed-keyword expansion for one keyword: returns related long-tail and derivative phrases with search volume, relationship type, CPC, ABA top-3 click/conversion share, and H10 metrics (CPR, IQ score, title density). Use for keyword planning from a single concept, PPC keyword selection, listing keyword coverage, and hero-keyword discovery. Not for: reverse search on an ASIN (use get_keywords_by_asin); scoring a finalized list (use analyze_keywords). Pass optional time_period (YYYY-MM) to look back at a single past month (e.g. last November's related keywords); omit for current data. One month per request; query each month separately for multi-month comparisons. `limit` accepts 1-10000 rows per call (default 150); up to 1000 rows per page are returned inline and a larger ask is delivered as a downloadable file instead (data.export.download_url) — set response_format='download' when the user explicitly wants a file. If data.pagination.has_more is true the result is incomplete: call again with `cursor` = data.pagination.next_cursor, but prefer narrowing the query over paginating through everything — this tool can page to at most 100,000 rows for one query, past which the result is truncated (truncation_reason='traversal_bound') and only a narrower query reaches the rest. Cursors expire 30 minutes after being issued and are bound to the query that issued them.
get_keywords_by_keyword
How do I improve a ChatGPT Plugin's discoverability?
The levers are the listing surface agents actually read: names, descriptions, keywords, tool metadata, and registry health. Which lever matters depends on where discovery breaks, which is what continuous measurement shows.
What are Helium 10 alternatives on ChatGPT?
As of 2026-09-28, Helium 10 competes with Adzviser Amazon Seller Central, Catalog CLI Pro, DataGlass, Dropshipping Product Scout, El Tasador - Soluna, Faire Wholesale, First FMCG, Flippo AI, Floaro, ListingForgeAI, Nifty, NovaSupplier, Pattern Intelligence, Product Listing Validator, sedoriMAX, Sellerise, Syncee AI Dropship & Wholesale, Tool4seller, Zendrop in ChatGPT Marketplace Seller, Dropship & Wholesale Tools, ranked by public Discoverability Score.
Where is this profile measured?
This profile uses the geography attached to the latest public registry snapshot: US. Locale tags are intentionally omitted.