MCP App Store
by KeenEthics

Overview

Access your Helium 10 data directly in Claude. Query keyword and ASIN data, analyze campaign performance and profitability, and extract insights from your listings and rank tracking. Make Helium 10 a native part of your Claude workflows without switching between dashboards or exporting a single file. Built for active brands with real account data across Research, Ads, and Commerce. Requires an active Helium 10 Diamond plan. Lower-tier accounts are not supported.

Tools

add_untracked_product_keywords

ChatGPT
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.

analyze_keywords

ChatGPT
Helium 10 Keyword Research (formerly Cerebro). Batch enrichment for an explicit list of 1–200 keywords: one row per keyword with search volume, CPC, ABA top-3 click/conversion share, and H10 metrics (CPR, IQ score, title density, competing products). Use when the user already has a candidate-keyword set to score, rank, structure into ad groups, or cross-compare. Not for: deriving new terms from one seed (use get_keywords_by_keyword); reverse search on an ASIN (use get_keywords_by_asin). Note: output order does NOT match input order — match results by the phrase field.

analyze_product_images

ChatGPT
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).

check_asin_keyword_index

ChatGPT
Checks whether one Amazon ASIN is indexed for one or more keywords on a marketplace using Helium 10 Index Checker paths. Returns Traditional Index, Field-ASIN Index, Storefront Index when Seller ID is provided, and Cumulative as true or false on Completed rows (true if any applicable check is positive, else false if any applicable check is negative). If all applicable checks are null, treat the keyword as Check Failed and summarize it in additionalMessage instead of returning a result row. Without Seller ID, checks Traditional and Field-ASIN; with Seller ID, includes Storefront. Call for indexed / not indexed / keyword index / Index Checker questions—even without saying "index checker." Use for tracked Keyword Tracker ASINs (one call per ASIN) or ad-hoc ASIN + keywords + marketplace. Ask once if marketplace, ASIN, or keywords are missing; ask Seller ID only for Storefront. One ASIN per call; batch larger sets. Prefer unique keywords; duplicates are deduplicated and counted in the summary. Completed keywords return as rows; failures are summarized by count in additionalMessage.

compare_asin_keywords

ChatGPT
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_item_keywords

ChatGPT
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_listings

ChatGPT
Helium 10 Listing Comparison. Returns the field set from Compare Key Metrics for every ASIN in the session — the main ASIN plus all competitor ASINs — as an array of objects under asins. The main ASIN is always first, flagged with is_main: true. Maps to the Compare Key Metrics Across ASINs table in the LA UI. Use to benchmark your listing against multiple competitors at once, see where you're ahead or behind on content and sales, and build a prioritized improvement list. Competitor ASINs that are valid 10-char codes but can't be resolved upstream are not returned as empty rows — they are split out into failed_asins as {asin, error} so the asins rows always carry real data. Not for: a single-ASIN lookup (use get_listing_details); keyword comparison (use get_top_keywords); the LQS checklist (use get_listing_score).

create_amazon_indirect_cost

ChatGPT
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).

delete_amazon_cogs

ChatGPT
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_indirect_costs

ChatGPT
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_tracked_keywords

ChatGPT
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_product

ChatGPT
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.

edit_amazon_cogs

ChatGPT
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_indirect_cost

ChatGPT
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_product_monitoring

ChatGPT
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.

execute_ads_campaign_mgmt_actions

ChatGPT
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_changelog_query

ChatGPT
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_query

ChatGPT
Helium 10 Run Ads Query (Data Query, step 5 of 5, terminal). Given a platform key, level, dimensions, measures, filters, date range, and optional profile_ids, runs the query and returns columns + rows (no middleware translation, truncation, or pagination). Use to retrieve advertising performance — spend, ROAS, ACoS, impressions, clicks, conversions, and more — across any supported dimension and time range. profile_ids is RECOMMENDED, not required — pass an explicit list when the user named a specific profile (resolve via get_ads_query_materials); leaving it empty / omitted is accepted by upstream and treated as 'every profile the user has access to' (tenant isolation stays enforced via the inbound bearer token). State filtering is supported: the state field and its enum are in get_ads_query_schema — add a not_in/in/eq filter to exclude or include archived/deleted/removed states per the user's intent. No default; leave state unconstrained unless the request implies a status scope. Param shapes (all field names come from get_ads_query_schema; two are commonly confused): dimensions is a list of OBJECTS [{"field":"<dimensions[].field>"}]; measures is a list of BARE STRING field names ["<measures[].field>"] (illustrative: [{"field":"campaign_id"}] vs ["spend","clicks"] — use the real fields from the schema). There is no date parameter — filter by the schema's date field via filters; the op MUST come from that field's ops list in get_ads_query_schema (platforms differ: one may use "le"/"ge", another "lte"/"gte", or only "between" — never assume an op without reading the schema first). The sort parameter is order_by (not sort). Prerequisites: steps 1–3 for a valid spec; step 4 to resolve profile/campaign ids the user named.

find_keywords_with_multi_source

ChatGPT
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.

generate_listing

ChatGPT
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).

get_account_profit_and_loss_breakdown

ChatGPT
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_series

ChatGPT
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_summary

ChatGPT
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_series

ChatGPT
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_ads_campaign_mgmt_platforms

ChatGPT
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_schema

ChatGPT
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_changelog_platforms

ChatGPT
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_schema

ChatGPT
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_query_list

ChatGPT
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_materials

ChatGPT
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_platforms

ChatGPT
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_schema

ChatGPT
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_rule

ChatGPT
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_platforms

ChatGPT
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_schema

ChatGPT
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_amazon_ads_average_budget_utilization

ChatGPT
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_current_budget_utilization

ChatGPT
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_asin_bsr_history

ChatGPT
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_price_history

ChatGPT
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_review_analysis

ChatGPT
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_reviews_history

ChatGPT
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_bought_together_history

ChatGPT
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_brand_seller_profiles

ChatGPT
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_buybox_summary

ChatGPT
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_category_review_analysis

ChatGPT
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_change_rollup

ChatGPT
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_competitor_overview

ChatGPT
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_fba_inventory_health_status

ChatGPT
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_inventory_values

ChatGPT
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_keyword_performance_with_competitors

ChatGPT
Helium 10 Listing Builder — scores how well a keyword set is written into listing copy for your ASIN and up to 10 competitors: a per-ASIN Keyword Performance Score (KPS) by field plus coverage counts, and per keyword the text-match types each ASIN achieves in title / bullets / description, plus demand metrics and organic rank. Competitors are always scored on their published listing; so is your ASIN unless you pass main_listing_draft for unpublished copy. Use to find keywords competitors wrote into their copy and you did not, and which field each belongs in. Reading text_match: Codes, strongest first: E = Exact Phrase; P = Plural/Singular; R = Partial Phrase; F = Field Broad (all words in that field); L = Listing Broad (words spread across fields). Not for: benchmarking listings on sales, reviews, price or quality score (use compare_listings); keyword gaps derived from organic search-result data rather than from listing copy (use compare_asin_keywords).

get_keywords_by_asin

ChatGPT
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_item_id

ChatGPT
Helium 10 Keyword Research for Walmart (Walmart Cerebro). Reverse keyword search for one Walmart item: returns every phrase the item ranks on at walmart.com, organic or sponsored, with the item's position on each phrase, how many products compete on it, how many run ads on it, and the phrase's Amazon search volume for cross-platform comparison. Use for: keyword discovery from a Walmart listing, competitor reverse-search on Walmart, Walmart listing coverage audits, and Walmart Sponsored Products keyword selection. Not for: Amazon products - use get_keywords_by_asin instead. Multi-item keyword comparison on Walmart - use compare_item_keywords. The two demand columns mean different things and are not comparable. search_trend_score is Walmart demand on a 0-100 relative scale (the "Search Trend Score" column in the Helium 10 UI) - NOT a number of searches, never report it as one. amazon_search_volume is the same phrase's estimated monthly searches on Amazon, an absolute number, provided for cross-platform comparison. Walmart also has no CPR, IQ Score, CPC, ABA click/conversion share, or title density - those exist on Amazon only. 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

ChatGPT
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_cpc_history

ChatGPT
Helium 10 keyword CPC / suggested PPC bid history (not a Black Box Web module). Returns weekly suggested-PPC-bid points for one keyword (keyword): cpc, low_cpc, high_cpc as of each event date, plus currency_code (the marketplace's local currency; values are not a single fixed currency across marketplaces). cpc, low_cpc, and high_cpc are integers in the minor unit of currency_code (e.g. 79 = USD 0.79); Japan (JPY) has no minor unit, so its values are whole yen. 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 asks for CPC or PPC bid history/trend for a keyword. Not for search volume history (use get_keywords_search_volume_history), ASIN price/BSR/reviews history, keyword ranking history, current/snapshot CPC already present in search results, or batch multi-keyword calls.

get_keywords_new_suggestion

ChatGPT
Helium 10 New Keywords to Track. For a given ASIN, returns keywords NOT yet in your Keyword Tracker — drawn from the ASIN's own footprint and its tracked competitors' footprints — with search volume, keyword_sales, CPS, ABA shares, and a source field (main product vs a specific competitor). Use to expand your tracked set after a listing change, find high-potential terms you're missing, and for tracking hygiene. Candidates only — add them in the Helium 10 UI. Not for: already-tracked metrics (use list_tracked_keywords); reverse search with no tracking context (use get_keywords_by_asin); competitor comparison (use list_tracked_competitor_keywords). Errors: invalid_input / invalid_asin / no_result / no_data / rate_limited / upstream_timeout. Returns up to limit rows per call (default 100, max 40000); 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.

get_keywords_rank_history

ChatGPT
Helium 10 Keyword Tracker. Returns historical sponsored and organic rank trends for one keyword (fuzzy match) over a date range, scoped to an ASIN/product URL — summary metrics (top / lowest / average for both surfaces) plus full time-series rank history. Use to analyze rank movement over time, find peak ad-placement periods, detect organic-rank decline, and evaluate phased ranking performance. Not for: current snapshots across all tracked keywords (use list_tracked_keywords); discovering new keywords (use get_keywords_by_asin); batch metrics across a list (use analyze_keywords). 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.

get_keywords_sales_history

ChatGPT
Keywords sales history. Returns weekly sales-units points for one keyword (keyword); each point is the sales units attributed to that keyword for the week starting on that event date. Each point has period_start/period_end (period_start plus 6 days) alongside sales. 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 asks for sales history or sales trend for a keyword. Not for ASIN price/BSR/reviews, keyword search volume, keyword ranking, or batch multi-keyword.

get_keywords_search_frequency_rank_history

ChatGPT
Keywords search frequency rank history (Amazon Brand Analytics). Returns search-frequency-rank points for one keyword (keyword), one point per reporting period; lower rank means the keyword is searched more frequently. Each point has period_start/period_end (that week/month's calendar boundaries) plus search_frequency_rank. reporting_range (weekly or monthly) is required. 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 asks for search frequency rank or Brand Analytics rank trend for a keyword. Not for ASIN price/BSR/reviews, keyword search volume, keyword sales, or batch multi-keyword.

get_keywords_search_volume_history

ChatGPT
Keywords search volume history (not a Black Box Web module). Returns weekly search-volume points for one keyword (keyword); each point is the trailing 30-day search volume for that week, and data updates about weekly. 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 asks for search volume history or demand trend. Not for ASIN price/BSR/reviews, keyword ranking, batch multi-keyword, or keyword discovery rows (use search_amazon_keywords).

get_listing_details

ChatGPT
Helium 10 Listing Analyzer. For one Amazon ASIN, returns the complete listing profile: title, Listing Quality Score (LQS), age, image count, variation count, category & subcategory BSR, seller name & region, price, coupon status, parent- and ASIN-level sales with revenue estimates, review count, sales-to-review, shipping details, weight, storage fee, top-10 keywords with search volumes, and variation relationships with parent/child info (a child ASIN input also works). Use as the primary single-ASIN lookup for listing audits, pre-launch benchmarking, variation-family discovery, and competitive research on a specific product. Not for: comparing multiple ASINs (use compare_listings); the LQS pass/fail checklist (use get_listing_score); keyword strategy (use get_top_keywords); writing / generating / optimizing / rewriting listing copy — title, bullets, or description (that is the Listing Builder flow, not this tool).

get_listing_score

ChatGPT
Helium 10 Listing Quality Audit. For an ASIN group (main + up to 10 competitors), returns the session-average LQS (0–10) with aggregate pass/fail counts per criterion, plus individual LQS scores and pass/fail results for all 13 criteria per ASIN — across Copy, Media, and Review (title symbols/length, ≥5 bullets, bullet length, image resolution & count, white-background main image, video presence, description ≥1000 chars or A+, ≥20 reviews, ≥4-star rating). All ASINs returned in one call; the agent surfaces whichever ASIN the user asks about. Use to understand content-compliance scores, pinpoint which elements drag LQS down, and compare listing quality across competitors. Not for: full attribute lookup (use get_listing_details); a quick LQS number alongside other metrics (use compare_listings).

get_market_leaderboard

ChatGPT
Return compared leaderboard for one MT360 market: ranked categories, brands, or products by revenue and unit sales (totalValue, totalValueCompared, change, growth). Requires market_id, leader_board_tabs_type (0=CATEGORIES top-level only, 1=BRANDS, 2=PRODUCTS), date_from, date_to (yyyy-MM-dd; prefer list_user_markets defaultDateFrom/To), and sort (-totalValue top performing | -growth fastest growing | -change largest increase | change top declining). There is no category_id input; CATEGORIES is always the top-level ranking, not a subcategory drill-down. compared_date_from and compared_date_to are optional but must be passed together for the compare period (maps to DSA compareDateFrom/compareDateTo). If both are omitted, totalValueCompared, change, and growth are null. Passing only one is rejected. Dates are yyyy-MM-dd and inclusive. MT360 uses Saturday as the weekly cutoff: Mon–Fri the latest allowed end date is the Saturday of the week before last; Saturday–Sunday may use last Saturday. Each provided range must span at least 28 inclusive days. When a compare range is sent (compared_date_from + compared_date_to), the two ranges must be similar length (inclusive day counts differ by at most 5). change is an absolute amount delta, not a percent: on revenue rows it is currency change (scaled for display except Japan marketplaceId 10 and parentDataMode 1, same as totalValue); on unitSales rows it is unit-sales volume change (never /100). growth is the percent field, passed through from DSA with no processing (e.g. 26.873 means 26.873%) — never divide growth by 100. Values: totalValue/totalValueCompared on revenue rows are currency amounts already scaled for display except Japan and parent mode; unitSales row totals are not scaled. Nested item.price/priceAverage/priceDynamic/fbaFee/netPrice/pricePerUnit on revenue and unitSales are already /100 except Japan; listingScore is not scaled. item.fbaFee/pricePerUnit/price/priceAverage/sizeTier/yearSales/weight/height/width/length of -1 are returned as null (not /100). null and 0 are not scaled. estimatedRevenue, estimatedRevenueDynamic, estimatedSales, and estimatedSalesDynamic are omitted from item. Always pass parent_data_mode (false/0 = child/variation, true/1 = parent); omitted defaults to child. Prefer the market's parentDataMode from list_user_markets. Not for: headline share cards (get_market_statistics), time series (get_market_overall), or full product table (get_market_products).

get_market_overall

ChatGPT
Return Overall Market historical series (optional compare) for one MT360 market: interval buckets for a chosen metric, grouped by none/product/brand/competitors/seller type. Requires market_id, overall_show_type (0 revenue, 1 revenue_market_share, 2 units, 3 units_market_share, 4 price). overall_show_type 4 (PRICE) is not allowed with parent_data_mode true/1 (parent aggregation has no meaningful price). group_by_type (0–4), view_by_type (0 weekly, 1 monthly, 2 yearly), date_from and date_to. Pass compared_date_from + compared_date_to together for a compare series. Dates are yyyy-MM-dd and inclusive. MT360 uses Saturday as the weekly cutoff: Mon–Fri the latest allowed end date is the Saturday of the week before last; Saturday–Sunday may use last Saturday. Each provided range must span at least 28 inclusive days. When a compare range is sent (compared_date_from + compared_date_to), the two ranges must be similar length (inclusive day counts differ by at most 5). Always pass parent_data_mode (false/0 = child/variation, true/1 = parent); omitted defaults to child. Do not pass parent_data_mode true/1 together with overall_show_type 4. Prefer the market's parentDataMode from list_user_markets. change is a percent field (e.g. -36.53 means -36.53%) passed through from DSA unchanged — never divide by 100, regardless of marketplace, parent_data_mode, or overall_show_type. For non-Japan markets, when overall_show_type is 0 (revenue) and the response parentDataMode is 0 (child), interval money fields (totalValue, comparedTotalValue, totalActualsValue, comparedTotalActualsValue, diff, diffActuals, changeActuals) are already scaled for display; Japan and other show types are not. intervalNumber -1 is the full-range summary row in intervalsData; when summing or plotting intervalsData, exclude every element with intervalNumber < 0 first. Use page_number/per_page to limit payload size. Not for: share cards (get_market_statistics), ranked leaderboard (get_market_leaderboard), or product catalog (get_market_products).

get_market_products

ChatGPT
Return paginated current product rows for one MT360 market (ASIN attributes, BSR, brand, category, dynamics, etc.). Values: money fields (totalRevenue, totalRevenueActuals, price, priceDynamic, netPrice, pricePerUnit, fbaFee) are already scaled for display (/100) except Japan (marketplaceId 10); in parent mode (parentDataMode 1) totalRevenue is left at DSA scale. Null and 0 money values are not scaled. listingScore is not scaled. fbaFee, pricePerUnit, price, sizeTier, yearSales, weight, height, width, and length of -1 are returned as null (not /100). sizeTier is a DSA integer (not /100): 1=Small Standard-Size, 2=Large Standard-Size, 3=Small Oversize, 4=Medium Oversize, 5=Large Oversize, 6=Special Oversize, 7=Envelope, 8=Small and Light, 9=Small Letter, 10=Large Letter, 11=Extra Large Letter, 12=Small Envelope, 13=Standard Envelope, 14=Large Envelope, 15=Standard Parcel, 16=Small, 17=Standard Size, 18=Oversize, 19=Standard-Oversize, 20=Heavy and Bulky, 21=Supersize, 22=Extra Large Envelope, 23=Small Parcel. -1 is returned as null; other integers are pass-through. rating/reviews/packageQuantity are positive numbers or null; FBA is a seller-type label (AMZ/FBA/FBM/FLF/MERCH, or '-'). estimatedRevenue, estimatedRevenueDynamic, estimatedSales, and estimatedSalesDynamic are omitted. Requires market_id from list_user_markets plus date_from and date_to (yyyy-MM-dd; prefer list_user_markets defaultDateFrom/To). Dates are yyyy-MM-dd and inclusive. MT360 uses Saturday as the weekly cutoff: Mon–Fri the latest allowed end date is the Saturday of the week before last; Saturday–Sunday may use last Saturday. Each provided range must span at least 28 inclusive days. Keep per_page small (default 10, max 100); use sort (DSA whitelist enum; default -totalRevenue) and current_table_search to narrow results. Pagination: has_more is true when another page of rows exists. On the first request DSA computes total asynchronously to avoid timeouts, so total and last_page may be missing; use has_more (not total) to decide whether to fetch the next page. After the count job finishes, later responses include total and last_page. Always pass parent_data_mode (false/0 = child/variation, true/1 = parent); omitted defaults to child. Prefer the market's parentDataMode from list_user_markets. Not for: share summary (get_market_statistics), top-N leaders (get_market_leaderboard), or time-series overall (get_market_overall).

get_market_statistics

ChatGPT
Return headline Market Performance statistics for one MT360 market: my share / revenue / units, total market revenue / units, brand mix, and optional compare-period fields (Compared, Change, Dynamic). Snapshot for the selected date range — not a time series. Values: myMarketShare, myMarketShareCompared, myMarketShareDynamic, and each brands[].brandMarketShare are percent point numbers already (e.g. 12.5 means 12.5%), do not divide by 100. myMarketRevenueChange, myMarketSalesChange, totalRevenueChange, and totalSalesChange are also percent fields passed through from DSA with no scaling (e.g. 10.98 means 10.98%) — never divide them by 100. Revenue fields (myMarketRevenue, totalRevenue*) are already scaled for display except Japan (marketplaceId 10), which is left at DSA scale. Requires market_id from list_user_markets plus date_from and date_to (yyyy-MM-dd; prefer list_user_markets defaultDateFrom/To). Dates are yyyy-MM-dd and inclusive. MT360 uses Saturday as the weekly cutoff: Mon–Fri the latest allowed end date is the Saturday of the week before last; Saturday–Sunday may use last Saturday. Each provided range must span at least 28 inclusive days. When a compare range is sent (compared_date_from + compared_date_to), the two ranges must be similar length (inclusive day counts differ by at most 5). There is no preset_id or saved-filter input; stats use the market as configured. Pass compared_date_from + compared_date_to together for period-over-period change. Always pass parent_data_mode (false/0 = child/variation, true/1 = parent); omitted defaults to child. Prefer the market's parentDataMode from list_user_markets. Not for: market list (list_user_markets), time series (get_market_overall), ranked leaders (get_market_leaderboard), or product rows (get_market_products).

get_mcp_usage_info

ChatGPT
Returns the current caller's MCP tool-call remaining usage quota for the current period: the account id, the period limit, how many calls were used and how many remain. Calling this tool does not itself consume quota.

get_monitoring_status

ChatGPT
Helium 10 Alerts — a seller's monitoring status. Omit asin for an account overview: total/used/available monitoring slots and the list of monitored ASINs (asins[]) with their marketplace, seller SKU and monitoring start date. Pass asin to get asin_rows[] — one row per marketplace the ASIN appears in, each with is_monitored, marketplace and seller SKU. Essential for distinguishing 'no changes' from 'not monitored' when other Alerts tools return empty.

get_my_amazon_seller_accounts

ChatGPT
What: Return the caller's bound Amazon seller accounts (one row per SP-API token / seller binding). Each row includes seller_id, marketplace_list (short country codes), region (NA / EU / FE), status (whether the binding is still valid), optional alias, and created_at (UTC bind time). No required input — default returns all bindings (active and inactive). Optional status filter narrows to valid-only or invalid-only. When to use: User (or agent) needs to know which seller IDs and marketplaces are available for this account before calling other Commerce tools; wants to list / audit linked Amazon seller accounts; needs to distinguish active vs revoked / invalid tokens; wants a human-readable alias when present. When NOT to use: Brand Registry / SQA seller × marketplace picker → get_brand_seller_profiles (ResearchMCP). Use that tool when the next call is Brand-Registry–gated (e.g. get_search_query_performance, ABA Brand Analytics), or the user only needs a Brand-Registered seller_id + one marketplace from marketplaces[]. It filters out non–Brand-Registered and does not return region / status / alias / created_at, and its marketplace enum is narrower (US/UK/DE/JP/CA/FR/IT/ES). Do not use this Commerce tool as a substitute for that picker, and do not use get_brand_seller_profiles when you need the full SP-API binding roster for P&L / inventory / COGS / Indirect Costs. Product catalog / SKU browse → list_my_products (HP-1267) P&L, inventory, COGS, or Indirect Costs metrics / CRUD → the dedicated tools for those domains Discovering Amazon sellers that are not linked to this H10 account Guidance: Call with no arguments first to discover the full set of seller_id + marketplace_list values, then pass those into downstream Commerce tools' seller_ids / marketplace filters. Prefer status=true when the user only wants currently usable sellers. Do not invent seller IDs or marketplaces. If the task is specifically SQA / Brand Analytics and Brand Registry eligibility matters, prefer get_brand_seller_profiles instead.

get_my_wmt_seller_accounts

ChatGPT
What: Return the caller's bound WALMART seller accounts (one row per Walmart auth-token binding). Each row includes seller_id (Walmart partner id — the same value space as seller_ids on the other Walmart Commerce tools), marketplace_list (day-1 always ['US']), status (whether the binding is still valid), optional alias, and created_at (UTC bind time, ISO-8601 with 'Z'). No required input — default returns all bindings (active and inactive). Optional status filter narrows to valid-only or invalid-only. There is no region field for Walmart. When to use: User (or agent) needs to know which Walmart seller IDs (partner ids) and marketplaces are available for this account before calling other Walmart Commerce tools; wants to list / audit linked Walmart seller accounts; needs to distinguish active vs revoked / invalid tokens; wants a human-readable alias when present. When NOT to use: Amazon seller discovery → get_my_amazon_seller_accounts Amazon Brand Registry / SQA picker → get_brand_seller_profiles (ResearchMCP; Amazon-only) Walmart P&L / inventory / product metrics → the dedicated Walmart Commerce tools for those domains Walmart Ads profile / shop-to-ads-account mapping → Ads MCP (not this Commerce roster) Discovering Walmart sellers that are not linked to this H10 account Guidance: Call with no arguments first to discover the full set of seller_id + marketplace_list values, then pass those into downstream Walmart tools' seller_ids / marketplace filters. Prefer status=true when the user only wants currently usable sellers. Do not invent seller IDs or marketplaces. Do not mix Walmart seller_id values with Amazon seller IDs.

get_product_live_status

ChatGPT
Helium 10 Alerts — current attribute snapshot for one ASIN: price, FBA fee, Buy Box owner, number of sellers, listing status (active/suppressed/inactive), is_adult_flagged, has_returned_tag (Frequently Returned Item badge), category, brand, main image, package dimensions (size_tier) and last-updated time. Answers 'what is it now?' (current state), as opposed to search_alert_events ('what changed'). The ASIN must have monitoring enabled; querying an unmonitored ASIN returns an INVALID_INPUT error.

get_product_profit_and_loss_breakdown

ChatGPT
Helium 10 Product P&L Breakdown (formerly Profits). Returns per-product breakdown snapshots in rows — product info plus nested metrics per requested breakdown key, showing which fee type, ad channel, or cost component drives each metric per product. Use to diagnose why a specific ASIN has unexpectedly high costs, compare fee/ad-spend breakdowns across products, and find the most favorable cost structures. Not for: per-product Level 1 only (use get_product_profit_and_loss_summary); account breakdown (use get_account_profit_and_loss_breakdown); 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_product_profit_and_loss_breakdown_series

ChatGPT
Helium 10 Product P&L Breakdown Trends (formerly Profits). Returns a per-product breakdown time series (nested values on children) — the largest Phase 1 payload. Use when you need product-level granularity, fee/cost-component drill-down, and over-time trends all at once — e.g. how a specific ASIN's FBA fee changed month over month. Keep breakdown_metrics, filters, and page_size minimal. Not for: a snapshot (use get_product_profit_and_loss_breakdown); Level 1 trends only (use get_product_profit_and_loss_summary_series); account breakdown trends (use get_account_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_product_profit_and_loss_summary

ChatGPT
Helium 10 Product P&L Summary (formerly Profits). Returns product-level P&L SNAPSHOTS — one row per product_level (sku | asin | parent_asin) with identity fields and a single Level 1 metrics map covering the WHOLE date range; NO time buckets, no trend, no breakdown trees. Use to rank products by profitability for one period, compare margin across the catalog, flag loss-making SKUs, build a product-level report. IMPORTANT: if the question mentions a TREND or change OVER TIME (daily/weekly, 'over the last N days', 'units sold trend', etc.) use get_product_profit_and_loss_summary_series instead — it ranks top-N AND returns the time series in one call. Not for: store-wide totals (use get_account_profit_and_loss_summary); per-product trends (use get_product_profit_and_loss_summary_series); per-product drill-down (use get_product_profit_and_loss_breakdown). A cost_of_goods or indirect_cost of 0 on any row 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_product_profit_and_loss_summary_series

ChatGPT
Helium 10 Product P&L Trends (formerly Profits). Returns per-product Level 1 P&L TIME SERIES — each row carries product info plus metric_series (metric_key, values) bucketed by granularity (day | week | month). THIS is the tool whenever the question asks how a metric moves OVER TIME — trend, trajectory, 'over the last N days', daily/weekly, 'units sold trend', 'revenue over time', 'net profit trend'. It ALSO ranks: sort_by + page_size return the top-N products (e.g. top 10 by net_profit) EACH with its metric_series, so 'top-N products' TREND' is a single call here (do NOT use the snapshot tool for that). No breakdown trees. Not for: a point-in-time snapshot with no time buckets (use get_product_profit_and_loss_summary); account trends (use get_account_profit_and_loss_summary_series); breakdown trends (use get_product_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_sales_velocity

ChatGPT
Return units sold over time (sales velocity) per product row, bucketed by day / week / month over an inclusive date range. Each row includes product information (including fulfillment_type). Not a single snapshot; not revenue, fees, or other P&L metrics. Use when the user asks how units sold trend, compare periods, velocity by SKU/ASIN, or needs time-bucketed unit counts for inventory / restock planning. Not for: snapshot on-hand / inbound quantities (use get_inventory_values); FBA health / aging (use get_fba_inventory_health_status); full P&L trends (use get_product_profit_and_loss_summary_series or get_account_profit_and_loss_summary_series). Date range and granularity are OPTIONAL: omit BOTH current_date_from and current_date_to to default to the most recent 30 calendar days (in date_tz), and omit granularity to default to daily buckets — so 'recent sales velocity' needs no date/granularity args. Providing only one date endpoint is an error. Narrow with seller_ids, marketplace, asins, skus, fulfillment_type, and pagination. Prefer this over product P&L series when only units sold matter (smaller payload).

get_search_query_performance

ChatGPT
Helium 10 Search Query Analyzer (SQA). Reads Amazon Search Query Performance (SQP) funnel data for 1–20 Brand-Registered ASINs over 1–12 weekly or monthly periods: a summary header (16 aggregate metrics, always over the FULL query result) plus a per-query keywords[] table (45 fields covering the impression→click→cart→purchase funnel, your share at each stage, PPC, ABA shares, and CPR), sorted by search volume descending. Use for conversion-truth diagnostics vs the market — where you lose CTR/CVR, which queries drag you down, how much purchase share you leave on the table, and WoW/MoM funnel shifts. Returns up to limit rows per call (default 50, 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. REQUIRES Brand Registry. Needs (seller_id, marketplace) — if the user names neither, call get_brand_seller_profiles first. Not for: reverse keyword search on one ASIN (use get_keywords_by_asin); scoring a finalized keyword list (use analyze_keywords).

get_seller_feedback

ChatGPT
Helium 10 Alerts — Brand or seller feedback rating and recent negative reviews, for reputation monitoring and competitor assessment. seller_id may be the caller's own seller or a competitor's. For an account-level rollup that also surfaces feedback notifications alongside other alert types, see get_change_rollup.

get_size_tier_suggestions

ChatGPT
Helium 10 Alerts — FBA (Fulfilled by Amazon) Size Tier optimization suggestions for a brand's monitored ASINs: which products could drop to a cheaper Size Tier by adjusting packaging dimensions, and the estimated FBA fee savings. Omit asin for all monitored products in the marketplace; pass asin for a single product. Returns an empty suggestions list when no optimization applies. For a one-off historical event of when this suggestion appeared, see search_alert_events (alert type SIZE_TIER_OPTIMISATION).

get_tiktok_product_influencers

ChatGPT
Helium 10 TikTok Product Influencers. Given a product_id from search_tiktok_products, returns the TikTok creators who have promoted or sold that specific product ("Collaborating Influencers"), with the GMV/units-sold/video count each creator generated for that product over a selected time window. Not a general influencer search — use search_tiktok_influencers for that. limit accepts 10-100 rows per call (default 10). At most 500 rows are reachable in total for one query; beyond that the result is truncated (truncation_reason='traversal_bound'). 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.

get_top_keywords

ChatGPT
Helium 10 Top Keywords for Listing. For an ASIN group, returns keyword data in two layers — an aggregate summary and a per-keyword detail table (search volume, keyword sales, CPR, organic rank, per-ASIN ranks) — plus a side-by-side view of which keywords competitors rank for that you don't. Summary is always returned. Field names differ by mode: single ASIN mode (no competitors) returns total_keywords, top10_keywords, total_search_volume, top10_search_volume; multi ASIN mode (with competitors) returns total_shared_keywords, shared_top10_keywords, total_shared_search_volume, shared_top10_search_volume. The response includes a mode field ("single" or "multi") so the caller knows which field set to expect. Keyword details are conditionally returned. In multi-ASIN mode, a keyword qualifies when: at least 2 ASINs share it, average competitor rank is between 1–40, at least 4 ranking competitors, and search volume > 500. In single-ASIN mode, a keyword qualifies when: word count ≥ 2, search volume > 500, and organic rank ≤ 10. When no keywords qualify, keyword_details returns an empty array [] and no_ranking_keywords is set to true. Use to see which keywords drive the most traffic, find coverage gaps versus competitors. Organic ranking signals only — paid keyword data is out of scope. Not for: general attribute comparison (use compare_listings); LQS or sales data (use get_listing_score).

get_wmt_account_profit_and_loss_breakdown

ChatGPT
Return a WALMART account-level P&L snapshot with nested component metrics ONLY for the requested breakdown_metrics. Not a time series, not product rows. Walmart only. Use for drill-down: Walmart fee lines (walmart_fees → Commission), gross_revenue parts (Sales / Shipping / Taxes → Tax Collected + Tax Withheld), COGS parts (Product Cost / Shipping Cost / Tariffs), and named indirect costs (dynamic configured cost names). Pass only the needed keys from: cost_of_goods | indirect_cost | gross_revenue | walmart_fees — any other key is INVALID_INPUT. Prefer get_wmt_account_profit_and_loss_summary first for Level 1 totals. NOT for: Level 1 only (summary); component trends over time (get_wmt_account_profit_and_loss_breakdown_series); per-product drill-down (get_wmt_product_profit_and_loss_breakdown); Amazon P&L (unprefixed Amazon tools). seller_ids are Walmart partner_id values; marketplace / date_tz / currency are bound — today only US + America/Los_Angeles + USD. item_ids / skus only narrow the account roll-up. cost_of_goods / indirect_cost 0 may mean unconfigured. Do not mix with Amazon P&L.

get_wmt_account_profit_and_loss_breakdown_series

ChatGPT
Return WALMART account-level P&L breakdown component trees for the requested breakdown_metrics, bucketed by granularity (day / week / month) — every node carries a date-keyed values map alongside its range total. Not product-level. Walmart only. Use for trends of fee / revenue / COGS / indirect components over time (e.g. weekly Commission, monthly Tax Withheld, named indirect costs per month). Requires granularity AND a non-empty breakdown_metrics from: cost_of_goods | indirect_cost | gross_revenue | walmart_fees — any other key is INVALID_INPUT. Prefer simpler tools first: snapshot component totals → get_wmt_account_profit_and_loss_breakdown; Level 1 trends → get_wmt_account_profit_and_loss_summary_series; product trends → get_wmt_product_profit_and_loss_breakdown_series; Amazon P&L → unprefixed Amazon tools. Do not pass scope or offset — responses carry neither, use the request granularity you sent. seller_ids are Walmart partner_id values; marketplace / date_tz / currency are bound — today only US + America/Los_Angeles + USD. item_ids / skus only narrow the account roll-up. cost_of_goods / indirect_cost 0 may mean unconfigured. Do not mix with Amazon P&L.

get_wmt_account_profit_and_loss_summary

ChatGPT
Return WALMART account-level P&L summary for a time range: all Level 1 metrics as one snapshot map (sales, units_sold, refund, advertising_cost, cost_of_goods, indirect_cost, estimated_payout, gross_revenue, gross_profit, walmart_fees, expenses, net_profit, margin, roi, refunds_percentage). No child breakdowns, not a time series, not product rows. Walmart only. Use for overall / store-level Walmart Level 1 KPIs for a period without item/SKU rows or trend buckets; prefer this summary first. NOT for: Amazon P&L (use the unprefixed get_account_profit_and_loss_ / get_product_ tools); per-item or SKU figures (get_wmt_product_profit_and_loss_summary); trends (get_wmt_account_profit_and_loss_summary_series); line-item drill-down (get_wmt_account_profit_and_loss_breakdown); ACOS / TACoS / ads sales (Ads MCP — this tool only carries advertising_cost as negative spend); COGS / indirect-cost configuration CRUD. seller_ids are Walmart partner_id values; omit to include all token-authorised Walmart sellers. marketplace / date_tz / currency are bound together — today only US + America/Los_Angeles + USD. item_ids / skus only narrow the account roll-up (still a single metrics map). If cost_of_goods is 0 it may simply be unconfigured — say so, as net_profit / roi may be overstated. Do not invent tacos, ads_acos, or sessions for Walmart, and do not mix these numbers with Amazon P&L.

get_wmt_account_profit_and_loss_summary_series

ChatGPT
Return WALMART account-level Level 1 P&L as a time series bucketed by granularity (day / week / month) — one (metric_key, values) series per Level 1 metric; no child breakdowns, not product rows. Walmart only. Use for trends / over-time comparison of store-level KPIs (daily sales, weekly net profit, monthly walmart_fees, …); prefer the non-series get_wmt_account_profit_and_loss_summary unless a trend is explicitly needed. NOT for: snapshot totals (get_wmt_account_profit_and_loss_summary); product trends (get_wmt_product_profit_and_loss_summary_series); breakdown component trends (get_wmt_account_profit_and_loss_breakdown_series); Amazon P&L (unprefixed Amazon tools); ACOS / ads sales (Ads MCP). Requires granularity; do not pass scope or offset — series carry neither, use the request granularity you sent. seller_ids are Walmart partner_id values; marketplace / date_tz / currency are bound together — today only US + America/Los_Angeles + USD. item_ids / skus only narrow the account roll-up. cost_of_goods / indirect_cost 0 may mean unconfigured. Do not invent tacos, ads_acos, or sessions for Walmart, and do not mix these numbers with Amazon P&L.

get_wmt_inventory_values

ChatGPT
Return CURRENT WALMART inventory quantity metrics per product row. Each row includes product identity (item_id, sku, product_name, brand, image_url, seller_id, marketplace, fulfillment_type) plus FLAT WFS and SF quantity fields on the same row: wfs_available, wfs_reserved, wfs_on_hand, wfs_inbound, wfs_unavailable, sf_available, sf_on_hand. A Walmart SKU can hold BOTH WFS and SF stock at once (unlike Amazon FBA/FBM, which are separate SKUs/rows). Not a time series; NOT days of supply or inventory age — Walmart has no equivalent health API, so there is no Walmart counterpart to get_fba_inventory_health_status. When to use: user asks how much Walmart stock is sellable, reserved, on hand, inbound to WFS, or unavailable; needs SKU / item_id-level inventory counts across sellers; restock or fulfillment planning from quantity snapshots; wants to filter or sort by any of the seven quantity fields (e.g. low wfs_available, high wfs_inbound). When NOT to use: Amazon inventory quantities (get_inventory_values); Amazon FBA days of supply / inventory age (get_fba_inventory_health_status — no Walmart counterpart); Walmart units-sold trends over time (get_wmt_sales_velocity); Walmart profit & loss or fees (the Walmart P&L tools); discovering which Walmart sellers are linked (get_my_wmt_seller_accounts). Guidance: prefer the narrowest filters (seller_ids, marketplace, item_ids, skus, fulfillment_type) plus _min / _max bounds and sort_by to keep responses small, and page through large catalogs. fulfillment_type selects products whose LISTING ATTRIBUTE matches — matching rows may still show non-zero quantities on the other channel (e.g. fulfillment_type=['WFS'] can return rows with sf_available > 0). Do not invent seller_id / item_id / sku values — call get_my_wmt_seller_accounts first for valid seller ids. Do not mix these numbers with Amazon inventory tools. Rows carry item_id, never a backend asin.

get_wmt_product_profit_and_loss_breakdown

ChatGPT
Return WALMART product-level P&L snapshot rows with nested component metrics ONLY for the requested breakdown_metrics: each row carries full product identity (item_id, sku, product_name, brand, image_url, seller_id, marketplace, fulfillment_type) plus a metrics map of recursive {name, value, metrics?} trees. Not a time series. Walmart only. Use for per-SKU / per-item_id drill-down: fee lines (walmart_fees → Commission), gross_revenue parts (Sales / Shipping / Taxes), COGS parts (Product Cost / Shipping Cost / Tariffs), named indirect costs (sku-level amortisations only — account/seller-level indirect costs cannot be attributed to a product). Requires non-empty breakdown_metrics from: cost_of_goods | indirect_cost | gross_revenue | walmart_fees — any other key is INVALID_INPUT. Prefer get_wmt_product_profit_and_loss_summary first; limit metrics and page_size. NOT for: product Level 1 only (product summary); account-level drill-down (get_wmt_account_profit_and_loss_breakdown); component trends over time (get_wmt_product_profit_and_loss_breakdown_series); Amazon P&L (unprefixed Amazon tools). seller_ids are Walmart partner_id values; marketplace / date_tz / currency are bound — today only US + America/Los_Angeles + USD. Output rows carry item_id, never a backend asin. cost_of_goods / indirect_cost 0 may mean unconfigured. Do not mix with Amazon P&L.

get_wmt_product_profit_and_loss_breakdown_series

ChatGPT
Return WALMART product-level P&L breakdown component trees over time: each row carries full product identity (item_id, sku, product_name, brand, image_url, seller_id, marketplace, fulfillment_type) plus a metrics map for the requested breakdown_metrics where every node has a date-keyed values map ({name, value, values, metrics?}), bucketed by granularity (day / week / month). This is the HIGHEST TOKEN COST tool in the Walmart P&L set — request minimal breakdown_metrics, narrow with item_ids/skus, and use a small page_size. Walmart only. Use for per-product trends of breakdown components (e.g. weekly Commission by SKU, monthly named indirect costs per item). Requires granularity AND non-empty breakdown_metrics from: cost_of_goods | indirect_cost | gross_revenue | walmart_fees — any other key is INVALID_INPUT. NOT for: snapshot component totals (get_wmt_product_profit_and_loss_breakdown); Level 1 product trends (get_wmt_product_profit_and_loss_summary_series); account-level component trends (get_wmt_account_profit_and_loss_breakdown_series); Amazon P&L (unprefixed Amazon tools). Do not pass scope or offset — responses carry neither, use the request granularity you sent. seller_ids are Walmart partner_id values; marketplace / date_tz / currency are bound — today only US + America/Los_Angeles + USD. Output rows carry item_id, never a backend asin; indirect_cost children are sku-level amortisations only. cost_of_goods / indirect_cost 0 may mean unconfigured. Do not mix with Amazon P&L.

get_wmt_product_profit_and_loss_summary

ChatGPT
Return WALMART product-level P&L snapshots: one row per product at product_level (sku default | item_id) with product identity (item_id, sku, product_name, brand, image_url, seller_id, marketplace, fulfillment_type) and ALL Level 1 metrics per row. No time buckets, no breakdown trees. Walmart only. Use to rank / compare / inspect per-SKU or per-item_id KPIs (e.g. top products by net_profit, SKUs with negative margin). Prefer account-level tools unless product granularity is explicitly needed. Use paging (page_index/page_size) plus sort_by (any Level 1 key) / sort_order (default desc) instead of fetching everything. NOT for: store roll-up (get_wmt_account_profit_and_loss_summary); product trends (get_wmt_product_profit_and_loss_summary_series); per-product fee drill-down (get_wmt_product_profit_and_loss_breakdown); Amazon product P&L (unprefixed Amazon tools). seller_ids are Walmart partner_id values; marketplace / date_tz / currency are bound — today only US + America/Los_Angeles + USD. Output rows carry item_id, never a backend asin. cost_of_goods / indirect_cost 0 may mean unconfigured — flag that profit may be overstated. Do not mix with Amazon P&L.

get_wmt_product_profit_and_loss_summary_series

ChatGPT
Return WALMART product-level Level 1 P&L as time series per product row, bucketed by granularity (day / week / month): each row carries full product identity (item_id, sku, product_name, brand, image_url, seller_id, marketplace, fulfillment_type) plus metric_series[] with one (metric_key, values) entry per Level 1 metric. No breakdown trees. Walmart only. Use for per-SKU / per-item_id trends (weekly sales by SKU, monthly margin by item_id). Requires granularity. Narrow with item_ids/skus and a small page_size — the payload grows with products × buckets × 15 metrics. Paging/sort follow the product summary tool (sort_by = any Level 1 key, sort_order default desc, sorted on the range total). NOT for: product snapshot totals (get_wmt_product_profit_and_loss_summary); account-level trends (get_wmt_account_profit_and_loss_summary_series); product fee-component trends (get_wmt_product_profit_and_loss_breakdown_series); Amazon P&L (unprefixed Amazon tools). Do not pass scope or offset — responses carry neither, use the request granularity you sent. seller_ids are Walmart partner_id values; marketplace / date_tz / currency are bound — today only US + America/Los_Angeles + USD. Output rows carry item_id, never a backend asin. cost_of_goods / indirect_cost 0 may mean unconfigured. Do not mix with Amazon P&L.

get_wmt_sales_velocity

ChatGPT
Return WALMART units sold over time (sales velocity) per SKU row, bucketed by day / week / month over an inclusive date range. Each row carries product identity (item_id, sku, product_name, brand, image_url, seller_id, marketplace, fulfillment_type) plus a single sales_velocity.values map (bucket-start yyyy-MM-dd → units sold). Sales velocity is INDEPENDENT of inventory channels: one SKU = one sales series (e.g. SKU A sold 100 units), regardless of how that SKU's stock splits across WFS and SF — do not reconcile these unit series against the WFS/SF inventory fields, they are different domains. Not a quantity snapshot; not revenue / fees / other P&L metrics; not days of supply or inventory age (Walmart has no health tool). When to use: user asks how Walmart units sold TREND, wants to compare periods, needs velocity by SKU / item_id, or needs time-bucketed unit counts for restock planning alongside get_wmt_inventory_values. When NOT to use: Walmart inventory quantity snapshot (get_wmt_inventory_values); Amazon sales velocity (get_sales_velocity); full Walmart P&L trends — sales $, fees, profit — (get_wmt_product_profit_and_loss_summary_series or the account series tools); discovering linked Walmart sellers (get_my_wmt_seller_accounts). Guidance: prefer this tool over the Walmart product P&L series when ONLY units sold matter — the payload is much smaller. Empty {} is valid: it defaults to the last 30 inclusive calendar days in date_tz with granularity=day. Provide BOTH current_date_from and current_date_to or NEITHER — supplying only one is an error. Narrow with seller_ids, marketplace, item_ids, skus, fulfillment_type, and pagination. fulfillment_type filters the product's listing attribute only; it never splits or re-attributes units by channel. There is no sort_by / sort_order and no units range filter on this tool. Rows carry item_id, never a backend asin. Bucket keys match the Walmart P&L series tools for the same inputs. Do not invent seller_id / item_id / sku values, and do not mix with Amazon velocity.

list_ads_rules

ChatGPT
Helium 10 List Ads Rules (Ads Rule, read, paginated). Lists live automation rules (source=live) or the draft box (source=draft) for this account. platform and rule_type are required -- ask the user which rule type to list and take both values from get_ads_rule_platforms (v1 supports amazon + rule_type=BID only). Optional filters: profile_id, name (fuzzy substring); paging: limit / offset. Returns {items, total, limit, offset}. Use source=draft to find a saved-but-not-committed draft to resume, and source=live to find an existing rule to edit or delete. 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). A live rule that carries uneditable_reason (e.g. UNSUPPORTED.RULE_HAS_TACTIC, meaning it uses a Tactic) CANNOT be edited through the MCP -- it is still listed, but editing must be done on the Helium 10 Ads Rules & Automation page. Next: get_ads_rule(source, id) for full detail before editing/deleting.

list_amazon_cogs

ChatGPT
Return a paginated list of CONFIGURED Amazon COGS records. One row = one COGS configuration (not one SKU); a SKU appears on multiple rows when cogs_type=by_period (non-overlapping effective periods). Each row has cogs_id (for delete), product identity (product_name, asin, sku, brand, image_url, product_page_url, seller_id, marketplace, fulfillment_type, sku_status) and COGS fields (cogs_type, currency, product_cost, shipping_cost, tariffs, total_cogs, starts_at, ends_at). No required input. Use to view / audit / search configured unit costs, or to get cogs_id before delete_amazon_cogs. NOT for actual COGS dollars in P&L (use get_product_profit_and_loss_*; cost_of_goods=0 there may mean COGS not configured). Only SKUs WITH configured COGS are returned. Narrow with seller_ids, marketplace (short country codes US/CA/...), asins, skus, fulfillment_type (FBA|FBM), cogs_type (by_period|persistent), sku_status (active|inactive), value range filters, or effective-date endpoint filters; sort with sort_by + sort_order. Values compared as stored (no FX conversion across marketplaces).

list_amazon_indirect_cost_settings

ChatGPT
Return a paginated list of Amazon Indirect Cost SETTINGS (the configuration / 'contract' rows), one row = one setting. This is the CRUD/management surface: use it to view, search, or audit configured Indirect Cost rules and — importantly — to get the cost_id needed by edit_amazon_indirect_cost and delete_amazon_indirect_costs. Each row has cost_id, cost_name, cost_level (h10_account|seller|marketplace|product), frequency, amount (contract total), currency, amortize_daily, starts_at, ends_at (null when open-ended), created_at, and — sparse by level — seller_id, marketplace (short country code), and a nested skus[] array (product level only) carrying per-SKU product identity (sku, asin, product_name, brand, image_url, product_page_url, fulfillment_type, sku_status). No required input. Narrow with seller_ids, marketplace (short codes US/CA/...), skus, cost_level, frequency, cost_name (case-sensitive substring), amount_min/max, created_at_min/max, starts_at_min/max, ends_at_min/max; sort with sort_by (amount | created_at | starts_at | ends_at) + sort_order. NOT for the expanded day-level charges/'bills' (use list_amazon_indirect_costs), NOT for aggregated P&L indirect_cost (use the P&L tools — indirect_cost=0 there may mean unset), and NOT for COGS (use list_amazon_cogs). Amazon only. Filtering by seller_ids / marketplace / skus excludes settings that lack that scope (an h10_account setting never matches a seller_ids filter), so an empty result under a seller_ids filter does NOT prove nothing is configured — query cost_level=h10_account as well before concluding that. A non-empty result means it IS configured; then check whether starts_at/ends_at actually cover the window you are asking about.

list_amazon_indirect_costs

ChatGPT
Return a paginated list of EXPANDED Amazon Indirect Cost CHARGES — the materialized 'bills' derived from Indirect Cost settings (settings ≈ contract; charges ≈ the monthly bills it generates). One row = one occurrence_date × one cost_name; a product-level multi-SKU setting still yields one row per date, with per-SKU split amounts nested under skus[]. Each row carries the setting context (cost_name, cost_level, frequency, currency, amortize_daily, amount, starts_at, ends_at) plus occurrence_date and occurrence_amount. No charge-row ids and no cost_id are exposed — manage configuration via list_amazon_indirect_cost_settings + the write tools. No required input. Use this to VERIFY how a setting lands on the calendar (daily amort vs discrete period points) or reconcile P&L indirect_cost. Narrow with seller_ids, marketplace (short country codes US/CA/...), skus, cost_level, frequency, cost_name, occurrence_date_min/max, occurrence_amount_min/max; sort with sort_by (occurrence_date | occurrence_amount) + sort_order. Dates beyond the backend's ~12-month materialization horizon simply return no rows (not an error). cost_level is h10_account | seller | marketplace | product. Filtering by seller_ids / marketplace / skus excludes charges whose setting lacks that scope — an h10_account-level setting never matches a seller_ids filter, so an empty result under seller_ids does NOT prove nothing is configured; query cost_level=h10_account as well before concluding that. NOT for browsing/managing settings (use list_amazon_indirect_cost_settings and the write tools) or for aggregated P&L indirect_cost (use the P&L tools — indirect_cost=0 there may mean unset); Amazon only.

list_my_products

ChatGPT
Return a paginated list of the caller's OWN Amazon product rows (one row per SKU x marketplace x seller). Each row carries product identity only: product_name, asin, sku, brand, image_url, product_page_url, seller_id, marketplace, fulfillment_type. No P&L, inventory, or listing-analysis metrics. No required input — default scope is all sellers authorised by the Pacvue token; call with no arguments to page through the full authorised catalog. Use when the user asks to list, browse, or find their own products/SKUs/ASINs across linked seller accounts, wants the product info / details for a SPECIFIC ASIN or SKU in their own catalog (e.g. 'look up the product info for ASIN B0…' — pass it via asins/skus), needs product metadata (title, image, Amazon listing URL) before calling P&L or inventory tools, or wants to resolve which SKUs match a name/brand within their catalog. Narrow with seller_ids, marketplace, asins, skus, fulfillment_type (FBA | FBM), product_name (case-insensitive LIKE on title), or brand_name (case-insensitive LIKE on brand). Not for: market-wide product or competitor research (use search_products / search_inactive_products); comparing your own listing against competitor ASINs (use compare_listings — NOT this tool for a plain single-ASIN info lookup); profit & loss metrics (use get_product_profit_and_loss_summary); inventory on-hand / inbound quantities (use get_inventory_values); deep single-ASIN listing profile / BSR / scores (use get_listing_details). Does not distinguish active vs inactive listing status; rows reflect whatever Profits has ingested. No sort parameters — order is backend-defined.

list_tracked_competitor_keywords

ChatGPT
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_keywords

ChatGPT
Helium 10 Keyword Tracker. Returns metrics for keywords ALREADY tracked in Keyword Tracker — by ASIN/product URL, or account-wide when the ASIN is omitted — with search volume + trend, organic & sponsored rank + trend, CPR, boost status, tags, and permission-gated keyword_sales and ABA shares. Use for monitoring rank movement, detecting rank drops/gains, assessing visibility after a PPC or listing change, and reviewing the full tracked set. Not for: untracked reverse search (use get_keywords_by_asin); discovering new keywords to add (use get_keywords_new_suggestion); competitor comparison (use list_tracked_competitor_keywords); rank history over time (use get_keywords_rank_history). 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_user_markets

ChatGPT
List Helium 10 Market Tracker 360 (MT360) markets for the authenticated account. Returns paginated market rows (id, name, marketplaceId, marketplace site code such as US/UK/JP, type, status, revenue metrics already scaled for display (/100 except Japan marketplaceId 10), defaultDateFrom/defaultDateTo as yyyy-MM-dd when not null, access level, etc.) plus pagination links and meta.hasReadonly. Each row type is a DSA MarketTypeEnum integer: 1=KEYWORDS, 2=BRANDS, 3=ASINS, 4=AUTOMATIC, 5=SUBCATEGORIES. Use this first to discover market_id values before calling other MT360 tools. Returns all market types in one list (keywords, brands, subcategories, ASINs, automatic, etc.). Narrow only with search, marketplace_id (DSA integer enum: 1=US … 10=JP, 12=BR … 24=IE; there is no 11), or pagination. Not for: market-level analytics, product rows, or competitor data — those require market-specific endpoints after you pick a market from this list.

manage_ads_rule

ChatGPT
Helium 10 Manage Ads Rule (Ads Rule, step 4 of 4, WRITE). All rule write operations in one tool, selected by action. Do NOT call this tool with empty or guessed params This is step 4. Resolve every input FIRST via the earlier steps, and when the user is vague, ASK them — never invent platform / rule_type / ids or call an action just to see what it needs. Hard ordering before draft_open: 1. get_ads_rule_platforms → choose a supported (platform, rule_type). If the user didn't specify, ask which platform and rule_type they want. 2. get_ads_rule_schema(platform, rule_type) → the field catalog + skeleton you build the draft from. 3. get_ads_query_materials → resolve profile_id and campaign ids. Calling draft_open without a known platform+rule_type is an error, not a way to discover them. Confirmation is REQUIRED before draft_commit and rule_delete draft_commit materializes the draft as a live rule (automated=true auto-applies and WILL change bids; automated=false is suggest-only and will NOT change bids) and rule_delete permanently removes a live rule (irreversible). BEFORE either, you MUST present a readable summary of exactly what will change and obtain explicit user confirmation. There is no dry-run / preview. draft_open / draft_save / draft_discard do not need confirmation (they never touch live rules). Rules that use a Tactic cannot be edited via MCP If a rule uses a Tactic, draft_open(mode=edit) and draft_commit on it return UNSUPPORTED.RULE_HAS_TACTIC (isError). Check uneditable_reason from get_ads_rule / list_ads_rules BEFORE building an edit; if set, do NOT open an edit draft, do NOT retry, and do NOT create a new rule as a substitute (that would run two bid rules on the same targets) — direct the user to the Helium 10 Ads Rules & Automation page. draft_open(mode=create), draft_save and rule_delete are unaffected. Actions and their required params - draft_open (platform, rule_type, mode, profile_id; + source_rule_id when mode=edit): create a draft in the draft box. Does NOT create a real rule. mode=create starts blank; mode=edit back-fills from an existing rule. Returns {draft_id, revision:1, mode, boundRuleId}. rule_type is locked once open. - draft_save (draft_id, draft): whole-replace the draft content (the generic rule document) → validate → persist, revision+1. The draft MUST contain rule_name, frequency (with a preset), and at least one criteria (each with an action.type). targets.campaign_ids MAY be empty; an empty campaign_ids means the rule is bound to NO campaign (it will not run against any campaign) — do NOT add a campaign just to pass validation, as that silently narrows the rule's scope. timezone and criteria[].lookback may be omitted — the server fills America/Los_Angeles and {length:14, exclude:2}. On failure returns error.details.issues[] to fix. Optional expected_revision for optimistic locking. Re-save as many times as needed. - draft_commit (draft_id): commit the draft to a live rule (create→POST / edit→PUT). Returns {rule_id, isDraft:false}. CONFIRM FIRST. - draft_discard (draft_id): delete the draft (does not affect live rules). Non-idempotent: a second call with the same draft_id returns not_found. - rule_delete (platform, profile_id, rule_id): delete a live rule. Irreversible. CONFIRM FIRST. Build the draft from the get_ads_rule_schema skeleton: metric / operator / action values come from the schema, numbers are actual values per unitHints (e.g. ACOS 12% → 0.12). Prerequisites, in order: get_ads_rule_platforms → get_ads_rule_schema → get_ads_query_materials (profile_id / campaign ids).

request_image_upload_url

ChatGPT
Helium 10 helper — requests presigned upload credentials so LOCAL image files are uploaded out-of-band, never base64'd into the conversation. Non-idempotent: each call mints fresh, single-use upload slots. Use whenever the user has local image files bound for an analyze / generate tool. BEFORE CALLING — do NOT guess these; ground them in what the user actually has. If you can read the files off the user's filesystem, derive both from the directory listing instead of asking: • count = the EXACT number of images the user is uploading (1-5). If the user hasn't said how many (and you can't tell from their attachments or filesystem), ASK first. Do NOT default to 5. • content_type = the actual format: "image/jpeg" for .jpg/.jpeg, "image/png" for .png. One type per batch — if the files are mixed or you can't verify the extensions, ASK rather than assuming. Returns items[{image_ref, upload_url, upload_method, required_headers, curl_command, max_bytes}], upload_page_url, expires_at. Then pick ONE path by your client's capability: • Shell / HTTP available and the file readable locally (Cursor / Claude Code): run items[].curl_command (replace @<LOCAL_FILE_PATH> with the real path) to PUT each file; a 200 means success. • Pure MCP client that cannot issue HTTP (Claude Desktop / ChatGPT): hand the user upload_page_url (one for the whole batch); they upload all N files in the browser and paste back the N image_ref values. Pass items[].image_ref to the downstream tool's image_refs.

retrieve_listing_by_asin

ChatGPT
Helium 10 Listing Builder — fetches the current Amazon catalog images and listing text for a target ASIN. Reads the live Amazon catalog (real-time snapshot). Returns images (list of {url, variant}) plus the current product_name / item_highlight / bullet_points / description. Use to pull a listing's current live copy and images as the working baseline, or to check what the Amazon catalog shows for an ASIN right now. Not for: reading or scoring a listing without rewriting its copy (use get_listing_details / get_listing_score).

rewrite_listing_section

ChatGPT
Helium 10 Listing Builder — rewrites ONE section of an existing listing: target selects the title, a single bullet, or the description. Live LLM call, non-idempotent; output language is derived server-side from marketplace. title and item_highlight are a matched pair — a 'title' rewrite regenerates both in the same AI call. 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 for targeted refinement: strengthen one field with fresh keywords while leaving the rest of the listing untouched. Not for: a full regeneration (use generate_listing with a revised allocation).

search_alert_events

ChatGPT
Helium 10 Alerts — query listing-change alert events for a seller. Supports three modes: (1) recent events — omit dates, returns latest limit events; (2) date-range — provide start_time + end_time; (3) single-event lookup — provide fired_at timestamp. Optionally filter by ASIN or alert_types. Do NOT use for Buy Box ownership history; use search_buybox_history instead. Returns up to limit rows per call (default 20, max 100); one page inlines at most ~100 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.

search_amazon_brand_analytics

ChatGPT
Helium 10 Top Search Terms & Brand Analytics (formerly Black Box — ABA). Exports Amazon Brand Analytics (ABA) Top Search Terms: per-phrase search frequency rank, exact/broad search volume with trend, CPC range, the top-3 clicked ASINs with click & conversion share, combined clicked-product metrics, and share trend vs the prior period. Use to find which products consumers click for a term, identify click/conversion-share leaders, compare ABA periods week-over-week or month-over-month, and find which keywords a competitor ASIN appears in. Returns up to limit rows per call (default 20, 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. REQUIRES Brand Registry — non-Brand accounts get PERMISSION.DENIED. Not for: generic keyword search volume only (use search_amazon_keywords).

search_amazon_keywords

ChatGPT
Helium 10 Keyword Database Search (formerly Black Box — Search Keywords). Searches the FULL Helium 10 keyword database (not one ASIN's keywords) by filters (search-volume / impression range, word count, competing products, price, monthly revenue, reviews, rating, category, density, broad reach potential, and top-10 competitor distribution buckets). Returns paginated keyword rows with demand metrics, competitive landscape, and aggregated top-10 competitor profile data. Use for market-level keyword discovery, low-competition keyword mining, niche sizing by demand, and category keyword-landscape analysis — no ASIN or seed term needed. Returns up to limit rows per call (default 20, max 200); 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: ABA click/conversion share & top clicked products (use search_amazon_brand_analytics); product lists (use search_products / search_inactive_products). If the user asks for historical Search Volume for returned keywords, call get_keywords_search_volume_history once per selected phrase.

search_browse_nodes

ChatGPT
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_buybox_history

ChatGPT
Helium 10 Alerts — Buy Box ownership history for a specific ASIN over a date window. Returns offer-change events with Buy Box winner (seller ID), number of competing sellers, and timestamps, plus the seller's overall Buy Box win percentage for the queried period (computed over the whole window, not just the returned page). Use for analysing Buy Box competition patterns and win share over time; not for general listing-change monitoring (use search_alert_events). Returns up to limit rows per call (default 50, max 10000); one page inlines at most ~100 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.

search_competitors_by_asin

ChatGPT
Helium 10 Competitor Search (formerly Black Box — Competitors). Given one required seed ASIN, returns similar competing listings with price, sales, revenue, reviews, and overlap signals; Advanced filters run on the database server. Use for competitor benchmarks, pricing studies, and pre-launch competitive scans. Not for: broad product discovery without a seed ASIN (use search_products); keyword niche sets (use search_niche_by_keyword). If the user asks for historical Price, call get_asin_price_history; for BSR history, call get_asin_bsr_history; for Review Count / Rating history, call get_asin_reviews_history — once per selected ASIN.

search_competitors_by_item_id

ChatGPT
Helium 10 Competitor Search for Walmart. Given one Walmart item, returns the walmart.com items that rank on the same search phrases, ordered by how strongly they overlap, each with its item ID, title, and image. Identity fields only - no metrics. Use for: building a competitor set on Walmart when the user has an item but no competitor list, before a keyword comparison or a listing review. The item IDs it returns are meant to be fed into compare_item_keywords or get_keywords_by_item_id. Not for: Amazon products - use search_competitors_by_asin instead. Do not use it to compare competitors on price, sales, revenue, BSR, or reviews: Walmart has no such data here and this tool takes no filter or sort arguments.

search_inactive_products

ChatGPT
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_niche_by_keyword

ChatGPT
Helium 10 Niche Search (formerly Black Box — Niche). Given one required search keyword, returns a niche-level summary (totals/averages) plus related products with Parent/ASIN sales, revenue, price, BSR, and reviews; Advanced filters run on the database server. Use for niche sizing and opportunity scans after the user has a search term. Not for: product discovery without a keyword (use search_products); keyword-row mining (use search_amazon_keywords); ASIN competitor sets (use search_competitors_by_asin). If the user asks for historical Price, call get_asin_price_history; for BSR history, call get_asin_bsr_history; for Review Count / Rating history, call get_asin_reviews_history — once per selected ASIN.

search_product_targets_by_asin

ChatGPT
Helium 10 Product Targeting (formerly Black Box — Product Targeting). Given 1–10 seed ASINs (asin_list), returns target ASINs from Frequently Bought Together, Customers Also Bought, and Amazon Suggested for PPC product targeting and Sponsored Display. At most 10 ASINs per call; more than 10 must error (do not silently truncate). Use to plan ad placements, bundles, and complementary catalog moves. Not for: direct competitor similarity (use search_competitors_by_asin). If the user asks for historical Price, call get_asin_price_history; for BSR history, call get_asin_bsr_history; for Review Count / Rating history, call get_asin_reviews_history — once per selected ASIN.

search_products

ChatGPT
Helium 10 Product Research (formerly Black Box — Products, active view). Discovers currently-active Amazon listings by product filters (category, brand/seller, price, sales, revenue, BSR, reviews, rating, sellers, fulfillment, size tier, opportunity score, identifiers, and more). Returns a ranked list with revenue estimates, sales velocity, review metrics, and opportunity scores. Use for product opportunity discovery, niche sizing, competitor/brand/seller analysis, category supply research, and sourcing qualification. 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: discontinued listings (use search_inactive_products); keyword-first research (use search_amazon_keywords); ABA Top Search Terms (use search_amazon_brand_analytics). If the user asks for historical Price, call get_asin_price_history; for BSR history, call get_asin_bsr_history; for Review Count / Rating history, call get_asin_reviews_history — once per selected ASIN.

search_tiktok_hot_videos

ChatGPT
Helium 10 TikTok Hot Videos. Searches trending TikTok Shop videos by keyword, category, and time window, returning each video plus the product it promotes, the creator who posted it, and engagement/sales metrics. This is a TikTok Shop tool; not for Amazon research (use the Amazon MCP tools) and not for product/influencer search directly (use search_tiktok_products / search_tiktok_influencers). limit accepts 10-100 rows per call (default 10). At most 500 rows are reachable in total for one query; beyond that the result is truncated (truncation_reason='traversal_bound'). 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.

search_tiktok_influencers

ChatGPT
Helium 10 TikTok Influencer Finder. Searches TikTok creators by keyword, category, follower count, age/gender, video/live view and engagement rates, GMV band, units-sold band, and commission-rate band. Just US marketplace. category accepts natural-language text (e.g. "beauty") or a known category_id; it is resolved internally against TikTok's category tree, no separate lookup call needed. Not for: product search (use search_tiktok_products); Amazon-side research (use the Amazon MCP tools). limit accepts 10-100 rows per call (default 10). At most 1000 rows are reachable in total for one query; beyond that the result is truncated (truncation_reason='traversal_bound'). 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.

search_tiktok_products

ChatGPT
Helium 10 TikTok Product Finder. Searches TikTok Shop products by keyword, brand, shop, category, price, rating, shipping, listing recency, units sold, GMV, GMV trend, commission rate, and affiliate/video engagement ranges. This is a TikTok Shop tool, not Amazon — for Amazon product research use search_products (Black Box) instead; the two cover different platforms and are not interchangeable. category accepts natural-language text (e.g. "beauty") or a known category_id; it is resolved internally against TikTok's category tree, no separate lookup call needed. market is currently US only. limit accepts 10-100 rows per call (default 10). At most 500 rows are reachable in total for one query; beyond that the result is truncated (truncation_reason='traversal_bound'). 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.

sync_listing_to_amazon

ChatGPT
Helium 10 Listing Builder — DESTRUCTIVE: pushes listing content (title / item_highlight / bullets / description) to the user's Amazon Seller Central via SP-API, then verifies it landed — the outcome is reported in sync_status. The only Listing Builder tool that mutates the seller's live data; it requires the user's explicit consent to publish, and merely reviewing or approving the text is NOT consent. No outcome is safe to auto-retry: resubmitting a payload Amazon already accepted writes twice. At least one of title / item_highlight / bullets / description must be present, or the call is rejected.

analyze_keywords

Claude

compare_listings

Claude

execute_ads_query

Claude

get_account_profit_and_loss_breakdown

Claude

get_account_profit_and_loss_breakdown_series

Claude

get_account_profit_and_loss_summary

Claude

get_account_profit_and_loss_summary_series

Claude

get_ads_query_list

Claude

get_ads_query_materials

Claude

get_ads_query_platforms

Claude

get_ads_query_schema

Claude

get_brand_seller_profiles

Claude

get_competitor_overview

Claude

get_fba_inventory_health_status

Claude

get_inventory_values

Claude

get_keywords_by_asin

Claude

get_keywords_by_keyword

Claude

get_keywords_new_suggestion

Claude

get_keywords_rank_history

Claude

get_listing_details

Claude

get_listing_score

Claude

get_product_profit_and_loss_breakdown

Claude

get_product_profit_and_loss_breakdown_series

Claude

get_product_profit_and_loss_summary

Claude

get_product_profit_and_loss_summary_series

Claude

get_sales_velocity

Claude

get_search_query_performance

Claude

get_top_keywords

Claude

list_tracked_competitor_keywords

Claude

list_tracked_keywords

Claude

search_amazon_brand_analytics

Claude

search_amazon_keywords

Claude

search_inactive_products

Claude

search_products

Claude

Capabilities

Writes

Example Prompts

Click any prompt to copy it.

App Stats

151

Tools

3

Prompts

ChatGPT, Claude

Platforms

Works with

ChatGPT
Claude

Data refreshed daily